PandaRoot
PndPhoGunShortP.h
Go to the documentation of this file.
1 // -------------------------------------------------------------------------
2 // ----- PndPhoGunShortP header file -----
3 // ----- Created 11/09/13 by Harphool Kumawat -----
4 // ----- -----
5 // ----- -----
6 // -------------------------------------------------------------------------
7 
16 #ifndef PNDPHOGUNSHORTP_H
17 #define PNDPHOGUNSHORTP_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 PndPhoGunShortP : public FairTask {
48 
49  public:
52 
54  PndPhoGunShortP(Int_t verbose);
55 
57  virtual ~PndPhoGunShortP();
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  private:
70  void ProcessPhotonHit();
71  void InitLut();
72 
73  Int_t fDetectorID;
74 
75  TClonesArray *fBarPointArray; // DRC MC points in the bars
76  TClonesArray *fPDPointArray; // DRC points in the photon detector
77  TClonesArray *fPDHitArray; // DRC Hits in the photon detector
78  TClonesArray *fMCArray; // DRC MCPoints in the photon detector
79  TClonesArray *fEVPointArray; // DRC MCPoints in the photon detector
80  TClonesArray *fDigiArray;
81 
82  // TClonesArray* fChPhoArray; // output array of PndChPho
83 
84  TList *fHistoList;
85  TFile *froot;
86 
87  PndDrcDigi *fDigi;
88  PndGeoDrc *fGeo;
89  PndGeoHandling *fGeoH;
90 
92  void SetDefaultParameters();
93 
94  Double_t InBarCoordSyst(TVector3);
95  Double_t FindReflectionType(Double_t, Double_t, Double_t, TString);
96 
98  Int_t fVerbose;
99 
100  Int_t nevents;
101  Int_t ambiguity;
102 
103  TString fOutputName;
104  TString fTableName;
105  Double_t ftilt;
106  Int_t fBarId;
107 
108  // parameters:
109  Double_t fR;
110  Double_t fRBottom;
111  Double_t fHThick;
112  Double_t fBboxNum;
113  Double_t fPipehAngle;
114  Double_t fBarBoxGap;
115  Double_t fLength;
116  Double_t fDphi;
117  Double_t fEVlen;
118  Double_t fpi;
119  Double_t fEVdrop;
120 
121  Double_t fNoDD, fNoU, fNoB, fNoR, fNoL;
122  Double_t fNoBL, fNoUR, fNoUL, fNoRL, fNoLR, fNoRB, fNoBU, fNoLB, fNoBR, fNoRU, fNoLU;
123  Double_t fNoBLU, fNoBRL, fNoBRU, fNoBLR, fNoBUR, fNoBUL, fNoRBL, fNoRLU, fNoRLB, fNoRUL, fNoRBU, fNoURL, fNoULR, fNoTotal, fNoLRB, fNoLRU, fNoLBR, fNoLBU, fNoLUR, fNoLUB, fNoURB,
124  fNoULB, fNoUBR, fNoUBL;
125  Double_t fNoBLRU, fNoBRLU, fNoBULB, fNoBURB, fNoUBLR, fNoULBR, fNoURBL, fNoULRB, fNoURLB, fNoUBRL, fNoRULB, fNoRBUL, fNoRBLU, fNoLBUR, fNoLBRU, fNoLURB, fNoLUBR, fNoLRUL,
126  fNoLRLU, fNoLURL, fNoRULR, fNoBULR, fNoBURL, fNoBLUR, fNoBRUL;
127  Double_t fNoRBULR, fNoRBLUR, fNoRBULB, fNoRBRUL, fNoBRUBL, fNoBURBL, fNoBRULB, fNoBLRUL, fNoBLUBR, fNoBULBR, fNoBURLB, fNoBLURB, fNoBULRB, fNoLBURL, fNoLBLUR;
128 
129  Double_t fNweirdPhotons;
130  Double_t flambdah;
131  Double_t fPixIndex;
132  Double_t ftime;
133  Double_t fPhiRot;
134  TVector3 fPphoInit;
135  TVector3 fStartVertex;
136  TVector3 fPDSec, fEVSec, fEvSec;
137  Double_t fPDPhi, fEVPhi, fPhiRotEV;
138  Double_t Ang_pipe, Rout1, Rin1, Rin2, PlanB[9], PlanU[9], PlanR[6];
139  Double_t determint1, determint2, determint3, determint4;
140  TString ReflectionType, ReflName;
141  TArrayD fmatrixdata;
142  Double_t fZin;
143  Double_t fLowZ;
144 
145  Double_t fkxBar, fkyBar, fkzBar;
146  TVector3 fPphoB; // kBar
147 
148  PndDrcEVPoint *EVpt;
149  PndDrcEVPoint *EVt;
150  PndDrcPDPoint *Ppt;
151  PndDrcPDHit *pdhit;
152  PndMCTrack *tr;
153  TClonesArray *fLut[5];
154 
155  TFile *fFile;
156  TTree *fTree;
157 
158  ClassDef(PndPhoGunShortP, 1)
159 };
160 
161 #endif
virtual void Finish()
virtual InitStatus Init()
Class to access the naming information of the MVD.
void SetOutputFile(TString outName="lutnode.root")
virtual void Exec(Option_t *option)
virtual ~PndPhoGunShortP()