CbmRoot
Loading...
Searching...
No Matches
CbmStsAlgoFindHits.h
Go to the documentation of this file.
1/* Copyright (C) 2020 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Volker Friese [committer] */
4
10#ifndef CBMSTSALGOFINDHITS_H
11#define CBMSTSALGOFINDHITS_H 1
12
13
14#include <Rtypes.h>
15
16class TGeoHMatrix;
17class CbmStsCluster;
18class CbmStsHit;
19class CbmStsParSensor;
20
21
39
40 public:
43
44
47
48
51
52
55
56
74 Long64_t Exec(const std::vector<CbmStsCluster>& clustersF, const std::vector<CbmStsCluster>& clustersB,
75 std::vector<CbmStsHit>& hits, UInt_t address, Double_t timeCutSig, Double_t timeCutAbs, Double_t dY,
76 UInt_t nStrips, Double_t pitch, Double_t stereoF, Double_t stereoB, Double_t lorentzF,
77 Double_t lorentzB, TGeoHMatrix* matrix);
78
79
80 private:
94 void CreateHit(Double_t xLocal, Double_t yLocal, Double_t varX, Double_t varY, Double_t varXY,
95 const CbmStsCluster& clusterF, const CbmStsCluster& clusterB, UInt_t indexF, UInt_t indexB,
96 Double_t du = 0., Double_t dv = 0.);
97
98
106 void GetClusterPosition(Double_t ClusterCentre, Double_t& xCluster, Int_t& side);
107
108
115 Int_t GetSide(Double_t channel) const { return (channel < Double_t(fNofStrips) ? 0 : 1); }
116
117
125 std::pair<Int_t, Int_t> GetStrip(UInt_t channel) const;
126
127
147 Bool_t Intersect(Double_t xF, Double_t exF, Double_t xB, Double_t exB, Double_t& x, Double_t& y, Double_t& varX,
148 Double_t& varY, Double_t& varXY);
149
150
160 Int_t IntersectClusters(const CbmStsCluster& clusterF, const CbmStsCluster& clusterB, UInt_t indexF, UInt_t indexB);
161
162
172 Bool_t IsInside(Double_t x, Double_t y);
173
174
175 private:
176 UInt_t fAddress = 0;
177 Double_t fTimeCutSig = 0.;
178 Double_t fTimeCutAbs = 0.;
179 UInt_t fNofStrips = 0;
180 Double_t fDx = 0.;
181 Double_t fDy = 0.;
182 Double_t fPitch = 0.;
183 Double_t fStereoF = 0.;
184 Double_t fStereoB = 0.;
185 Double_t fLorentzF = 0.;
186 Double_t fLorentzB = 0.;
187 TGeoHMatrix* fMatrix = nullptr;
188 Double_t fTanStereoF = 0.;
189 Double_t fTanStereoB = 0.;
190 Double_t fErrorFac = 0.;
191
193 std::vector<CbmStsHit>* fHits = nullptr;
194
195
197};
198
199
200#endif
static vector< vector< QAHit > > hits
Algorithm for hit finding in the sensors of the CBM-STS.
Double_t fDy
Active size in y [cm].
Int_t GetSide(Double_t channel) const
Bool_t Intersect(Double_t xF, Double_t exF, Double_t xB, Double_t exB, Double_t &x, Double_t &y, Double_t &varX, Double_t &varY, Double_t &varXY)
Intersection point of two strips / cluster centres.
ClassDef(CbmStsAlgoFindHits, 1)
Double_t fTimeCutSig
Time cut on clusters in error units.
Double_t fTimeCutAbs
Time cut on clusters in ns.
std::pair< Int_t, Int_t > GetStrip(UInt_t channel) const
Get strip and side from module channel.
Double_t fLorentzF
Lorentz shift correction front side [cm].
Double_t fPitch
Strip pitch [cm].
Double_t fStereoF
Stereo angle front side [deg].
CbmStsAlgoFindHits()
Constructor.
UInt_t fAddress
Unique address for hits (sensor)
Double_t fTanStereoB
Tangent of stereo angle back side.
Double_t fErrorFac
For calculation of the hit error.
Double_t fTanStereoF
///< Transformation matrix to global C.S.
void CreateHit(Double_t xLocal, Double_t yLocal, Double_t varX, Double_t varY, Double_t varXY, const CbmStsCluster &clusterF, const CbmStsCluster &clusterB, UInt_t indexF, UInt_t indexB, Double_t du=0., Double_t dv=0.)
Create a new hit in the output array.
Double_t fStereoB
Stereo angle back side [deg].
void GetClusterPosition(Double_t ClusterCentre, Double_t &xCluster, Int_t &side)
Int_t IntersectClusters(const CbmStsCluster &clusterF, const CbmStsCluster &clusterB, UInt_t indexF, UInt_t indexB)
Find the intersection points of two clusters.
CbmStsAlgoFindHits & operator=(const CbmStsAlgoFindHits &)=delete
Assignment operator (disabled)
UInt_t fNofStrips
Number of strips.
Double_t fDx
Active size in x [cm].
Bool_t IsInside(Double_t x, Double_t y)
Check whether a point (x,y) is inside the active area.
virtual ~CbmStsAlgoFindHits()
Destructor
std::vector< CbmStsHit > * fHits
Output vector of hits.
CbmStsAlgoFindHits(const CbmStsAlgoFindHits &)=delete
Copy constructor (disabled)
Double_t fLorentzB
Lorentz shift correction back side [cm].
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 reconstructed 3-d hit in the STS
Definition CbmStsHit.h:35
Constructional parameters of a STS sensor.