26#include <TGeoPhysicalNode.h>
28#include <TStopwatch.h>
44 const CbmStsParSensor& parSensor, Double_t lorentzShiftF, Double_t lorentzShiftB)
45 : fSetupModule(setupModule)
46 , fParModule(&parModule)
47 , fParSensor(&parSensor)
48 , fLorentzShiftF(lorentzShiftF)
49 , fLorentzShiftB(lorentzShiftB)
69 fDigisF.push_back({digi, digiIndex});
71 fDigisB.push_back({digi, digiIndex});
93 [](pair<const CbmStsDigi*, Int_t> digi1, pair<const CbmStsDigi*, Int_t> digi2) {
94 return digi1.first->GetTime() < digi2.first->GetTime();
97 [](pair<const CbmStsDigi*, Int_t> digi1, pair<const CbmStsDigi*, Int_t> digi2) {
98 return digi1.first->GetTime() < digi2.first->GetTime();
132 return (cluster1.GetTime() < cluster2.GetTime());
135 return (cluster1.GetTime() < cluster2.GetTime());
189 TGeoBBox*
shape =
dynamic_cast<TGeoBBox*
>(sensorNode->GetShape());
196 fMatrix = sensorNode->GetMatrix();
254 std::stringstream ss;
ClassImp(CbmStsRecoModule) CbmStsRecoModule
Determination of cluster parameters.
void Exec(CbmStsCluster &cluster, const CbmStsParModule *module)
Algorithm execution.
Algorithm for cluster finding in a linear array of channels.
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.
Algorithm for hit finding in sensors with orthogonal strips.
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, UInt_t nStripsF, UInt_t nStripsB, Double_t pitchF, Double_t pitchB, Double_t lorentzF, Double_t lorentzB, TGeoHMatrix *matrix)
Execute algorithm.
Algorithm for hit finding in the sensors of the CBM-STS.
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.
Data class for STS clusters.
Data class for a single-channel message in the STS.
XPU_D uint16_t GetChannel() const
Channel number in module @value Channel number.
XPU_D int32_t GetAddress() const
TGeoPhysicalNode * GetPnode() const
Int_t GetNofDaughters() const
CbmStsElement * GetDaughter(Int_t index) const
Class representing an instance of a readout unit in the CBM-STS.
std::string ToString() const
Parameters for one STS module.
Constructional parameters of a STS sensor.
Int_t GetParInt(UInt_t index) const
Get the nearest integer value of a parameter.
CbmStsSensorClass GetClass() const
Get the sensor class.
Float_t GetPar(UInt_t index) const
Get a parameter.
Class for reconstruction in one STS module.
std::mutex fLock
///< Algo
Double_t fStereoFront
Strip stereo angle front side [deg].
Bool_t fConnectEdgeFront
Round-the edge clustering front side.
void AddDigiToQueue(const CbmStsDigi *digi, Int_t digiIndex)
Add a digi to the processing queue.
std::string ToString() const
Info to string.
CbmStsAlgoAnaCluster * fClusterAna
Double_t fLorentzShiftB
Average Lorentz shift back side [cm|.
Double_t fTimeCutDigisAbs
Time cut for cluster finding (in ns)
CbmStsAlgoFindHitsOrtho * fHitFinderOrtho
///< Algo
virtual ~CbmStsRecoModule()
Destructor.
TGeoHMatrix * fMatrix
Sensor position in global C.S. [cm].
Double_t fTimeCutClustersAbs
Time cut for hit finding (in sigma)
UInt_t fNofStripsF
Number of sensor strips front side.
Double_t fStripPitchF
Sensor strip pitch front side [cm].
void Init()
Set and check the needed parameters.
CbmStsAlgoFindHits * fHitFinder
///< Algo
Double_t fStereoBack
Strip stereo angle back side [deg].
std::vector< CbmStsCluster > fClustersF
std::vector< CbmStsHit > fHits
Double_t fTimeCutDigisSig
Time cut for cluster finding (in sigma)
Double_t fLorentzShiftF
Average Lorentz shift front side [cm|.
CbmStsAlgoFindClusters * fClusterFinder
///< Algo
Double_t fTimeCutClustersSig
Time cut for hit finding (in ns)
Double_t fDyActive
Active sensor size in y.
Bool_t fConnectEdgeBack
Round-the edge clustering back side.
CbmStsModule * fSetupModule
void Reconstruct()
Perform reconstruction.
void Reset()
Clear input queue.
UInt_t fNofStripsB
Number of sensor strips back side.
CbmStsRecoModule()
Default constructor.
std::vector< CbmStsCluster > fClustersB
std::vector< std::pair< const CbmStsDigi *, Long64_t > > fDigisF
Double_t fStripPitchB
Sensor strip pitch back side [cm].
std::vector< std::pair< const CbmStsDigi *, Long64_t > > fDigisB
const CbmStsParModule * fParModule
const CbmStsParSensor * fParSensor
int32_t GetMotherAddress(int32_t address, int32_t level)
Construct the address of an element from the address of a descendant element.