CbmRoot
CbmStsRecoModule.h
Go to the documentation of this file.
1 
6 #ifndef CBMSTSRECOMODULE_H
7 #define CBMSTSRECOMODULE_H 1
8 
9 
10 #include "CbmStsCluster.h"
11 #include "CbmStsHit.h"
12 #include <TNamed.h>
13 #include <mutex>
14 
15 class TGeoHMatrix;
18 class CbmStsAlgoFindHits;
19 class CbmStsHit;
20 class CbmStsDigi;
21 class CbmStsModule;
22 class CbmStsParModule;
23 class CbmStsParSensor;
25 
26 
44 class CbmStsRecoModule : public TNamed {
45 
46 public:
49 
50 
61  CbmStsRecoModule(CbmStsModule* setupModule,
62  const CbmStsParModule& parModule,
63  const CbmStsParSensor& parSensor,
64  Double_t lorentzShiftF,
65  Double_t lorentzShiftB);
66 
67 
70 
71 
74 
75 
77  virtual ~CbmStsRecoModule();
78 
79 
84  void AddDigiToQueue(const CbmStsDigi* digi, Int_t digiIndex);
85 
86 
90  const std::vector<CbmStsCluster>& GetClustersF() const { return fClustersF; }
91 
92 
96  const std::vector<CbmStsCluster>& GetClustersB() const { return fClustersB; }
97 
98 
102  const std::vector<CbmStsHit>& GetHits() const { return fHits; }
103 
104 
106  void Reconstruct();
107 
108 
110  void Reset();
111 
112 
114  std::string ToString() const;
115 
116 
117 private:
119  void Init();
120 
121 
122 private:
123  // --- Algorithms
128 
129  // --- Parameters
131  const CbmStsParModule* fParModule = nullptr;
132  const CbmStsParSensor* fParSensor = nullptr;
133  Double_t fDyActive = 0.;
134  UInt_t fNofStrips = 0;
135  Double_t fStripPitch = 0.;
136  Double_t fStereoFront = 0.;
137  Double_t fStereoBack = 0.;
138  TGeoHMatrix* fMatrix = nullptr;
139  Double_t fLorentzShiftF = 0.;
140  Double_t fLorentzShiftB = 0.;
141 
142  // --- Data
143  std::vector<std::pair<const CbmStsDigi*, Long64_t>> fDigisF {};
144  std::vector<std::pair<const CbmStsDigi*, Long64_t>> fDigisB {};
145  std::vector<CbmStsCluster> fClustersF {};
146  std::vector<CbmStsCluster> fClustersB {};
147  std::vector<CbmStsHit> fHits {};
148 
149  // --- Settings
150  Double_t fTimeCutDigiSig = 3.;
151  Double_t fTimeCutDigiAbs = -1.;
152  Double_t fTimeCutClusterSig = 4.;
153  Double_t fTimeCutClusterAbs = -1.;
154  Bool_t fConnectEdgeFront = kFALSE;
155  Bool_t fConnectEdgeBack = kFALSE;
156 
157 
159 };
160 
161 #endif /* CBMSTSRECOMODULE_H */
CbmStsRecoModule::AddDigiToQueue
void AddDigiToQueue(const CbmStsDigi *digi, Int_t digiIndex)
Add a digi to the processing queue.
Definition: CbmStsRecoModule.cxx:57
CbmStsRecoModule::GetClustersB
const std::vector< CbmStsCluster > & GetClustersB() const
Output back-side clusters.
Definition: CbmStsRecoModule.h:96
CbmStsRecoModule::fMatrix
TGeoHMatrix * fMatrix
Sensor position in global C.S. [cm].
Definition: CbmStsRecoModule.h:138
CbmStsRecoModule::fDigisF
std::vector< std::pair< const CbmStsDigi *, Long64_t > > fDigisF
Definition: CbmStsRecoModule.h:143
CbmStsRecoModule::fDyActive
Double_t fDyActive
Active sensor size in y.
Definition: CbmStsRecoModule.h:133
CbmStsRecoModule::Reset
void Reset()
Clear input queue.
Definition: CbmStsRecoModule.cxx:148
CbmStsRecoModule::fParModule
const CbmStsParModule * fParModule
Definition: CbmStsRecoModule.h:131
CbmStsRecoModule::fHits
std::vector< CbmStsHit > fHits
Definition: CbmStsRecoModule.h:147
CbmStsRecoModule::fTimeCutClusterSig
Double_t fTimeCutClusterSig
Time cut for hit finding (in ns)
Definition: CbmStsRecoModule.h:152
CbmStsRecoModule
Class for reconstruction in one STS module.
Definition: CbmStsRecoModule.h:44
CbmStsRecoModule::GetHits
const std::vector< CbmStsHit > & GetHits() const
Output hits.
Definition: CbmStsRecoModule.h:102
CbmStsParSensorCond
Parameters for operating conditions of a STS sensor.
Definition: CbmStsParSensorCond.h:28
CbmStsRecoModule::fParSensor
const CbmStsParSensor * fParSensor
Definition: CbmStsRecoModule.h:132
CbmStsRecoModule::ClassDef
ClassDef(CbmStsRecoModule, 1)
CbmStsRecoModule::fConnectEdgeBack
Bool_t fConnectEdgeBack
Round-the edge clustering back side.
Definition: CbmStsRecoModule.h:155
CbmStsRecoModule::Reconstruct
void Reconstruct()
Perform reconstruction.
Definition: CbmStsRecoModule.cxx:73
CbmStsRecoModule::fClustersF
std::vector< CbmStsCluster > fClustersF
Definition: CbmStsRecoModule.h:145
CbmStsHit
data class for a reconstructed 3-d hit in the STS
Definition: CbmStsHit.h:31
CbmStsRecoModule::fStereoFront
Double_t fStereoFront
Strip stereo angle front side [deg].
Definition: CbmStsRecoModule.h:136
CbmStsModule
Class representing an instance of a readout unit in the CBM-STS.
Definition: CbmStsModule.h:31
CbmStsParSensor
Constructional parameters of a STS sensor.
Definition: CbmStsParSensor.h:38
CbmStsAlgoFindHits
Algorithm for hit finding in the sensors of the CBM-STS.
Definition: CbmStsAlgoFindHits.h:34
CbmStsRecoModule::fHitFinder
CbmStsAlgoFindHits * fHitFinder
///< Algo
Definition: CbmStsRecoModule.h:126
CbmStsParModule
Parameters for one STS module.
Definition: CbmStsParModule.h:28
CbmStsRecoModule::Init
void Init()
Set and check the needed parameters.
Definition: CbmStsRecoModule.cxx:156
CbmStsRecoModule::fLorentzShiftF
Double_t fLorentzShiftF
Average Lorentz shift front side [cm|.
Definition: CbmStsRecoModule.h:139
CbmStsRecoModule::fStereoBack
Double_t fStereoBack
Strip stereo angle back side [deg].
Definition: CbmStsRecoModule.h:137
CbmStsRecoModule::fTimeCutClusterAbs
Double_t fTimeCutClusterAbs
Time cut for hit finding (in sigma)
Definition: CbmStsRecoModule.h:153
CbmStsRecoModule::fLock
std::mutex fLock
///< Algo
Definition: CbmStsRecoModule.h:127
CbmStsRecoModule::fSetupModule
CbmStsModule * fSetupModule
Definition: CbmStsRecoModule.h:130
CbmStsDigi
Data class for a single-channel message in the STS.
Definition: CbmStsDigi.h:29
CbmStsRecoModule::fDigisB
std::vector< std::pair< const CbmStsDigi *, Long64_t > > fDigisB
Definition: CbmStsRecoModule.h:144
CbmStsRecoModule::fTimeCutDigiAbs
Double_t fTimeCutDigiAbs
Time cut for cluster finding (in ns)
Definition: CbmStsRecoModule.h:151
mutex
spin_mutex mutex
Definition: CbmRichParallelQa.cxx:30
CbmStsRecoModule::fStripPitch
Double_t fStripPitch
Sensor strip pitch [cm].
Definition: CbmStsRecoModule.h:135
CbmStsRecoModule::fNofStrips
UInt_t fNofStrips
Number of sensor strips.
Definition: CbmStsRecoModule.h:134
CbmStsRecoModule::ToString
std::string ToString() const
Info to string.
Definition: CbmStsRecoModule.cxx:221
CbmStsRecoModule::CbmStsRecoModule
CbmStsRecoModule(const CbmStsRecoModule &)=delete
Copy constructor (disabled)
CbmStsRecoModule::CbmStsRecoModule
CbmStsRecoModule()
Default constructor.
CbmStsRecoModule::fClusterFinder
CbmStsAlgoFindClusters * fClusterFinder
///< Algo
Definition: CbmStsRecoModule.h:125
CbmStsRecoModule::fLorentzShiftB
Double_t fLorentzShiftB
Average Lorentz shift back side [cm|.
Definition: CbmStsRecoModule.h:140
CbmStsAlgoAnaCluster
Determination of cluster parameters.
Definition: CbmStsAlgoAnaCluster.h:31
CbmStsRecoModule::~CbmStsRecoModule
virtual ~CbmStsRecoModule()
Destructor.
Definition: CbmStsRecoModule.cxx:52
CbmStsCluster.h
Data class for STS clusters.
CbmStsRecoModule::GetClustersF
const std::vector< CbmStsCluster > & GetClustersF() const
Output front-side clusters.
Definition: CbmStsRecoModule.h:90
CbmStsRecoModule::operator=
CbmStsRecoModule & operator=(const CbmStsRecoModule &)=delete
Assignment operator (disabled)
CbmStsAlgoFindClusters
Algorithm for cluster finding in a linear array of channels.
Definition: CbmStsAlgoFindClusters.h:54
CbmStsRecoModule::fClusterAna
CbmStsAlgoAnaCluster * fClusterAna
Definition: CbmStsRecoModule.h:124
CbmStsRecoModule::fConnectEdgeFront
Bool_t fConnectEdgeFront
Round-the edge clustering front side.
Definition: CbmStsRecoModule.h:154
CbmStsRecoModule::fTimeCutDigiSig
Double_t fTimeCutDigiSig
Time cut for cluster finding (in sigma)
Definition: CbmStsRecoModule.h:150
CbmStsHit.h
Data class for a reconstructed hit in the STS.
CbmStsRecoModule::fClustersB
std::vector< CbmStsCluster > fClustersB
Definition: CbmStsRecoModule.h:146