CbmRoot
Loading...
Searching...
No Matches
CbmStsAlgoFindHitsOrtho.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 CBMSTSALGOFINDHITSORTHO_H
11#define CBMSTSALGOFINDHITSORTHO_H 1
12
13
14#include <Rtypes.h>
15
16#include <cassert>
17
18class TGeoHMatrix;
19class CbmStsCluster;
20class CbmStsHit;
21class CbmStsParSensor;
22
23
41
42 public:
45
46
49
50
53
54
57
58
76 Long64_t Exec(const std::vector<CbmStsCluster>& clustersF, const std::vector<CbmStsCluster>& clustersB,
77 std::vector<CbmStsHit>& hits, UInt_t address, Double_t timeCutSig, Double_t timeCutAbs, UInt_t nStripsF,
78 UInt_t nStripsB, Double_t pitchF, Double_t pitchB, Double_t lorentzF, Double_t lorentzB,
79 TGeoHMatrix* matrix);
80
81
82 private:
96 void CreateHit(Double_t xLocal, Double_t yLocal, Double_t varX, Double_t varY, Double_t varXY,
97 const CbmStsCluster& clusterF, const CbmStsCluster& clusterB, UInt_t indexF, UInt_t indexB,
98 Double_t du = 0., Double_t dv = 0.);
99
100
108 void GetClusterPosition(Double_t ClusterCentre, Double_t& xCluster, Int_t& side);
109
110
117 Int_t GetSide(Double_t channel) const
118 {
119 assert(channel < fNofStripsF + fNofStripsB);
120 return (channel < Double_t(fNofStripsF) ? 0 : 1);
121 }
122
123
131 std::pair<Int_t, Int_t> GetStrip(UInt_t channel) const;
132
133
143 Int_t IntersectClusters(const CbmStsCluster& clusterF, const CbmStsCluster& clusterB, UInt_t indexF, UInt_t indexB);
144
145
155 Bool_t IsInside(Double_t x, Double_t y);
156
157
158 private:
159 UInt_t fAddress = 0;
160 Double_t fTimeCutSig = 0.;
161 Double_t fTimeCutAbs = 0.;
162 UInt_t fNofStripsF = 0;
163 UInt_t fNofStripsB = 0;
164 Double_t fDx = 0.;
165 Double_t fDy = 0.;
166 Double_t fPitchF = 0.;
167 Double_t fPitchB = 0.;
168 Double_t fLorentzF = 0.;
169 Double_t fLorentzB = 0.;
170 TGeoHMatrix* fMatrix = nullptr;
171
173 std::vector<CbmStsHit>* fHits = nullptr;
174
175
177};
178
179
180#endif
static vector< vector< QAHit > > hits
Algorithm for hit finding in sensors with orthogonal strips.
Double_t fLorentzB
Lorentz shift correction back side [cm].
Double_t fDy
Active size in y [cm].
CbmStsAlgoFindHitsOrtho(const CbmStsAlgoFindHitsOrtho &)=delete
Copy constructor (disabled)
Double_t fTimeCutSig
Time cut on clusters in error units.
std::pair< Int_t, Int_t > GetStrip(UInt_t channel) const
Get strip and side from module channel.
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.
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.
ClassDef(CbmStsAlgoFindHitsOrtho, 1)
Int_t GetSide(Double_t channel) const
CbmStsAlgoFindHitsOrtho & operator=(const CbmStsAlgoFindHitsOrtho &)=delete
Assignment operator (disabled)
Double_t fPitchB
Strip pitch back side [cm].
UInt_t fNofStripsB
Number of strips backs side.
Double_t fPitchF
Strip pitch front side [cm].
virtual ~CbmStsAlgoFindHitsOrtho()
Destructor
std::vector< CbmStsHit > * fHits
///< Transformation matrix to global C.S.
UInt_t fAddress
Unique address for hits (sensor)
Double_t fLorentzF
Lorentz shift correction front side [cm].
Double_t fTimeCutAbs
Time cut on clusters in ns.
Double_t fDx
Active size in x [cm].
UInt_t fNofStripsF
Number of strips front side.
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.
Bool_t IsInside(Double_t x, Double_t y)
Check whether a point (x,y) is inside the active area.
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.