1 #ifndef CBMRICHCORRECTION_H
2 #define CBMRICHCORRECTION_H
13 #include "TGeoNavigator.h"
29 static const int kMAX_NOF_HITS = 100;
45 virtual InitStatus Init();
50 virtual void Exec(Option_t* option);
55 virtual void Finish();
60 void InitHistProjection();
62 void ProjectionProducer();
67 void GetPmtNormal(Int_t NofPMTPoints,
68 vector<Double_t>& normalPMT,
69 Double_t& normalCste);
74 void GetMeanSphereCenter(TGeoNavigator* navi, vector<Double_t>& ptC);
79 void GetMirrorIntersection(vector<Double_t>& ptM,
80 vector<Double_t> ptR1,
81 vector<Double_t> momR1,
83 Double_t sphereRadius);
92 vector<Double_t> RotateSphereCenter(vector<Double_t> ptM,
101 InvertMatrix(Double_t mat[3][3], Double_t invMat[3][3], TGeoNavigator* navi);
108 void CalculateMirrorIntersection(vector<Double_t> ptM,
109 vector<Double_t> ptCUnCorr,
110 vector<Double_t>& ptMNew);
117 void ComputeR2(vector<Double_t>& ptR2Center,
118 vector<Double_t>& ptR2Mirr,
119 vector<Double_t> ptM,
120 vector<Double_t> ptC,
121 vector<Double_t> ptR1,
130 void ComputeP(vector<Double_t>& ptPMirr,
131 vector<Double_t>& ptPR2,
132 vector<Double_t> normalPMT,
133 vector<Double_t> ptM,
134 vector<Double_t> ptR2Mirr,
135 Double_t normalCste);
140 void FillHistProjection(TVector3 outPosIdeal,
141 TVector3 outPosUnCorr,
143 Int_t NofGlobalTracks,
144 vector<Double_t> normalPMT,
145 Double_t constantePMT);
150 void DrawHistProjection();
155 void DrawHistFromFile(TString fileName);