Belle II Software  release-08-01-10
SVDChannelMappingModule.h
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 
9 #ifndef svdchannelmappingModule_H
10 #define svdchannelmappingModule_H
11 
12 #include <framework/core/Module.h>
13 #include <framework/datastore/StoreArray.h>
14 
15 #include <vxd/geometry/GeoCache.h>
16 
17 #include <tracking/dataobjects/SVDIntercept.h>
18 #include <svd/dataobjects/SVDCluster.h>
19 #include <svd/dataobjects/SVDShaperDigit.h>
20 
21 #include <unordered_map>
22 #include <utility>
23 #include <functional>
24 #include <TH1.h>
25 #include <TFile.h>
26 
27 namespace Belle2 {
40 
41  public:
42 
45 
47  void initialize() override;
49  void event() override;
51  void terminate() override;
52 
53  std::string m_SVDShaperDigitsName;
54  std::string m_SVDClustersName;
56  /* user-defined parameters */
57  std::string m_rootFileName;
58  /* ROOT file related parameters */
59  TFile* m_rootFilePtr = nullptr;
60  TList* m_histoList_digits = nullptr;
61  TList* m_histoList_clusters = nullptr;
63  private:
64 
71  std::string m_InterceptsName;
74  typedef std::pair< TH1*, std::function< void(TH1*, const SVDIntercept*) > > InterHistoAndFill;
76  std::unordered_multimap<Belle2::VxdID, InterHistoAndFill, std::function<size_t (const Belle2::VxdID&)> > hInterDictionary;
77 
79  void fillSensorInterHistos(const SVDIntercept* inter);
82  int n_events;
85  };//end class declaration
86 
87 
89 } // end namespace Belle2
90 
91 #endif // SVDCHANNELMAPPINGtModule_H
Base class for Modules.
Definition: Module.h:72
The Channel Mapping Check Module.
std::string m_rootFileName
root file name
std::unordered_multimap< Belle2::VxdID, InterHistoAndFill, std::function< size_t(const Belle2::VxdID &)> > hInterDictionary
map of histograms to be filled once per intercept
std::pair< TH1 *, std::function< void(TH1 *, const SVDIntercept *) > > InterHistoAndFill
typedef: histograms to be filled once per intercept + filling function
std::string m_InterceptsName
Name of the SVDIntercept StoreArray.
VXD::GeoCache & m_aGeometry
the geometry
void initialize() override
initialize
void fillSensorInterHistos(const SVDIntercept *inter)
fill histograms per sensor, filled once per intercept
void createHistosDictionaries()
create the dictionary
std::string m_SVDClustersName
reco digit list name
StoreArray< SVDShaperDigit > m_shapers
SVDSHaperDigits StoreArray.
TList * m_histoList_clusters
list of histograms for the clusters
StoreArray< SVDCluster > m_clusters
SVDClusters StoreArray.
SVDChannelMappingModule()
Constructor defining the parameters.
TList * m_histoList_digits
list of histograms for the strips
StoreArray< SVDIntercept > m_Intercepts
SVDintercept StoreArray.
TFile * m_rootFilePtr
pointer at root file used for storing histograms
std::string m_SVDShaperDigitsName
shaper digit list name
SVDIntercept stores the U,V coordinates and uncertainties of the intersection of a track with an SVD ...
Definition: SVDIntercept.h:22
Accessor to arrays stored in the data store.
Definition: StoreArray.h:113
Class to faciliate easy access to sensor information of the VXD like coordinate transformations or pi...
Definition: GeoCache.h:39
static GeoCache & getInstance()
Return a reference to the singleton instance.
Definition: GeoCache.cc:214
Class to uniquely identify a any structure of the PXD and SVD.
Definition: VxdID.h:33
Abstract base class for different kinds of events.