CbmRoot
|
Class for reconstruction in one STS module. More...
#include <CbmStsRecoModule.h>
Classes | |
struct | Timings |
Public Member Functions | |
CbmStsRecoModule () | |
Default constructor. | |
CbmStsRecoModule (CbmStsModule *setupModule, const CbmStsParModule &parModule, const CbmStsParSensor &parSensor, Double_t lorentzShiftF, Double_t lorentzShiftB) | |
Standard constructor. | |
CbmStsRecoModule (const CbmStsRecoModule &)=delete | |
Copy constructor (disabled) | |
CbmStsRecoModule & | operator= (const CbmStsRecoModule &)=delete |
Assignment operator (disabled) | |
virtual | ~CbmStsRecoModule () |
Destructor. | |
void | AddDigiToQueue (const CbmStsDigi *digi, Int_t digiIndex) |
Add a digi to the processing queue. | |
const std::vector< CbmStsCluster > & | GetClustersF () const |
Output front-side clusters. | |
const std::vector< CbmStsCluster > & | GetClustersB () const |
Output back-side clusters. | |
const std::vector< CbmStsHit > & | GetHits () const |
Output hits. | |
Timings | GetTimings () const |
Time measurements. | |
void | Reconstruct () |
Perform reconstruction. | |
void | SortDigis () |
void | FindClusters () |
void | SortClusters () |
void | FindHits () |
void | Reset () |
Clear input queue. | |
TGeoHMatrix * | getMatrix () |
std::string | ToString () const |
Info to string. | |
void | SetTimeCutClustersAbs (Double_t value) |
Time cut on clusters for hit finding. | |
void | SetTimeCutClustersSig (Double_t value) |
Time cut on clusters for hit finding. | |
void | SetTimeCutDigisAbs (Double_t value) |
Time cut on digis for cluster finding. | |
void | SetTimeCutDigisSig (Double_t value) |
Time cut on digis for hit finding. | |
Private Member Functions | |
void | Init () |
Set and check the needed parameters. | |
ClassDef (CbmStsRecoModule, 1) | |
Private Attributes | |
CbmStsAlgoAnaCluster * | fClusterAna = nullptr |
CbmStsAlgoFindClusters * | fClusterFinder = nullptr |
///< Algo | |
CbmStsAlgoFindHits * | fHitFinder = nullptr |
///< Algo | |
CbmStsAlgoFindHitsOrtho * | fHitFinderOrtho = nullptr |
///< Algo | |
std::mutex | fLock {} |
///< Algo | |
CbmStsModule * | fSetupModule = nullptr |
const CbmStsParModule * | fParModule = nullptr |
const CbmStsParSensor * | fParSensor = nullptr |
Double_t | fDyActive = 0. |
Active sensor size in y. | |
UInt_t | fNofStripsF = 0 |
Number of sensor strips front side. | |
UInt_t | fNofStripsB = 0 |
Number of sensor strips back side. | |
Double_t | fStripPitchF = 0. |
Sensor strip pitch front side [cm]. | |
Double_t | fStripPitchB = 0. |
Sensor strip pitch back side [cm]. | |
Double_t | fStereoFront = 0. |
Strip stereo angle front side [deg]. | |
Double_t | fStereoBack = 0. |
Strip stereo angle back side [deg]. | |
TGeoHMatrix * | fMatrix = nullptr |
Sensor position in global C.S. [cm]. | |
Double_t | fLorentzShiftF = 0. |
Average Lorentz shift front side [cm|. | |
Double_t | fLorentzShiftB = 0. |
Average Lorentz shift back side [cm|. | |
std::vector< std::pair< const CbmStsDigi *, Long64_t > > | fDigisF {} |
std::vector< std::pair< const CbmStsDigi *, Long64_t > > | fDigisB {} |
std::vector< CbmStsCluster > | fClustersF {} |
std::vector< CbmStsCluster > | fClustersB {} |
std::vector< CbmStsHit > | fHits {} |
Double_t | fTimeCutDigisSig = 3. |
Time cut for cluster finding (in sigma) | |
Double_t | fTimeCutDigisAbs = -1. |
Time cut for cluster finding (in ns) | |
Double_t | fTimeCutClustersSig = 4. |
Time cut for hit finding (in ns) | |
Double_t | fTimeCutClustersAbs = -1. |
Time cut for hit finding (in sigma) | |
Bool_t | fConnectEdgeFront = kFALSE |
Round-the edge clustering front side. | |
Bool_t | fConnectEdgeBack = kFALSE |
Round-the edge clustering back side. | |
Timings | fTimings |
Class for reconstruction in one STS module.
The module represents one module/sensor in the STS setup. Reconstruction in the modules is independent from other modules and can thus pe performed in parallel. The reconstruction module performs cluster finding, cluster analysis and hit finding.
The implementation assumes the module to be connected to exactly one double-sided strip sensor. The digi channel number must equal to the strip number on the front side of the sensor, and to strip number + number of strips on the back side.
Definition at line 51 of file CbmStsRecoModule.h.
CbmStsRecoModule::CbmStsRecoModule | ( | ) |
Default constructor.
CbmStsRecoModule::CbmStsRecoModule | ( | CbmStsModule * | setupModule, |
const CbmStsParModule & | parModule, | ||
const CbmStsParSensor & | parSensor, | ||
Double_t | lorentzShiftF, | ||
Double_t | lorentzShiftB ) |
Standard constructor.
setupModule | Corresponding setup element |
parModule | Module parameters |
parSensor | Sensor parameters |
lorentzShiftF | Average Lorentz shift sensor front side [cm] |
lorentzShiftB | Average Lorentz shift sensor back side [cm] |
The Lorentz shift will be used to correct the hit position in hit finding.
Definition at line 43 of file CbmStsRecoModule.cxx.
References Init().
|
delete |
Copy constructor (disabled)
|
virtual |
Destructor.
Definition at line 57 of file CbmStsRecoModule.cxx.
void CbmStsRecoModule::AddDigiToQueue | ( | const CbmStsDigi * | digi, |
Int_t | digiIndex ) |
Add a digi to the processing queue.
digi | Pointer to digi object |
digiIndex | Index of digi in input array |
Definition at line 62 of file CbmStsRecoModule.cxx.
References fDigisB, fDigisF, fLock, fNofStripsB, fNofStripsF, fSetupModule, CbmStsDigi::GetAddress(), CbmStsElement::GetAddress(), CbmStsDigi::GetChannel(), CbmStsAddress::GetMotherAddress(), and kStsModule.
|
private |
void CbmStsRecoModule::FindClusters | ( | ) |
Definition at line 104 of file CbmStsRecoModule.cxx.
References CbmStsAlgoAnaCluster::Exec(), CbmStsAlgoFindClusters::Exec(), fClusterAna, fClusterFinder, fClustersB, fClustersF, fConnectEdgeBack, fConnectEdgeFront, fDigisB, fDigisF, fNofStripsB, fNofStripsF, fParModule, fSetupModule, fTimeCutDigisAbs, fTimeCutDigisSig, fTimings, CbmStsElement::GetAddress(), and CbmStsRecoModule::Timings::timeCluster.
Referenced by Reconstruct().
void CbmStsRecoModule::FindHits | ( | ) |
Definition at line 141 of file CbmStsRecoModule.cxx.
References CbmStsAlgoFindHits::Exec(), CbmStsAlgoFindHitsOrtho::Exec(), fClustersB, fClustersF, fDyActive, fHitFinder, fHitFinderOrtho, fHits, fLorentzShiftB, fLorentzShiftF, fMatrix, fNofStripsB, fNofStripsF, fSetupModule, fStereoBack, fStereoFront, fStripPitchB, fStripPitchF, fTimeCutClustersAbs, fTimeCutClustersSig, fTimings, CbmStsElement::GetAddress(), and CbmStsRecoModule::Timings::timeHits.
Referenced by Reconstruct().
|
inline |
Output back-side clusters.
Definition at line 107 of file CbmStsRecoModule.h.
References fClustersB.
|
inline |
Output front-side clusters.
Definition at line 101 of file CbmStsRecoModule.h.
References fClustersF.
|
inline |
Output hits.
Definition at line 113 of file CbmStsRecoModule.h.
References fHits.
|
inline |
Definition at line 136 of file CbmStsRecoModule.h.
References fMatrix.
Referenced by CbmRecoSts::CreateModules().
|
inline |
|
private |
Set and check the needed parameters.
Definition at line 172 of file CbmStsRecoModule.cxx.
References fClusterAna, fClusterFinder, fConnectEdgeBack, fConnectEdgeFront, fDyActive, fHitFinder, fHitFinderOrtho, fMatrix, fNofStripsB, fNofStripsF, fParSensor, fSetupModule, fStereoBack, fStereoFront, fStripPitchB, fStripPitchF, CbmStsParSensor::GetClass(), CbmStsElement::GetDaughter(), CbmStsElement::GetNofDaughters(), CbmStsParSensor::GetPar(), CbmStsParSensor::GetParInt(), CbmStsElement::GetPnode(), kDssdOrtho, kDssdStereo, and shape.
Referenced by CbmStsRecoModule().
|
delete |
Assignment operator (disabled)
void CbmStsRecoModule::Reconstruct | ( | ) |
Perform reconstruction.
Definition at line 78 of file CbmStsRecoModule.cxx.
References FindClusters(), FindHits(), SortClusters(), and SortDigis().
void CbmStsRecoModule::Reset | ( | ) |
Clear input queue.
Definition at line 163 of file CbmStsRecoModule.cxx.
|
inline |
Time cut on clusters for hit finding.
value | Maximal time difference between two clusters in a hit [ns] |
Two clusters are considered compatible if their time difference is below value. Setting this cut parameter to a positive value will override the time cut defined by SetTimeCutClustersSig.
Definition at line 150 of file CbmStsRecoModule.h.
References fTimeCutClustersAbs.
Referenced by CbmRecoSts::CreateModules().
|
inline |
Time cut on clusters for hit finding.
value | Maximal time difference in units of error |
Two clusters are considered compatible if their time difference is below value * sqrt(terr1**2 + terr2*+2).
Definition at line 159 of file CbmStsRecoModule.h.
References fTimeCutClustersSig.
Referenced by CbmRecoSts::CreateModules().
|
inline |
Time cut on digis for cluster finding.
value | Maximal time difference between two digis in a cluster [ns] |
Two digis are considered compatible if their time difference is below value. Setting this cut parameter to a positive value will override the time cut defined by SetTimeCutDigisSig.
Definition at line 170 of file CbmStsRecoModule.h.
References fTimeCutDigisAbs.
Referenced by CbmRecoSts::CreateModules().
|
inline |
Time cut on digis for hit finding.
value | Maximal time difference in units of error |
Two digis are considered compatible if their time difference is below value * sqrt2 * sigma(t), where the time error of the digis is assumed to be the same.
Definition at line 180 of file CbmStsRecoModule.h.
References fTimeCutDigisSig.
Referenced by CbmRecoSts::CreateModules().
void CbmStsRecoModule::SortClusters | ( | ) |
Definition at line 125 of file CbmStsRecoModule.cxx.
References fClustersB, fClustersF, fTimings, and CbmStsRecoModule::Timings::timeSortCluster.
Referenced by Reconstruct().
void CbmStsRecoModule::SortDigis | ( | ) |
Definition at line 86 of file CbmStsRecoModule.cxx.
References fDigisB, fDigisF, fTimings, and CbmStsRecoModule::Timings::timeSortDigi.
Referenced by Reconstruct().
std::string CbmStsRecoModule::ToString | ( | ) | const |
Info to string.
Definition at line 252 of file CbmStsRecoModule.cxx.
References fNofStripsB, fNofStripsF, fSetupModule, and CbmStsModule::ToString().
|
private |
Definition at line 190 of file CbmStsRecoModule.h.
Referenced by FindClusters(), and Init().
|
private |
///< Algo
Definition at line 191 of file CbmStsRecoModule.h.
Referenced by FindClusters(), and Init().
|
private |
Definition at line 215 of file CbmStsRecoModule.h.
Referenced by FindClusters(), FindHits(), GetClustersB(), and SortClusters().
|
private |
Definition at line 214 of file CbmStsRecoModule.h.
Referenced by FindClusters(), FindHits(), GetClustersF(), and SortClusters().
|
private |
Round-the edge clustering back side.
Definition at line 224 of file CbmStsRecoModule.h.
Referenced by FindClusters(), and Init().
|
private |
Round-the edge clustering front side.
Definition at line 223 of file CbmStsRecoModule.h.
Referenced by FindClusters(), and Init().
|
private |
Definition at line 213 of file CbmStsRecoModule.h.
Referenced by AddDigiToQueue(), FindClusters(), Reset(), and SortDigis().
|
private |
Definition at line 212 of file CbmStsRecoModule.h.
Referenced by AddDigiToQueue(), FindClusters(), Reset(), and SortDigis().
|
private |
Active sensor size in y.
Definition at line 200 of file CbmStsRecoModule.h.
Referenced by FindHits(), and Init().
|
private |
|
private |
|
private |
Definition at line 216 of file CbmStsRecoModule.h.
Referenced by FindHits(), and GetHits().
|
private |
|
private |
Average Lorentz shift back side [cm|.
Definition at line 209 of file CbmStsRecoModule.h.
Referenced by FindHits().
|
private |
Average Lorentz shift front side [cm|.
Definition at line 208 of file CbmStsRecoModule.h.
Referenced by FindHits().
|
private |
Sensor position in global C.S. [cm].
Definition at line 207 of file CbmStsRecoModule.h.
Referenced by FindHits(), getMatrix(), and Init().
|
private |
Number of sensor strips back side.
Definition at line 202 of file CbmStsRecoModule.h.
Referenced by AddDigiToQueue(), FindClusters(), FindHits(), Init(), and ToString().
|
private |
Number of sensor strips front side.
Definition at line 201 of file CbmStsRecoModule.h.
Referenced by AddDigiToQueue(), FindClusters(), FindHits(), Init(), and ToString().
|
private |
Definition at line 198 of file CbmStsRecoModule.h.
Referenced by FindClusters().
|
private |
Definition at line 199 of file CbmStsRecoModule.h.
Referenced by Init().
|
private |
Definition at line 197 of file CbmStsRecoModule.h.
Referenced by AddDigiToQueue(), FindClusters(), FindHits(), Init(), and ToString().
|
private |
Strip stereo angle back side [deg].
Definition at line 206 of file CbmStsRecoModule.h.
Referenced by FindHits(), and Init().
|
private |
Strip stereo angle front side [deg].
Definition at line 205 of file CbmStsRecoModule.h.
Referenced by FindHits(), and Init().
|
private |
Sensor strip pitch back side [cm].
Definition at line 204 of file CbmStsRecoModule.h.
Referenced by FindHits(), and Init().
|
private |
Sensor strip pitch front side [cm].
Definition at line 203 of file CbmStsRecoModule.h.
Referenced by FindHits(), and Init().
|
private |
Time cut for hit finding (in sigma)
Definition at line 222 of file CbmStsRecoModule.h.
Referenced by FindHits(), and SetTimeCutClustersAbs().
|
private |
Time cut for hit finding (in ns)
Definition at line 221 of file CbmStsRecoModule.h.
Referenced by FindHits(), and SetTimeCutClustersSig().
|
private |
Time cut for cluster finding (in ns)
Definition at line 220 of file CbmStsRecoModule.h.
Referenced by FindClusters(), and SetTimeCutDigisAbs().
|
private |
Time cut for cluster finding (in sigma)
Definition at line 219 of file CbmStsRecoModule.h.
Referenced by FindClusters(), and SetTimeCutDigisSig().
|
private |
Definition at line 227 of file CbmStsRecoModule.h.
Referenced by FindClusters(), FindHits(), GetTimings(), SortClusters(), and SortDigis().