Go to the documentation of this file.
9 #include <TGeoPhysicalNode.h>
12 #include <FairField.h>
13 #include <FairLogger.h>
39 Double_t lorentzShiftF,
40 Double_t lorentzShiftB)
41 : fSetupModule(setupModule)
42 , fParModule(&parModule)
43 , fParSensor(&parSensor)
44 , fLorentzShiftF(lorentzShiftF)
45 , fLorentzShiftB(lorentzShiftB) {
64 fDigisF.push_back({digi, digiIndex});
66 fDigisB.push_back({digi, digiIndex});
78 [](pair<const CbmStsDigi*, Int_t> digi1,
79 pair<const CbmStsDigi*, Int_t> digi2) {
80 return digi1.first->GetTime() < digi2.first->GetTime();
84 [](pair<const CbmStsDigi*, Int_t> digi1,
85 pair<const CbmStsDigi*, Int_t> digi2) {
86 return digi1.first->GetTime() < digi2.first->GetTime();
119 return (cluster1.GetTime() < cluster2.GetTime());
124 return (cluster1.GetTime() < cluster2.GetTime());
172 TGeoBBox*
shape =
dynamic_cast<TGeoBBox*
>(sensorNode->GetShape());
179 fMatrix = sensorNode->GetMatrix();
184 assert(nStripsF > 0 && nStripsF == nStripsB);
192 assert(Double_t(
fNofStrips) * fStripPitch <= fParSensor->GetPar(0));
196 assert(fDyActive <= fParSensor->GetPar(1));
222 std::stringstream ss;
void AddDigiToQueue(const CbmStsDigi *digi, Int_t digiIndex)
Add a digi to the processing queue.
ClassImp(CbmStsRecoModule) CbmStsRecoModule
Data class for STS clusters.
TGeoHMatrix * fMatrix
Sensor position in global C.S. [cm].
std::vector< std::pair< const CbmStsDigi *, Long64_t > > fDigisF
Double_t fDyActive
Active sensor size in y.
void Reset()
Clear input queue.
const CbmStsParModule * fParModule
std::string ToString() const
std::vector< CbmStsHit > fHits
Double_t fTimeCutClusterSig
Time cut for hit finding (in ns)
Class for reconstruction in one STS module.
const CbmStsParSensor * fParSensor
Bool_t fConnectEdgeBack
Round-the edge clustering back side.
void Reconstruct()
Perform reconstruction.
CbmStsSensorClass GetClass() const
Get the sensor class.
std::vector< CbmStsCluster > fClustersF
Long64_t Exec(const std::vector< InputData > &input, std::vector< CbmStsCluster > &output, UInt_t address, UShort_t nChannels, UShort_t channelOffset, Double_t timeCutSigma, Double_t timeCutAbs, Bool_t connectEdge, const CbmStsParModule *modPar)
Algorithm execution.
TGeoPhysicalNode * GetPnode() const
Double_t fStereoFront
Strip stereo angle front side [deg].
Class representing an instance of a readout unit in the CBM-STS.
Constructional parameters of a STS sensor.
Algorithm for hit finding in the sensors of the CBM-STS.
CbmStsAlgoFindHits * fHitFinder
///< Algo
Parameters for one STS module.
void Init()
Set and check the needed parameters.
Double_t fLorentzShiftF
Average Lorentz shift front side [cm|.
Double_t fStereoBack
Strip stereo angle back side [deg].
Double_t fTimeCutClusterAbs
Time cut for hit finding (in sigma)
std::mutex fLock
///< Algo
CbmStsModule * fSetupModule
Data class for a single-channel message in the STS.
std::vector< std::pair< const CbmStsDigi *, Long64_t > > fDigisB
Double_t fTimeCutDigiAbs
Time cut for cluster finding (in ns)
Double_t fStripPitch
Sensor strip pitch [cm].
UInt_t fNofStrips
Number of sensor strips.
std::string ToString() const
Info to string.
Int_t GetParInt(UInt_t index) const
Get the nearest integer value of a parameter.
CbmStsElement * GetDaughter(Int_t index) const
CbmStsRecoModule()
Default constructor.
Float_t GetPar(UInt_t index) const
Get a parameter.
Int_t GetNofDaughters() const
CbmStsAlgoFindClusters * fClusterFinder
///< Algo
void Exec(CbmStsCluster &cluster, const CbmStsParModule *module)
Algorithm execution.
Double_t fLorentzShiftB
Average Lorentz shift back side [cm|.
Determination of cluster parameters.
virtual ~CbmStsRecoModule()
Destructor.
Algorithm for cluster finding in a linear array of channels.
Int_t GetMotherAddress(Int_t address, Int_t level)
Construct the address of an element from the address of a descendant element.
CbmStsAlgoAnaCluster * fClusterAna
Bool_t fConnectEdgeFront
Round-the edge clustering front side.
Double_t fTimeCutDigiSig
Time cut for cluster finding (in sigma)
std::vector< CbmStsCluster > fClustersB
UShort_t GetChannel() const
Channel number in module @value Channel number.
Long64_t Exec(const std::vector< CbmStsCluster > &clustersF, const std::vector< CbmStsCluster > &clustersB, std::vector< CbmStsHit > &hits, UInt_t address, Double_t timeCutSig, Double_t timeCutAbs, Double_t dY, UInt_t nStrips, Double_t pitch, Double_t stereoF, Double_t stereoB, Double_t lorentzF, Double_t lorentzB, TGeoHMatrix *matrix)
Execute algorithm.