PandaRoot
PndPhoGunShort.h
Go to the documentation of this file.
1 // -------------------------------------------------------------------------
2 // ----- PndPhoGunShort header file -----
3 // ----- Created 12/10/10 by Maria Patsyuk -----
4 // ----- -----
5 // ----- -----
6 // -------------------------------------------------------------------------
7 
16 #ifndef PNDPHOGUNSHORT_H
17 #define PNDPHOGUNSHORT_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 
30 #include "PndDrcBarPoint.h"
31 #include "PndDrcPDPoint.h"
32 #include "PndDrcEVPoint.h"
33 #include "PndDrcHit.h"
34 #include "PndDrcPDHit.h"
35 #include "PndDrcDigi.h"
36 #include "PndGeoHandling.h"
37 
38 #include "PndDrcLutNode.h"
39 
40 #ifndef ROOT_TParticlePDG
41 #include "TParticlePDG.h"
42 #endif
43 #ifndef ROOT_TDatabasePDG
44 #include "TDatabasePDG.h"
45 #endif
46 
47 class PndPhoGunShort : public FairTask {
48 
49  public:
52 
54  PndPhoGunShort(Int_t verbose);
55 
57  virtual ~PndPhoGunShort();
58 
59  virtual InitStatus Init();
60 
62  virtual void Exec(Option_t *option);
63 
65  virtual void Finish();
66 
67  void SetOutputFile(TString outName = "lutnode.root") { fOutputName = outName; }
68 
69  void SetEVDepth(Float_t EVdepth = 30.) { fEVdz = EVdepth; }
70  void SetNmcp(Float_t nmcp = 5.) { fNmcp = nmcp; }
71  void SetShiftedPix(Bool_t spix = kFALSE) { fShiftPix = spix; }
72 
73  private:
74  void ProcessPhotonHit();
75  void InitLut();
76 
77  Int_t fDetectorID;
78 
79  TClonesArray *fBarPointArray; // DRC MC points in the bars
80  TClonesArray *fPDPointArray; // DRC points in the photon detector
81  TClonesArray *fPDHitArray; // DRC Hits in the photon detector
82  TClonesArray *fMCArray; // DRC MCPoints in the photon detector
83  TClonesArray *fEVPointArray; // DRC MCPoints in the photon detector
84  TClonesArray *fDigiArray;
85 
86  // TClonesArray* fChPhoArray; // output array of PndChPho
87 
88  TList *fHistoList;
89  TFile *froot;
90 
91  PndDrcDigi *fDigi;
92  PndGeoDrc *fGeo;
93  PndGeoHandling *fGeoH;
94 
96  void SetDefaultParameters();
97 
98  Double_t InBarCoordSyst(TVector3, TVector3 *, TVector3 *, TVector3 *, TVector3 *);
99  Double_t FindReflectionType(Double_t, Double_t, Double_t, TString);
100 
102  Int_t fVerbose;
103 
104  Int_t nevents;
105  Int_t ambiguity;
106 
107  TString fOutputName;
108  TString fTableName;
109  Double_t ftilt;
110  Int_t fBarId;
111 
112  // parameters:
113  Double_t fR;
114  Double_t fRBottom;
115  Double_t fHThick;
116  Double_t fBboxNum;
117  Double_t fPipehAngle;
118  Double_t fBarBoxGap;
119  Double_t fLength;
120  Double_t fDphi;
121  Double_t fEVlen;
122  Double_t fEVdz;
123  Double_t fpi;
124  Double_t fEVdrop;
125  Double_t fPixelSize;
126  Float_t fNmcp;
127  Bool_t fShiftPix;
128 
129  Double_t fNoDD;
130  Double_t fNoU0, fNoU1, fNoU2, fNoU3;
131  Double_t fNoB;
132  Double_t fNoUB;
133  Double_t fNoBU0, fNoBU1, fNoBU2;
134  Double_t fNoUU0, fNoUU1, fNoUU2, fNoUU3;
135  Double_t fNoUUU0, fNoUUU1, fNoUUU2, fNoUUU3, fNoUUU4;
136  Double_t fNoBUU0, fNoBUU1, fNoBUU2;
137  Double_t fNoBUB;
138  Double_t fNoUBU;
139  Double_t fNoTotal;
140  Double_t fNweirdPhotons;
141 
142  Double_t flambdah;
143  Double_t fPixIndex;
144  Double_t ftime;
145  Double_t fPhiRot;
146  TVector3 fPphoInit;
147  TVector3 fStartVertex;
148  TVector3 fPDSec, fEVSec, fEvSec;
149  Double_t fPDPhi, fEVPhi, fPhiRotEV;
150  Double_t Ang_pipe, Rout1, Rin1, Rin2, PlanB[9], PlanU[9], PlanR[6];
151  Double_t determint1, determint2, determint3, determint4;
152  TString ReflectionType, ReflName;
153  TArrayD fmatrixdata;
154  Double_t fZin;
155  Double_t fLowZ;
156 
157  Double_t fkxBar, fkyBar, fkzBar;
158  TVector3 fPphoB; // kBar
159 
160  // vertices of hit BarBox
161  TVector3 fBBver1;
162  TVector3 fBBver2;
163  TVector3 fBBver3;
164  TVector3 fBBver4;
165 
166  PndDrcEVPoint *EVpt;
167  PndDrcEVPoint *EVt;
168  PndDrcPDPoint *Ppt;
169  PndDrcPDHit *pdhit;
170  PndMCTrack *tr;
171 
172  TClonesArray *fLut[5];
173  TFile *fFile;
174  TTree *fTree;
175 
176  ClassDef(PndPhoGunShort, 1)
177 };
178 
179 #endif
void SetOutputFile(TString outName="lutnode.root")
virtual void Finish()
void SetEVDepth(Float_t EVdepth=30.)
virtual ~PndPhoGunShort()
virtual InitStatus Init()
Class to access the naming information of the MVD.
virtual void Exec(Option_t *option)
void SetShiftedPix(Bool_t spix=kFALSE)
void SetNmcp(Float_t nmcp=5.)