Belle II Software  release-08-01-10
SVDClusterizerDirectModule.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 SVDClusterizerDirectModule_H
10 #define SVDClusterizerDirectModule_H
11 
12 #include <framework/core/Module.h>
13 #include <framework/datastore/RelationArray.h>
14 #include <svd/calibration/SVDNoiseCalibrations.h>
15 #include <svd/calibration/SVDPulseShapeCalibrations.h>
16 #include <svd/reconstruction/NNWaveFitter.h>
17 #include <svd/dataobjects/SVDEventInfo.h>
18 #include <map>
19 #include <vector>
20 
21 namespace Belle2 {
27  namespace SVD {
28 
38 
39  public:
40 
42  typedef std::vector<const RelationElement*> RelationLookup;
43 
46 
48  virtual void initialize() override;
49 
51  virtual void event() override;
52 
53  protected:
54 
65  void createRelationLookup(const RelationArray& relation, RelationLookup& lookup,
66  size_t digits);
67 
73  void fillRelationMap(const RelationLookup& lookup, std::map<unsigned int, float>&
74  relation, unsigned int index);
75 
76  // Data members
77 
80 
81  //1. Collections
85  std::string m_storeTrueHitsName;
89  std::string m_storeClustersName;
101  std::string m_svdEventInfoName;
102 
103  //2. Strip and time fitter data
105  std::string m_timeFitterName;
108  bool m_calibratePeak = false;
109 
110 
111  //3. Clustering
113  double m_cutAdjacent = 3.0;
115  double m_cutSeed = 5.0;
117  double m_cutCluster = 5.0;
119  int m_sizeHeadTail = 3;
120 
121  // 4. Strip map and time fitter handles
124 
129 
130  // 5. Relation lookups
135 
136  };//end class declaration
137 
138  } //end SVD namespace;
140 } // end namespace Belle2
141 
142 #endif // SVDClusterizerDirectModule_H
Base class for Modules.
Definition: Module.h:72
Low-level class to create/modify relations between StoreArrays.
Definition: RelationArray.h:62
This class defines the dbobject and the method to access SVD calibrations from the noise local runs.
This class defines the dbobject and the methods to access the SVD calibrations from the local runs pr...
The class uses a neural network to find a probability distribution of arrival times for a sextet of A...
Definition: NNWaveFitter.h:61
std::string m_relShaperDigitMCParticleName
Name of the relation between SVDShaperDigits and MCParticles.
virtual void initialize() override
Initialize the module.
std::string m_storeShaperDigitsName
Name of the collection to use for the SVDShaperDigits.
virtual void event() override
do the clustering
std::vector< const RelationElement * > RelationLookup
Container for a RelationArray Lookup table.
double m_cutCluster
Cluster cut in units of m_elNoise.
std::string m_storeTrueHitsName
Name of the collection to use for the SVDTrueHits.
std::string m_timeFitterName
Name of the time fitter (db label)
void fillRelationMap(const RelationLookup &lookup, std::map< unsigned int, float > &relation, unsigned int index)
Add the relation from a given SVDShaperDigit index to a map.
std::string m_storeMCParticlesName
Name of the collection to use for the MCParticles.
std::string m_relShaperDigitTrueHitName
Name of the relation between SVDShaperDigits and SVDTrueHits.
RelationLookup m_trueRelation
Lookup table for SVDShaperDigit->SVDTrueHit relation.
SVDPulseShapeCalibrations m_pulseShapeCal
Calibrations: pusle shape and gain.
std::string m_svdEventInfoName
Name of the SVDEventInfo object.
SVDNoiseCalibrations m_noiseCal
Calibrations: noise.
int m_sizeHeadTail
Size of the cluster at which we switch from Center of Gravity to Analog Head Tail.
void createRelationLookup(const RelationArray &relation, RelationLookup &lookup, size_t digits)
Create lookup maps for relations We do not use the RelationIndex as we know much more about the relat...
std::string m_storeClustersName
Name of the collection to use for the SVDClusters.
double m_cutSeed
Seed cut in units of m_elNoise.
std::string m_relClusterShaperDigitName
Name of the relation between SVDClusters and SVDShaperDigits.
std::string m_relClusterMCParticleName
Name of the relation between SVDClusters and MCParticles.
RelationLookup m_mcRelation
Lookup table for SVDShaperDigit->MCParticle relation.
SVDClusterizerDirectModule()
Constructor defining the parameters.
StoreObjPtr< SVDEventInfo > m_storeSVDEvtInfo
Storage for SVDEventInfo object.
bool m_calibratePeak
Use peak widths and peak time calibrations? Unitl this is also simulated, set to true only for testbe...
double m_cutAdjacent
Noise (cluster member) cut in units of m_elNoise.
std::string m_relClusterTrueHitName
Name of the relation between SVDClusters and SVDTrueHits.
Type-safe access to single objects in the data store.
Definition: StoreObjPtr.h:96
Abstract base class for different kinds of events.