CbmRoot
CbmStsAlgoFindHitsOrtho.h
Go to the documentation of this file.
1 
6 #ifndef CBMSTSALGOFINDHITSORTHO_H
7 #define CBMSTSALGOFINDHITSORTHO_H 1
8 
9 
10 #include <Rtypes.h>
11 #include <cassert>
12 
13 class TGeoHMatrix;
14 class CbmStsCluster;
15 class CbmStsHit;
16 class CbmStsParSensor;
17 
18 
36 
37 public:
40 
41 
44 
45 
48 
49 
52 
53 
71  Long64_t Exec(const std::vector<CbmStsCluster>& clustersF,
72  const std::vector<CbmStsCluster>& clustersB,
73  std::vector<CbmStsHit>& hits,
74  UInt_t address,
75  Double_t timeCutSig,
76  Double_t timeCutAbs,
77  UInt_t nStripsF,
78  UInt_t nStripsB,
79  Double_t pitchF,
80  Double_t pitchB,
81  Double_t lorentzF,
82  Double_t lorentzB,
83  TGeoHMatrix* matrix);
84 
85 
86 private:
100  void CreateHit(Double_t xLocal,
101  Double_t yLocal,
102  Double_t varX,
103  Double_t varY,
104  Double_t varXY,
105  const CbmStsCluster& clusterF,
106  const CbmStsCluster& clusterB,
107  UInt_t indexF,
108  UInt_t indexB,
109  Double_t du = 0.,
110  Double_t dv = 0.);
111 
112 
120  void
121  GetClusterPosition(Double_t ClusterCentre, Double_t& xCluster, Int_t& side);
122 
123 
130  Int_t GetSide(Double_t channel) const {
131  assert(channel < fNofStripsF + fNofStripsB);
132  return (channel < Double_t(fNofStripsF) ? 0 : 1);
133  }
134 
135 
143  std::pair<Int_t, Int_t> GetStrip(UInt_t channel) const;
144 
145 
155  Int_t IntersectClusters(const CbmStsCluster& clusterF,
156  const CbmStsCluster& clusterB,
157  UInt_t indexF,
158  UInt_t indexB);
159 
160 
170  Bool_t IsInside(Double_t x, Double_t y);
171 
172 
173 private:
174  UInt_t fAddress = 0;
175  Double_t fTimeCutSig = 0.;
176  Double_t fTimeCutAbs = 0.;
177  UInt_t fNofStripsF = 0;
178  UInt_t fNofStripsB = 0;
179  Double_t fDx = 0.;
180  Double_t fDy = 0.;
181  Double_t fPitchF = 0.;
182  Double_t fPitchB = 0.;
183  Double_t fLorentzF = 0.;
184  Double_t fLorentzB = 0.;
185  TGeoHMatrix* fMatrix = nullptr;
186 
188  std::vector<CbmStsHit>* fHits = nullptr;
189 
190 
192 };
193 
194 
195 #endif
CbmStsAlgoFindHitsOrtho::GetClusterPosition
void GetClusterPosition(Double_t ClusterCentre, Double_t &xCluster, Int_t &side)
Definition: CbmStsAlgoFindHitsOrtho.cxx:182
CbmStsCluster
Data class for STS clusters.
Definition: CbmStsCluster.h:31
CbmStsAlgoFindHitsOrtho::fTimeCutAbs
Double_t fTimeCutAbs
Time cut on clusters in ns.
Definition: CbmStsAlgoFindHitsOrtho.h:176
CbmStsAlgoFindHitsOrtho::fDx
Double_t fDx
Active size in x [cm].
Definition: CbmStsAlgoFindHitsOrtho.h:179
CbmStsAlgoFindHitsOrtho::fLorentzB
Double_t fLorentzB
Lorentz shift correction back side [cm].
Definition: CbmStsAlgoFindHitsOrtho.h:184
CbmStsAlgoFindHitsOrtho::fHits
std::vector< CbmStsHit > * fHits
///< Transformation matrix to global C.S.
Definition: CbmStsAlgoFindHitsOrtho.h:188
CbmStsAlgoFindHitsOrtho::ClassDef
ClassDef(CbmStsAlgoFindHitsOrtho, 1)
CbmStsAlgoFindHitsOrtho::~CbmStsAlgoFindHitsOrtho
virtual ~CbmStsAlgoFindHitsOrtho()
Destructor
Definition: CbmStsAlgoFindHitsOrtho.h:51
CbmStsAlgoFindHitsOrtho::fAddress
UInt_t fAddress
Unique address for hits (sensor)
Definition: CbmStsAlgoFindHitsOrtho.h:174
CbmStsHit
data class for a reconstructed 3-d hit in the STS
Definition: CbmStsHit.h:31
CbmStsAlgoFindHitsOrtho::fNofStripsB
UInt_t fNofStripsB
Number of strips backs side.
Definition: CbmStsAlgoFindHitsOrtho.h:178
CbmStsParSensor
Constructional parameters of a STS sensor.
Definition: CbmStsParSensor.h:38
CbmStsAlgoFindHitsOrtho::fMatrix
TGeoHMatrix * fMatrix
Definition: CbmStsAlgoFindHitsOrtho.h:185
CbmStsAlgoFindHitsOrtho::GetStrip
std::pair< Int_t, Int_t > GetStrip(UInt_t channel) const
Get strip and side from module channel.
Definition: CbmStsAlgoFindHitsOrtho.cxx:221
CbmStsAlgoFindHitsOrtho::fNofStripsF
UInt_t fNofStripsF
Number of strips front side.
Definition: CbmStsAlgoFindHitsOrtho.h:177
CbmStsAlgoFindHitsOrtho::CreateHit
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.
Definition: CbmStsAlgoFindHitsOrtho.cxx:29
CbmStsAlgoFindHitsOrtho::IntersectClusters
Int_t IntersectClusters(const CbmStsCluster &clusterF, const CbmStsCluster &clusterB, UInt_t indexF, UInt_t indexB)
Find the intersection points of two clusters.
Definition: CbmStsAlgoFindHitsOrtho.cxx:241
CbmStsAlgoFindHitsOrtho
Algorithm for hit finding in sensors with orthogonal strips.
Definition: CbmStsAlgoFindHitsOrtho.h:35
CbmStsAlgoFindHitsOrtho::Exec
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.
Definition: CbmStsAlgoFindHitsOrtho.cxx:85
CbmStsAlgoFindHitsOrtho::fDy
Double_t fDy
Active size in y [cm].
Definition: CbmStsAlgoFindHitsOrtho.h:180
CbmStsAlgoFindHitsOrtho::GetSide
Int_t GetSide(Double_t channel) const
Definition: CbmStsAlgoFindHitsOrtho.h:130
CbmStsAlgoFindHitsOrtho::fPitchB
Double_t fPitchB
Strip pitch back side [cm].
Definition: CbmStsAlgoFindHitsOrtho.h:182
CbmStsAlgoFindHitsOrtho::operator=
CbmStsAlgoFindHitsOrtho & operator=(const CbmStsAlgoFindHitsOrtho &)=delete
Assignment operator (disabled)
x
Double_t x
Definition: CbmMvdSensorDigiToHitTask.cxx:68
y
Double_t y
Definition: CbmMvdSensorDigiToHitTask.cxx:68
CbmStsAlgoFindHitsOrtho::fLorentzF
Double_t fLorentzF
Lorentz shift correction front side [cm].
Definition: CbmStsAlgoFindHitsOrtho.h:183
hits
static vector< vector< QAHit > > hits
Definition: CbmTofHitFinderTBQA.cxx:114
CbmStsAlgoFindHitsOrtho::CbmStsAlgoFindHitsOrtho
CbmStsAlgoFindHitsOrtho()
Constructor.
Definition: CbmStsAlgoFindHitsOrtho.cxx:24
CbmStsAlgoFindHitsOrtho::fTimeCutSig
Double_t fTimeCutSig
Time cut on clusters in error units.
Definition: CbmStsAlgoFindHitsOrtho.h:175
CbmStsAlgoFindHitsOrtho::CbmStsAlgoFindHitsOrtho
CbmStsAlgoFindHitsOrtho(const CbmStsAlgoFindHitsOrtho &)=delete
Copy constructor (disabled)
CbmStsAlgoFindHitsOrtho::fPitchF
Double_t fPitchF
Strip pitch front side [cm].
Definition: CbmStsAlgoFindHitsOrtho.h:181
CbmStsAlgoFindHitsOrtho::IsInside
Bool_t IsInside(Double_t x, Double_t y)
Check whether a point (x,y) is inside the active area.
Definition: CbmStsAlgoFindHitsOrtho.cxx:294