CbmRoot
CbmRichProjectionProducer2.h
Go to the documentation of this file.
1 #ifndef CbmRichProjectionProducer2_H
2 #define CbmRichProjectionProducer2_H
3 
4 #include "CbmRichPoint.h"
6 #include "CbmRichRecGeoPar.h"
7 #include "CbmRichRing.h"
8 #include "CbmRichRingLight.h"
9 #include "FairTrackParam.h"
10 #include "TGeoNavigator.h"
11 #include "TString.h"
12 #include <vector>
13 
14 using namespace std;
15 
16 class TClonesArray;
17 
19 public:
20  /*
21  * Constructor.
22  */
24 
25  /*
26  * Destructor.
27  */
28  virtual ~CbmRichProjectionProducer2();
29 
30  virtual void Init();
31 
32  /*
33  * From incoming track on the mirrors, do reflection of its trajectory and extrapolation of its intersection on the PMT plane.
34  */
35  virtual void DoProjection(TClonesArray* projectedPoint);
36 
37  /*
38  *
39  */
40  Double_t* ProjectionProducer(FairTrackParam* point);
41 
42  /*
43  *
44  */
45  void GetPmtNormal(Int_t NofPMTPoints,
46  vector<Double_t>& normalPMT,
47  Double_t& normalCste);
48 
49  /*
50  * Calculate the normal of the considered mirror tile, using the sphere center position of the tile (ptC) and the local reflection point on the mirror (ptM) => normalMirr.
51  * Then calculate point on sensitive plane from the reflected track extrapolated (ptR2 = reflection of ptR1, with reflection axis = normalMirr).
52  * ptR2Center uses ptC for the calculations, whereas ptR2Mirr uses ptM.
53  */
54  void ComputeR2(vector<Double_t>& ptR2Center,
55  vector<Double_t>& ptR2Mirr,
56  vector<Double_t> ptM,
57  vector<Double_t> ptC,
58  vector<Double_t> ptR1,
59  TGeoNavigator* navi,
60  TString s);
61 
62  /*
63  * Calculate the intersection point (P) between the track and the PMT plane, as if the track had been reflected by the mirror tile.
64  * ptPMirr is calculated using the mirror point (ptM) to define the line reflected by the mirror and towards the PMT plane.
65  * ptPR2 is calculated using ptR2Mirr (the reflection of point R1 on the sensitive plane, using ptM for the calculations -> see ComputeR2 method).
66  */
67  void ComputeP(vector<Double_t>& ptPMirr,
68  vector<Double_t>& ptPR2,
69  vector<Double_t> normalPMT,
70  vector<Double_t> ptM,
71  vector<Double_t> ptR2Mirr,
72  Double_t normalCste);
73 
74  /*
75  * Set output directory for images.
76  */
77  void SetOutputDir(TString dir) { fOutputDir = dir; }
78 
79  /*
80  *
81  */
82  void SetNumbAxis(TString n) { fNumbAxis = n; }
83 
84  /*
85  *
86  */
87  void SetTileName(TString t) { fTile = t; }
88 
89 
90 private:
91  TClonesArray* fTrackParams;
92  TClonesArray* fMCTracks;
93  TClonesArray* fRichPoints;
94 
95  TString fNumbAxis;
96  TString fTile;
97  TString fOutputDir;
98  Int_t fEventNum; // Event counter
99 
100  /*
101  * Copy constructor.
102  */
104  /*
105  * Assignment operator.
106  */
108 
110 };
111 
112 #endif
CbmRichPoint.h
CbmRichProjectionProducerBase.h
Base class for STS track projections onto the photodetector plane.
CbmRichProjectionProducer2
Definition: CbmRichProjectionProducer2.h:18
CbmRichProjectionProducer2::SetNumbAxis
void SetNumbAxis(TString n)
Definition: CbmRichProjectionProducer2.h:82
CbmRichProjectionProducer2::fMCTracks
TClonesArray * fMCTracks
Definition: CbmRichProjectionProducer2.h:92
CbmRichRecGeoPar.h
RICH geometry parameters for the reconstruction. This class is used for convinient storing of the bas...
CbmRichProjectionProducer2::fOutputDir
TString fOutputDir
Definition: CbmRichProjectionProducer2.h:97
CbmRichProjectionProducer2::operator=
CbmRichProjectionProducer2 & operator=(const CbmRichProjectionProducer2 &)
CbmRichProjectionProducer2::ClassDef
ClassDef(CbmRichProjectionProducer2, 1)
CbmRichRing.h
CbmRichProjectionProducer2::CbmRichProjectionProducer2
CbmRichProjectionProducer2(const CbmRichProjectionProducer2 &)
CbmRichProjectionProducer2::SetOutputDir
void SetOutputDir(TString dir)
Definition: CbmRichProjectionProducer2.h:77
CbmRichProjectionProducer2::SetTileName
void SetTileName(TString t)
Definition: CbmRichProjectionProducer2.h:87
CbmRichProjectionProducer2::fTile
TString fTile
Definition: CbmRichProjectionProducer2.h:96
CbmRichProjectionProducer2::fTrackParams
TClonesArray * fTrackParams
Definition: CbmRichProjectionProducer2.h:91
CbmRichRingLight.h
CbmRichProjectionProducer2::fRichPoints
TClonesArray * fRichPoints
Definition: CbmRichProjectionProducer2.h:93
CbmRichProjectionProducer2::fNumbAxis
TString fNumbAxis
Definition: CbmRichProjectionProducer2.h:95
CbmRichProjectionProducerBase
Base class for STS track projections onto the photodetector plane.
Definition: alignment/CbmRichProjectionProducerBase.h:27
CbmRichProjectionProducer2::fEventNum
Int_t fEventNum
Definition: CbmRichProjectionProducer2.h:98