FairRoot/PandaRoot
PndDrcRecoLookupMapS.h
Go to the documentation of this file.
1 // -------------------------------------------------------------------------
2 // ----- PndDrcRecoLookupMapS header file -----
3 // ----- Created 30/09/11 by Maria Patsyuk -----
4 // ----- -----
5 // ----- -----
6 // -------------------------------------------------------------------------
7 
16 #ifndef PNDDRCRECOLOOKUPMAPS_H
17 #define PNDDRCRECOLOOKUPMAPS_H
18 
19 #include "FairTask.h"
20 #include "TClonesArray.h"
21 #include "PndMCTrack.h"
22 #include "PndDrcHit.h"
23 #include "PndDrcPDHit.h"
24 #include "PndStack.h"
25 #include "FairBaseParSet.h"
26 #include "PndGeoDrcPar.h"
27 #include "TString.h"
28 #include <string>
29 #include "PndDrcDigiPar.h"
30 #include "PndDrcDigi.h"
31 #include "PndGeoHandling.h"
32 
33 #include "TH1.h"
34 #include "TH2.h"
35 #include "TTree.h"
36 #include "TGraph2D.h"
37 #include "TColor.h"
38 #include "TStyle.h"
39 #include "TLine.h"
40 #include "TPolyLine.h"
41 
42 #ifndef ROOT_TParticlePDG
43 #include "TParticlePDG.h"
44 #endif
45 #ifndef ROOT_TDatabasePDG
46 #include "TDatabasePDG.h"
47 #endif
48 
49 class PndDrcRecoLookupMapS : public FairTask {
50 
51 public:
52 
55 
58 
60  virtual ~PndDrcRecoLookupMapS();
61 
62  virtual InitStatus Init();
63 
65  virtual void Exec(Option_t* option);
66 
68  virtual void Finish();
69 
70  void SetHistoWidth(double wid=0.01){fWidth = wid;} // 0.01
71  void SetNSigma(double nsig = 3.){fNSigma = nsig;}
72  void SetMagneticField(double mag = 0.){fB = mag;} // [Tesla]
73  void SetOutputFile(TString outName = "PndDrcRecoLookupMapS_output.root"){fOutputName = outName;}
74 
75 protected:
76 
77 
78 private:
79 
80  void ProcessPhotonHit();
81  void ProcessPhotonMC();
82  void WriteToFile();
83  void CreateHisto();
84  void DrawHisto();
85  void ProcessBarHit();
86 
87  // parameters:
100 
101  //output trees
102  TTree* mapstree;
103  Float_t fxx, fyy, fchdiff;
104 
105  // look up table
106  virtual void SetParContainers();
108 
109  Double_t InBarCoordSyst(TVector3, TVector3 *, TVector3 *, TVector3 *, TVector3 *);
110  Int_t NumberOfBounces(TVector3, TVector3, Int_t);
112  Double_t CherenkovPhi(TVector3, TVector3, Double_t *, Double_t *);
113  Double_t RecoAmbigTime(TVector3, TVector3,Double_t *, Bool_t);
114  void DrawBarBox(TVector3, TVector3, TVector3, TVector3);
115  Int_t fDetectorID;
116 
117  TClonesArray* fBarPointArray; // DRC MC points in the bars
118  TClonesArray* fPDPointArray; // DRC points in the photon detector
119  TClonesArray* fHitArray; // DRC Hits in the bars
120  TClonesArray* fPDHitArray; // DRC Hits in the photon detector
121  TClonesArray* fMCArray; // DRC Hits in the photon detector
122  TClonesArray *fDigiArray;
123 
124  //TClonesArray* fChPhoArray; // output array of PndChPho
125  TClonesArray *fDrcLutInfoArray;
126 
127  TList* fHistoList;
128 
131 
133  void SetDefaultParameters();
134 
136  Int_t fVerbose;
137 
138  Int_t nevents;
139 
144 
149 
150  TVector3 fnX1;
151  TVector3 fnY1;
152 
163  TVector3 fPMo;
164  TVector3 fPMoB;
165  TVector3 fPphoInit;
166  TVector3 fkBar;
168  Int_t fBarId;
169 
171 
172  // look up parameters
173  Int_t NHitPix;
174  Int_t NPixPar;
175  Int_t NAmb;
176 
182  TVector3 fPphoB; // kBar
183  TVector3 fStartVertex;
184  TVector3 fPphoPD;
188 
189  // vertices of hit BarBox
190  TVector3 fBBver1;
191  TVector3 fBBver2;
192  TVector3 fBBver3;
193  TVector3 fBBver4;
194 
195 ClassDef(PndDrcRecoLookupMapS,1)
196 
197 };
198 
199 #endif
Double_t RecoAmbigTime(TVector3, TVector3, Double_t *, Bool_t)
Double_t InBarCoordSyst(TVector3, TVector3 *, TVector3 *, TVector3 *, TVector3 *)
TClonesArray * fDrcLutInfoArray
#define verbose
Int_t NumberOfBounces(TVector3, TVector3, Int_t)
void DrawBarBox(TVector3, TVector3, TVector3, TVector3)
void SetHistoWidth(double wid=0.01)
void SetOutputFile(TString outName="PndDrcRecoLookupMapS_output.root")
Class to access the naming information of the MVD.
Double_t
virtual void Exec(Option_t *option)
void SetNSigma(double nsig=3.)
Double_t FindOutPoint(Double_t, Double_t, Double_t, Double_t *, Bool_t)
Double_t CherenkovPhi(TVector3, TVector3, Double_t *, Double_t *)
int nsig
Definition: toy_core.C:46
Digitization Parameter Class for DIRC barrel part.
Definition: PndDrcDigiPar.h:29
virtual InitStatus Init()
void SetMagneticField(double mag=0.)
PndGeoDrc * fGeo
Basic geometry data of barrel DRC.