Belle II Software development
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
21namespace 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
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;
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.