CbmRoot
Loading...
Searching...
No Matches
CbmRichMirrorSortingAlignment.h
Go to the documentation of this file.
1/* Copyright (C) 2016-2020 Justus-Liebig-Universitaet Giessen, Giessen
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Jordan Bendarouach [committer] */
4
5#ifndef CBMRICHMIRRORSORTINGALIGNMENT_H
6#define CBMRICHMIRRORSORTINGALIGNMENT_H
7
8#include "CbmRichMirror.h"
11#include "FairTask.h"
12#include "TGeoNavigator.h"
13
14#include <fstream>
15#include <iomanip>
16#include <vector>
17
18using namespace std;
19
20class TClonesArray;
21class TH1D;
22class TH2D;
23
24
25class CbmRichMirrorSortingAlignment : public FairTask {
26 public:
27 /*
28 * Constructor.
29 */
31
32 /*
33 * Destructor.
34 */
36
40 virtual InitStatus Init();
41
45 virtual void Exec(Option_t* option);
46
48
49 void GetPmtNormal(Int_t NofPMTPoints, vector<Double_t>& normalPMT, Double_t& normalCste);
50
51 void ComputeR2(vector<Double_t>& ptR2Center, vector<Double_t>& ptR2Mirr, vector<Double_t> ptM, vector<Double_t> ptC,
52 vector<Double_t> ptR1, TGeoNavigator* navi, TString s);
53
54 void ComputeP(vector<Double_t>& ptPMirr, vector<Double_t>& ptPR2, vector<Double_t> normalPMT, vector<Double_t> ptM,
55 vector<Double_t> ptR2Mirr, Double_t constantePMT);
56
57 void CreateHistoMap(std::map<string, vector<CbmRichMirror*>> mirrorMap, std::map<string, TH2D*>& histoMap);
58
59 void DrawFitAndExtractAngles(std::map<string, vector<Double_t>>& anglesMap, std::map<string, TH2D*> histoMap);
60
61 void setOutputDir(TString s) { fOutputDir = s; }
62
63 void setStudyName(TString s) { fStudyName = s; }
64
65 void setThreshold(Int_t t) { fThreshold = t; }
66
70 virtual void Finish();
71
72
73 private:
74 UInt_t fEventNb;
77 TString fOutputDir;
78 TString fStudyName;
80 std::map<string, vector<CbmRichMirror*>> fMirrorMap;
81
82 TClonesArray* fGlobalTracks;
83 TClonesArray* fRichRings;
84 TClonesArray* fMCTracks;
85 TClonesArray* fMirrorPoints;
86 TClonesArray* fRefPlanePoints;
87 TClonesArray* fPmtPoints;
88 TClonesArray* fRichProjections;
89 TClonesArray* fTrackParams;
90 TClonesArray* fRichRingMatches;
91 TClonesArray* fStsTrackMatches;
92
95
97};
98
99#endif
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.
ClassDef(CbmRichMirrorSortingAlignment, 1)
virtual void Exec(Option_t *option)
Inherited from FairTask.
void DrawFitAndExtractAngles(std::map< string, vector< Double_t > > &anglesMap, std::map< string, TH2D * > histoMap)
void GetPmtNormal(Int_t NofPMTPoints, vector< Double_t > &normalPMT, Double_t &normalCste)
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.
void CreateHistoMap(std::map< string, vector< CbmRichMirror * > > mirrorMap, std::map< string, TH2D * > &histoMap)
CbmRichMirrorSortingAlignment(const CbmRichMirrorSortingAlignment &)
std::map< string, vector< CbmRichMirror * > > fMirrorMap
CbmRichRingFitterEllipseTau * fTauFit
virtual InitStatus Init()
Inherited from FairTask.
CbmRichMirrorSortingAlignment operator=(const CbmRichMirrorSortingAlignment &)
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 s)
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.