Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
G4Atlas/G4AtlasTools/src/PunchThroughParticle.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // PunchThroughParticle.h, (c) ATLAS Detector software
8 
9 #ifndef G4ATLASTOOLS_PUNCHTHROUGHPARTICLE_H
10 #define G4ATLASTOOLS_PUNCHTHROUGHPARTICLE_H
11 
12 //
13 #include "PunchThroughPDFCreator.h"
14 
15 // C++
16 #include <memory>
17 
18 // forward declarations
19 class TH2F;
20 
29 
31 {
32 public:
33  PunchThroughParticle(int pdg, bool doAnti = false);
35 
37  void setMinEnergy(double minEnergy);
38  void setMaxNumParticles(int maxNum);
39  void setNumParticlesFactor(double numFactor);
40  void setEnergyFactor(double energyFactor);
41  void setPosAngleFactor(double momAngleFactor);
42  void setMomAngleFactor(double momAngleFactor);
43  void setNumParticlesPDF(std::unique_ptr<PunchThroughPDFCreator> pdf);
44  void setCorrelation(int corrPdg, TH2F *histLowE, TH2F *histHighE,
45  double minCorrE = 0., double fullCorrE = 0., double lowE = 0.,
46  double midE = 0., double upperE = 0.);
49  void setPCA0PDF(std::unique_ptr<PunchThroughPDFCreator> pdf);
50  void setPCA1PDF(std::unique_ptr<PunchThroughPDFCreator> pdf);
51  void setPCA2PDF(std::unique_ptr<PunchThroughPDFCreator> pdf);
52  void setPCA3PDF(std::unique_ptr<PunchThroughPDFCreator> pdf);
53  void setPCA4PDF(std::unique_ptr<PunchThroughPDFCreator> pdf);
54 
55 
57  inline int getId() { return m_pdgId; };
58  inline bool getdoAnti() { return m_doAnti; };
59  inline double getMinEnergy() { return m_minEnergy; };
60  inline double getNumParticlesFactor() { return m_numParticlesFactor; };
61  inline double getEnergyFactor() { return m_energyFactor; };
62  inline double getPosAngleFactor() { return m_posAngleFactor; };
63  inline double getMomAngleFactor() { return m_momAngleFactor; };
64 
65  inline int getMaxNumParticles() { return m_maxNum; };
66  inline int getCorrelatedPdg() { return m_corrPdg; };
67  inline int getMinCorrelationEnergy() { return m_corrMinEnergy; };
68  inline int getFullCorrelationEnergy() { return m_corrFullEnergy; };
69  inline TH2F *getCorrelationLowEHist() { return m_histCorrLowE; };
71  inline double *getCorrelationHistDomains(){ return m_corrHistDomains; };
73  inline PunchThroughPDFCreator * getPCA0PDF() { return m_pdf_pca0.get(); };
74  inline PunchThroughPDFCreator * getPCA1PDF() { return m_pdf_pca1.get(); };
75  inline PunchThroughPDFCreator * getPCA2PDF() { return m_pdf_pca2.get(); };
76  inline PunchThroughPDFCreator * getPCA3PDF() { return m_pdf_pca3.get(); };
77  inline PunchThroughPDFCreator * getPCA4PDF() { return m_pdf_pca4.get(); };
78 
79 private:
80  int m_pdgId;
81  bool m_doAnti;
82 
84  double m_minEnergy;
85  int m_maxNum;
86 
89  double m_energyFactor;
92 
94  int m_corrPdg;
95  double m_corrMinEnergy;
102  std::unique_ptr<PunchThroughPDFCreator> m_pdfNumParticles;
103  std::unique_ptr<PunchThroughPDFCreator> m_pdf_pca0;
104  std::unique_ptr<PunchThroughPDFCreator> m_pdf_pca1;
105  std::unique_ptr<PunchThroughPDFCreator> m_pdf_pca2;
106  std::unique_ptr<PunchThroughPDFCreator> m_pdf_pca3;
107  std::unique_ptr<PunchThroughPDFCreator> m_pdf_pca4;
108 
109 }; // class PunchThroughParticle
110 
111 #endif
PunchThroughParticle::setPCA4PDF
void setPCA4PDF(std::unique_ptr< PunchThroughPDFCreator > pdf)
set the PunchThroughPDFCreator for the momentumDeltaPhi distribution
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.cxx:118
PunchThroughParticle
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:31
PunchThroughParticle::getId
int getId()
get-access methods
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:57
PunchThroughParticle::getNumParticlesPDF
PunchThroughPDFCreator * getNumParticlesPDF()
correlation histogram domains [lowE,midE,upperE]
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:72
PunchThroughParticle::PunchThroughParticle
PunchThroughParticle(int pdg, bool doAnti=false)
set this particle's pdg code and if anti-particle should be done or not
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.cxx:15
PunchThroughParticle::m_histCorrLowE
TH2F * m_histCorrLowE
low energy correlation histogram (x:this particle, y:the correlated particle)
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:99
PunchThroughParticle::m_histCorrHighE
TH2F * m_histCorrHighE
high energy correlation histogram (x:this particle, y:the correlated particle)
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:100
PunchThroughParticle::getPCA4PDF
PunchThroughPDFCreator * getPCA4PDF()
distribution parameters for the momentum delta theta
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:77
PunchThroughParticle::setEnergyFactor
void setEnergyFactor(double energyFactor)
to scale the energy of created particles
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.cxx:58
PunchThroughParticle::m_pdf_pca1
std::unique_ptr< PunchThroughPDFCreator > m_pdf_pca1
theta deviation of punch-through particles
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:104
PunchThroughParticle::setPosAngleFactor
void setPosAngleFactor(double momAngleFactor)
to scale the position deflection angles
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.cxx:63
PunchThroughParticle::getMaxNumParticles
int getMaxNumParticles()
to scale the momentum deviation of created particles
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:65
PunchThroughParticle::setPCA0PDF
void setPCA0PDF(std::unique_ptr< PunchThroughPDFCreator > pdf)
set the PunchThroughPDFCreator for the energy distribution
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.cxx:98
PunchThroughParticle::setPCA3PDF
void setPCA3PDF(std::unique_ptr< PunchThroughPDFCreator > pdf)
set the PunchThroughPDFCreator for the momentumDeltaTheta distribution
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.cxx:113
PunchThroughPDFCreator
Definition: PunchThroughPDFCreator.h:35
python.TrigEgammaMonitorHelper.TH2F
def TH2F(name, title, nxbins, bins_par2, bins_par3, bins_par4, bins_par5=None, bins_par6=None, path='', **kwargs)
Definition: TrigEgammaMonitorHelper.py:45
PunchThroughParticle::m_corrMinEnergy
double m_corrMinEnergy
below this energy threshold, no particle correlation is computed
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:95
PunchThroughParticle::m_pdf_pca3
std::unique_ptr< PunchThroughPDFCreator > m_pdf_pca3
delta theta angle of punch-through particle momentum
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:106
PunchThroughParticle::setPCA1PDF
void setPCA1PDF(std::unique_ptr< PunchThroughPDFCreator > pdf)
set the PunchThroughPDFCreator for the deltaTheta distribution
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.cxx:103
PunchThroughParticle::setMomAngleFactor
void setMomAngleFactor(double momAngleFactor)
to scale the momentum deviation of created particles
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.cxx:68
PunchThroughParticle::setPCA2PDF
void setPCA2PDF(std::unique_ptr< PunchThroughPDFCreator > pdf)
set the PunchThroughPDFCreator for the deltaPhi distribution
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.cxx:108
PunchThroughParticle::getMinEnergy
double getMinEnergy()
get if anti-particles should be done or not
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:59
PunchThroughParticle::m_posAngleFactor
double m_posAngleFactor
scale the position deflection angles
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:90
PunchThroughParticle::getPCA2PDF
PunchThroughPDFCreator * getPCA2PDF()
distribution parameters for the exit delta theta
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:75
PunchThroughParticle::m_minEnergy
double m_minEnergy
some cut-parameters which will be set via python
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:84
PunchThroughPDFCreator.h
PunchThroughParticle::~PunchThroughParticle
~PunchThroughParticle()
destructor
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.cxx:38
PunchThroughParticle::getFullCorrelationEnergy
int getFullCorrelationEnergy()
minimum energy for correlation
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:68
PunchThroughParticle::m_corrFullEnergy
double m_corrFullEnergy
holds the energy threshold above which a particle correlation is fully developed
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:96
PunchThroughParticle::getPosAngleFactor
double getPosAngleFactor()
to scale the energy of created particles
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:62
PunchThroughParticle::m_momAngleFactor
double m_momAngleFactor
scale the momentum deviation
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:91
PunchThroughParticle::m_pdf_pca0
std::unique_ptr< PunchThroughPDFCreator > m_pdf_pca0
energy of punch-through particles
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:103
PunchThroughParticle::m_numParticlesFactor
double m_numParticlesFactor
some tuning-parameters which will be set via python
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:88
PunchThroughParticle::getEnergyFactor
double getEnergyFactor()
to scale the number of punch-through particles
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:61
PunchThroughParticle::getPCA1PDF
PunchThroughPDFCreator * getPCA1PDF()
distribution parameters for the exit energy
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:74
PunchThroughParticle::setNumParticlesPDF
void setNumParticlesPDF(std::unique_ptr< PunchThroughPDFCreator > pdf)
set the PunchThroughPDFCreator for the number of exit particles distribution
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.cxx:73
PunchThroughParticle::m_corrPdg
int m_corrPdg
all following stores the right distributions for all properties of the punch-through particles
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:94
PunchThroughParticle::m_pdgId
int m_pdgId
distribution parameters for the momentum delta phi
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:77
PunchThroughParticle::setMaxNumParticles
void setMaxNumParticles(int maxNum)
the maximum number of particles which will be created
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.cxx:48
PunchThroughParticle::getCorrelationHistDomains
double * getCorrelationHistDomains()
the correlation histogram (high energies)
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:71
PunchThroughParticle::m_pdf_pca4
std::unique_ptr< PunchThroughPDFCreator > m_pdf_pca4
delta phi angle of punch-through particle momentum
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:107
PunchThroughParticle::m_pdf_pca2
std::unique_ptr< PunchThroughPDFCreator > m_pdf_pca2
phi deviation of punch-through particles
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:105
PunchThroughParticle::getMinCorrelationEnergy
int getMinCorrelationEnergy()
the correlated particle id
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:67
PunchThroughParticle::setCorrelation
void setCorrelation(int corrPdg, TH2F *histLowE, TH2F *histHighE, double minCorrE=0., double fullCorrE=0., double lowE=0., double midE=0., double upperE=0.)
set the correlated particle type + correlation histograms
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.cxx:78
PunchThroughParticle::m_corrHistDomains
double * m_corrHistDomains
correlation histogram domains
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:101
PunchThroughParticle::getMomAngleFactor
double getMomAngleFactor()
to scale the position deviation angles
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:63
PunchThroughParticle::m_doAnti
bool m_doAnti
do also anti-particles?
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:81
PunchThroughParticle::getNumParticlesFactor
double getNumParticlesFactor()
the minimum energy with which these particles should be created
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:60
PowhegPythia8EvtGen_jetjet.pdf
pdf
Definition: PowhegPythia8EvtGen_jetjet.py:4
PunchThroughParticle::getCorrelationLowEHist
TH2F * getCorrelationLowEHist()
the full correlation energy
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:69
PunchThroughParticle::getCorrelationHighEHist
TH2F * getCorrelationHighEHist()
the correlation histogram (low energies)
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:70
PunchThroughParticle::getPCA0PDF
PunchThroughPDFCreator * getPCA0PDF()
distribution parameters for the number of particles
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:73
PunchThroughParticle::setNumParticlesFactor
void setNumParticlesFactor(double numFactor)
to scale the number of punch-through particles
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.cxx:53
PunchThroughParticle::setMinEnergy
void setMinEnergy(double minEnergy)
set methods
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.cxx:43
PunchThroughParticle::m_energyFactor
double m_energyFactor
scale the energy of this particle type
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:89
PunchThroughParticle::getCorrelatedPdg
int getCorrelatedPdg()
the maximum number of particles which will be created
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:66
PunchThroughParticle::getPCA3PDF
PunchThroughPDFCreator * getPCA3PDF()
distribution parameters for the exit delta phi
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:76
PunchThroughParticle::m_maxNum
int m_maxNum
the maximum number of particles which will be created
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:85
PunchThroughParticle::getdoAnti
bool getdoAnti()
get this particle's pdg code
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:58
PunchThroughParticle::m_pdfNumParticles
std::unique_ptr< PunchThroughPDFCreator > m_pdfNumParticles
number of punch-through particles
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:102