PandaRoot
PndPhoGunShortP.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
13 // -------------------------------------------------------------------------
14 // ----- PndPhoGunShortP header file -----
15 // ----- Created 11/09/13 by Harphool Kumawat -----
16 // ----- -----
17 // ----- -----
18 // -------------------------------------------------------------------------
19 
28 #ifndef PNDPHOGUNSHORTP_H
29 #define PNDPHOGUNSHORTP_H
30 
31 #include "FairTask.h"
32 #include "TClonesArray.h"
33 #include "PndMCTrack.h"
34 #include "PndDrcHit.h"
35 #include "PndDrcPDHit.h"
36 #include "PndStack.h"
37 #include "FairBaseParSet.h"
38 #include "PndGeoDrcPar.h"
39 #include "TString.h"
40 #include <string>
41 
42 #include "PndDrcBarPoint.h"
43 #include "PndDrcPDPoint.h"
44 #include "PndDrcEVPoint.h"
45 #include "PndDrcHit.h"
46 #include "PndDrcPDHit.h"
47 #include "PndDrcDigi.h"
48 #include "PndGeoHandling.h"
49 
50 #include "PndDrcLutNode.h"
51 
52 #ifndef ROOT_TParticlePDG
53 #include "TParticlePDG.h"
54 #endif
55 #ifndef ROOT_TDatabasePDG
56 #include "TDatabasePDG.h"
57 #endif
58 
59 class PndPhoGunShortP : public FairTask {
60 
61  public:
64 
66  PndPhoGunShortP(Int_t verbose);
67 
69  virtual ~PndPhoGunShortP();
70 
71  virtual InitStatus Init();
72 
74  virtual void Exec(Option_t *option);
75 
77  virtual void Finish();
78 
79  void SetOutputFile(TString outName = "lutnode.root") { fOutputName = outName; }
80 
81  private:
82  void ProcessPhotonHit();
83  void InitLut();
84 
85  Int_t fDetectorID;
86 
87  TClonesArray *fBarPointArray; // DRC MC points in the bars
88  TClonesArray *fPDPointArray; // DRC points in the photon detector
89  TClonesArray *fPDHitArray; // DRC Hits in the photon detector
90  TClonesArray *fMCArray; // DRC MCPoints in the photon detector
91  TClonesArray *fEVPointArray; // DRC MCPoints in the photon detector
92  TClonesArray *fDigiArray;
93 
94  // TClonesArray* fChPhoArray; // output array of PndChPho
95 
96  TList *fHistoList;
97  TFile *froot;
98 
99  PndDrcDigi *fDigi;
100  PndGeoDrc *fGeo;
101  PndGeoHandling *fGeoH;
102 
104  void SetDefaultParameters();
105 
106  Double_t InBarCoordSyst(TVector3);
107  Double_t FindReflectionType(Double_t, Double_t, Double_t, TString);
108 
110  Int_t fVerbose;
111 
112  Int_t nevents;
113  Int_t ambiguity;
114 
115  TString fOutputName;
116  TString fTableName;
117  Double_t ftilt;
118  Int_t fBarId;
119 
120  // parameters:
121  Double_t fR;
122  Double_t fRBottom;
123  Double_t fHThick;
124  Double_t fBboxNum;
125  Double_t fPipehAngle;
126  Double_t fBarBoxGap;
127  Double_t fLength;
128  Double_t fDphi;
129  Double_t fEVlen;
130  Double_t fpi;
131  Double_t fEVdrop;
132 
133  Double_t fNoDD, fNoU, fNoB, fNoR, fNoL;
134  Double_t fNoBL, fNoUR, fNoUL, fNoRL, fNoLR, fNoRB, fNoBU, fNoLB, fNoBR, fNoRU, fNoLU;
135  Double_t fNoBLU, fNoBRL, fNoBRU, fNoBLR, fNoBUR, fNoBUL, fNoRBL, fNoRLU, fNoRLB, fNoRUL, fNoRBU, fNoURL, fNoULR, fNoTotal, fNoLRB, fNoLRU, fNoLBR, fNoLBU, fNoLUR, fNoLUB, fNoURB,
136  fNoULB, fNoUBR, fNoUBL;
137  Double_t fNoBLRU, fNoBRLU, fNoBULB, fNoBURB, fNoUBLR, fNoULBR, fNoURBL, fNoULRB, fNoURLB, fNoUBRL, fNoRULB, fNoRBUL, fNoRBLU, fNoLBUR, fNoLBRU, fNoLURB, fNoLUBR, fNoLRUL,
138  fNoLRLU, fNoLURL, fNoRULR, fNoBULR, fNoBURL, fNoBLUR, fNoBRUL;
139  Double_t fNoRBULR, fNoRBLUR, fNoRBULB, fNoRBRUL, fNoBRUBL, fNoBURBL, fNoBRULB, fNoBLRUL, fNoBLUBR, fNoBULBR, fNoBURLB, fNoBLURB, fNoBULRB, fNoLBURL, fNoLBLUR;
140 
141  Double_t fNweirdPhotons;
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  PndDrcEVPoint *EVpt;
161  PndDrcEVPoint *EVt;
162  PndDrcPDPoint *Ppt;
163  PndDrcPDHit *pdhit;
164  PndMCTrack *tr;
165  TClonesArray *fLut[5];
166 
167  TFile *fFile;
168  TTree *fTree;
169 
170  ClassDef(PndPhoGunShortP, 1)
171 };
172 
173 #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()