PandaRoot
PndHypGeGammaAna.h
Go to the documentation of this file.
1 /******************************************************
2 
3 Analysis Task created by M.Steinen steinen@kph.uni-mainz.de
4 Analysis of Gamma Simulation with hypGe detectors
5 *******************************************************/
6 
7 #ifndef PNDHYPGEGAMMAANA_H
8 #define PNDHYPGEGAMMAANA_H 1
9 
10 #include <FairTask.h>
11 #include <TH1D.h>
12 #include <TH2D.h>
13 #include <TClonesArray.h>
14 #include <TRandom.h>
15 #include <fstream>
16 #include <set>
17 //#include "PndHypGeGammaAnaStorage.h"
18 #include "PndHypGePoint.h"
19 #include "PndHypPoint.h"
20 #include "PndMCTrack.h"
21 #include <TSpectrum.h>
22 #include <TF1.h>
23 #include "TGeoManager.h"
24 
25 class PndHypGeGammaAna : public FairTask {
26  public:
28  PndHypGeGammaAna(TString TxtFileName_Ext, Double_t GammaEnergy_Ext, Int_t nEvents = 0, Int_t nPeaks_Ext = 1, Int_t PeakToLook_Ext = 1);
30 
31  virtual InitStatus Init();
32  virtual void Exec(Option_t *opt);
33  void Finish();
34  void SetParContainers();
35  void SetTarget(Bool_t TargetAvailable = 1);
36  void SetOmegaQuadrupolMode(Bool_t useOmegaQuadrupolMode_ext = 1);
37  void SetPeakWidtchStrechFactor(Double_t PeakWidtchStrechFactor_ext = 1);
38 
39  protected:
40  Double_t Compton(Double_t E, Double_t Th);
41  Double_t invCompton(Double_t E, Double_t Eprime);
42  Double_t SmearHit(Double_t Energy);
43  Double_t CalculatePeakWidth(Double_t Energy);
44  void FitSpectrum();
45  void FittingOutput();
46  void FindPeaks();
47  void GetPeakContent();
48  void ActivateComptonCalculations(Bool_t isActivated = 1);
49  void CalculateCompton();
50  void WriteHistogramsToFile();
51  void HistogramCosmetics(TH1D *histo, TString XTitle, Double_t XTitleSize, Double_t XTitleOffset, Double_t XLabelSize, TString YTitle, Double_t YTitleSize, Double_t YTitleOffset,
52  Double_t YLabelSize);
53  void HistogramCosmetics2D(TH2D *histo, TString XTitle, Double_t XTitleSize, Double_t XTitleOffset, Double_t XLabelSize, TString YTitle, Double_t YTitleSize,
54  Double_t YTitleOffset, Double_t YLabelSize);
55 
57  TString TxtFileName;
58  ofstream TxtFile;
59 
61 
62  Double_t ResConstPar;
63  Double_t ResGradientPar;
65  Double_t PeakWidth;
66 
67  Double_t bufferEnergy;
68 
69  TH1D *hGamEnergy;
72  TH1D *hThetaCheck;
74  TH1D *hAbsorption;
76 
77  TClonesArray *fMcTr;
78  TClonesArray *fMc;
79  TClonesArray *fGe;
80  TClonesArray *fGeAl;
81  TClonesArray *fSilicon;
82  TClonesArray *fTargetOther;
83 
85  ;
90 
91  Long_t EvtCount;
93  Double_t GammaEnergy;
94  Double_t iHistoUpperLimit;
95  TString fName;
96 
97  // PndHypGeGammaAnaStorage* fStorage;
98 
99  FairRootManager *ioman;
100  // Exec
101  std::set<int> SetOfCrystalHit;
102  TVector3 fStartVertex;
104 
105  // Analysis
106  Int_t nPeaks;
107  Int_t PeakToLook;
108  Double_t PeakX;
109  Double_t PeakY;
110  Double_t DPeakY;
111  Double_t SumPeak;
112  Double_t DSumPeak;
114  Double_t lowComptonAngle;
116  Double_t SumCompton;
117  Double_t DSumCompton;
118  Double_t PeakToCompton;
119  Double_t DPeakToCompton;
120 
121  TF1 *GausBG;
122 
123  Float_t *xpeaks;
124  Float_t *ypeaks;
125 
127 
129 };
130 
131 #endif /* PNDHYPGEGAMMAANA_H */
PndMCTrack * fMCGam
TClonesArray * fMc
void ActivateComptonCalculations(Bool_t isActivated=1)
void HistogramCosmetics(TH1D *histo, TString XTitle, Double_t XTitleSize, Double_t XTitleOffset, Double_t XLabelSize, TString YTitle, Double_t YTitleSize, Double_t YTitleOffset, Double_t YLabelSize)
PndHypGePoint * fHitGe
Double_t CalculatePeakWidth(Double_t Energy)
bool InTargetAbsorbedGammaWouldHitGermanium()
void WriteHistogramsToFile()
void SetParContainers()
void SetTarget(Bool_t TargetAvailable=1)
TClonesArray * fMcTr
Double_t PeakWidtchStrechFactor
Double_t invCompton(Double_t E, Double_t Eprime)
TClonesArray * fSilicon
void HistogramCosmetics2D(TH2D *histo, TString XTitle, Double_t XTitleSize, Double_t XTitleOffset, Double_t XLabelSize, TString YTitle, Double_t YTitleSize, Double_t YTitleOffset, Double_t YLabelSize)
PndMCTrack * fMCGamPrimary
Bool_t useOmegaQuadrupolMode
Double_t Compton(Double_t E, Double_t Th)
Double_t iHistoUpperLimit
void SetPeakWidtchStrechFactor(Double_t PeakWidtchStrechFactor_ext=1)
void SetOmegaQuadrupolMode(Bool_t useOmegaQuadrupolMode_ext=1)
virtual InitStatus Init()
TClonesArray * fGeAl
std::set< int > SetOfCrystalHit
TClonesArray * fTargetOther
PndHypPoint * fHitSi
PndHypPoint * fHitTargetOther
TH1D * hGamEnergyTargetBackground
Double_t SmearHit(Double_t Energy)
TH2D * h2AbsorptionDistanceAngle
virtual void Exec(Option_t *opt)
ClassDef(PndHypGeGammaAna, 1)
TClonesArray * fGe
void CalculateCompton()
FairRootManager * ioman