CbmRoot
Loading...
Searching...
No Matches
CbmRichMirrorSortingCorrection.h
Go to the documentation of this file.
1/* Copyright (C) 2016-2019 Justus-Liebig-Universitaet Giessen, Giessen
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Jordan Bendarouach [committer] */
4
5#ifndef CBMRICHMIRRORSORTINGCORRECTION_H
6#define CBMRICHMIRRORSORTINGCORRECTION_H
7
8#include "CbmHistManager.h"
9#include "CbmMCTrack.h"
10#include "CbmRichRing.h"
13#include "CbmRichRingLight.h"
14#include "FairTask.h"
15#include "FairTrackParam.h"
16#include "TGeoNavigator.h"
17#include "TVector3.h"
18
19using namespace std;
20
21
22class CbmRichMirrorSortingCorrection : public FairTask {
23 public:
24 /*
25 * Constructor.
26 */
28
29 /*
30 * Destructor.
31 */
33
37 virtual InitStatus Init();
38
39 void InitHistProjection();
40
41 void InitHistoMap();
42
46 virtual void Exec(Option_t* option);
47
48 void GetPmtNormal(Int_t NofPMTPoints, vector<Double_t>& normalPMT, Double_t& normalCste);
49
50 void ComputeR2(vector<Double_t>& ptR2Center, vector<Double_t>& ptR2Mirr, vector<Double_t> ptM, vector<Double_t> ptC,
51 vector<Double_t> ptR1, TGeoNavigator* navi, TString option, TString mirrorTileName);
52
53 void ComputeP(vector<Double_t>& ptPMirr, vector<Double_t>& ptPR2, vector<Double_t> normalPMT, vector<Double_t> ptM,
54 vector<Double_t> ptR2Mirr, Double_t constantePMT);
55
56 /*
57 * Function filling the diffX, diffY and distance histograms, from the outPos vector.
58 */
59 void FillHistProjection(TVector3 outPosIdeal, TVector3 outPosUnCorr, TVector3 outPos, CbmRichRingLight ringLight,
60 vector<Double_t> normalPMT, Double_t constantePMT, string str);
61
62 void DrawHistProjection();
63
64 void DrawMap(Int_t strX, Int_t strY);
65
67
68 bool IsMcPrimaryElectron(const CbmMCTrack* mctrack);
69
70 void DrawRingTrackDistance(Int_t k);
71
72 void FillRingTrackDistanceCorr(const CbmRichRing* richRing, const FairTrackParam* pTrack, const CbmMCTrack* mcTrack);
73
75
76 void DrawDistanceComp();
77
78 void setOutputDir(TString s) { fOutputDir = s; }
79
81
82 void setStudyName(TString s) { fStudyName = s; }
83
84 void setThreshold(Int_t t) { fThreshold = t; }
85
89 virtual void Finish();
90
91
92 private:
93 UInt_t fEventNb;
96 TString fOutputDir;
98 TString fStudyName;
100 std::map<string, TH1D*> fDiffHistoMap;
106
107 TClonesArray* fGlobalTracks;
108 TClonesArray* fRichRings;
109 TClonesArray* fMCTracks;
110 TClonesArray* fMirrorPoints;
111 TClonesArray* fRefPlanePoints;
112 TClonesArray* fPmtPoints;
113 TClonesArray* fRichProjections;
114 TClonesArray* fTrackParams;
115 TClonesArray* fRichRingMatches;
116 TClonesArray* fStsTrackMatches;
117
119};
120
121#endif
Histogram manager.
Here the ring is fitted with the COP algorithm from A. Ayriyan/G. Ososkov.
Here the ring is fitted with Taubin algorithm from A. Ayriyan, G. Ososkov, N. Chernov.
Histogram manager.
void GetPmtNormal(Int_t NofPMTPoints, vector< Double_t > &normalPMT, Double_t &normalCste)
ClassDef(CbmRichMirrorSortingCorrection, 1)
void FillHistProjection(TVector3 outPosIdeal, TVector3 outPosUnCorr, TVector3 outPos, CbmRichRingLight ringLight, vector< Double_t > normalPMT, Double_t constantePMT, string str)
virtual InitStatus Init()
Inherited from FairTask.
void FillRingTrackDistanceCorr(const CbmRichRing *richRing, const FairTrackParam *pTrack, const CbmMCTrack *mcTrack)
virtual void Exec(Option_t *option)
Inherited from FairTask.
void ComputeR2(vector< Double_t > &ptR2Center, vector< Double_t > &ptR2Mirr, vector< Double_t > ptM, vector< Double_t > ptC, vector< Double_t > ptR1, TGeoNavigator *navi, TString option, TString mirrorTileName)
void ComputeP(vector< Double_t > &ptPMirr, vector< Double_t > &ptPR2, vector< Double_t > normalPMT, vector< Double_t > ptM, vector< Double_t > ptR2Mirr, Double_t constantePMT)
virtual void Finish()
Inherited from FairTask.
bool IsMcPrimaryElectron(const CbmMCTrack *mctrack)
Here the ring is fitted with the COP algorithm from A. Ayriyan/G. Ososkov.
Here the ring is fitted with Taubin algorithm from A. Ayriyan, G. Ososkov, N. Chernov.
Hash for CbmL1LinkKey.