PandaRoot
PndDrcLutReco.h
Go to the documentation of this file.
1 // -----------------------------------------
2 // PndDrcLutReco.h
3 //
4 // Created on: 13.07.2013
5 // Author: R.Dzhygadlo at gsi.de
6 // -----------------------------------------
7 // Class for reconstruction in DIRC using look-up table method
8 
9 #ifndef PNDDRCLUTRECO_H
10 #define PNDDRCLUTRECO_H
11 
12 #include "FairTask.h"
13 
14 #include "PndMCTrack.h"
15 #include "PndDrcBarPoint.h"
16 #include "PndDrcEVPoint.h"
17 #include "PndDrcPDPoint.h"
18 #include "PndDrcHit.h"
19 #include "PndDrcPDHit.h"
20 #include "PndDrcDigi.h"
21 #include "PndGeoDrc.h"
22 #include "PndDrcTrackInfo.h"
23 #include "PndDrcPhotonInfo.h"
24 #include "PndDrcAmbiguityInfo.h"
25 #include "PndPersistencyTask.h"
26 
27 #include "TClonesArray.h"
28 #include "TString.h"
29 #include "TFile.h"
30 #include "TH1.h"
31 #include "TF1.h"
32 #include "TSpectrum.h"
33 #include "TTree.h"
34 
36 
37  public:
38  // Default constructor
39  PndDrcLutReco();
40 
41  // Standard constructors
42  PndDrcLutReco(Int_t verbose);
43  PndDrcLutReco(Int_t verbose, TString infilename);
44 
45  // Destructor
46  virtual ~PndDrcLutReco();
47 
48  virtual InitStatus Init();
49 
50  // Executed task
51  virtual void Exec(Option_t *option);
52 
53  // Finish task
54  virtual void Finish();
55 
56  void SetOutputFile(TString infilename = "luttab.root") { fInputFile = infilename; }
57 
58  private:
59  void LoopOverMcTracks();
60  void FillAmbiguities(PndDrcPhotonInfo *photoninfo, Int_t barId, Int_t recalculatedSensorId, Double_t directz, Double_t barHitTime);
61  void DetermineCherenkov(PndDrcTrackInfo *trackinfo, Int_t boxId);
62  void DetermineBarId(Double_t phi, Double_t &boxPhi, Int_t &boxId, Int_t &barId);
63  Double_t FindPeak();
64  Int_t FindPdg(Double_t mom, Double_t cangle);
65  PndGeoDrc *fGeo;
66  Int_t fDetectorID;
67  Double_t fBboxNum, fPipehAngle, fDphi, fBarPhi;
68 
69  TClonesArray *fMCArray; // DRC MCPoints in the photon detector
70  TClonesArray *fBarPointArray;
71  TClonesArray *fEVPointArray;
72  TClonesArray *fPDPointArray; // DRC points in the photon detector
73  TClonesArray *fDigiArray;
74  TClonesArray *fPDHitArray; // DRC Hits in the photon detector
75  TClonesArray *fLut[5];
76  TClonesArray *fDrcTrackInfoArray;
77 
78  TFile *fFile;
79  TTree *fTree;
80 
81  PndMCTrack *fMCTrack;
82  PndDrcBarPoint *fBarPoint;
83  PndDrcEVPoint *fEVPoint;
84  PndDrcPDPoint *fPDPoint;
85  PndDrcDigi *fDigi;
86  PndDrcPDHit *fPDHit;
87 
88  // Set the parameters to the default values.
89  void SetDefaultParameters();
90 
91  // Verbosity level
92  Int_t fVerbose;
93  Int_t nevents;
94  TString fInputFile;
95  Int_t fEvType, fRadType, fLensType;
96  TH1F *fHist;
97  TH1F *fHist2;
98  TF1 *fFit;
99  TSpectrum *fSpect;
100 
101  ClassDef(PndDrcLutReco, 1)
102 };
103 
104 #endif
virtual void Finish()
virtual void Exec(Option_t *option)
virtual ~PndDrcLutReco()
void SetOutputFile(TString infilename="luttab.root")
Definition: PndDrcLutReco.h:56
virtual InitStatus Init()