Belle II Software development
SVDNNClusterizerModule.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 SVDNNClusterizerModule_H
10#define SVDNNClusterizerModule_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 <map>
18#include <vector>
19
20namespace Belle2 {
26 namespace SVD {
27
39
40 public:
41
43 typedef std::vector<const RelationElement*> RelationLookup;
44
47
49 virtual void initialize() override;
50
52 virtual void event() override;
53
54 protected:
55
66 void createRelationLookup(const RelationArray& relation, RelationLookup& lookup,
67 size_t digits);
68
74 void fillRelationMap(const RelationLookup& lookup, std::map<unsigned int, float>&
75 relation, unsigned int index);
76
77 // Data members
78 //1. Collections
97
98 //2. Strip and time fitter data
100 std::string m_timeFitterName;
103 bool m_calibratePeak = false;
104
105 //3. Clustering
107 double m_cutAdjacent = 3.0;
109 double m_cutSeed = 5.0;
111 double m_cutCluster = 5.0;
114
115 // 4. Strip map and time fitter handles
122
123 // 5. Relation lookups
128
129 };//end class declaration
130
131 } //end SVD namespace;
133} // end namespace Belle2
134
135#endif // SVDNNClusterizerModule_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_storeRecoDigitsName
Name of the collection to use for the SVDRecoDigits.
virtual void initialize() override
Initialize the module.
virtual void event() override
do the clustering
std::vector< const RelationElement * > RelationLookup
Container for a RelationArray Lookup table.
std::string m_relRecoDigitTrueHitName
Name of the relation between SVDRecoDigits and SVDTrueHits.
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_relRecoDigitMCParticleName
Name of the relation between SVDRecoDigits and MCParticles.
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 SVDRecoDigit index to a map.
std::string m_storeMCParticlesName
Name of the collection to use for the MCParticles.
RelationLookup m_trueRelation
Lookup table for SVDRecoDigit->SVDTrueHit relation.
SVDPulseShapeCalibrations m_pulseShapeCal
Calibrations: pusle shape and gain.
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_relClusterMCParticleName
Name of the relation between SVDClusters and MCParticles.
SVDNNClusterizerModule()
Constructor defining the parameters.
RelationLookup m_mcRelation
Lookup table for SVDRecoDigit->MCParticle relation.
std::string m_relClusterRecoDigitName
Name of the relation between SVDClusters and SVDRecoDigits.
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.
Abstract base class for different kinds of events.