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.cxx
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.cxx, (c) ATLAS Detector software
8 
9 // class header
10 #include "PunchThroughParticle.h"
11 
12 // ROOT
13 #include "TH2F.h"
14 
16  m_pdgId(pdg),
17  m_doAnti(doAnti),
18  m_minEnergy(0.),
19  m_maxNum(-1),
20  m_numParticlesFactor(1.),
21  m_energyFactor(1.),
22  m_posAngleFactor(1.),
23  m_momAngleFactor(1.),
24  m_corrPdg(0),
25  m_corrMinEnergy(0),
26  m_corrFullEnergy(0),
27  m_histCorrLowE(nullptr),
28  m_histCorrHighE(nullptr),
29  m_corrHistDomains(nullptr),
30  m_pdfNumParticles(nullptr), //does this number ever change?
31  m_pdf_pca0(nullptr),
32  m_pdf_pca1(nullptr),
33  m_pdf_pca2(nullptr),
34  m_pdf_pca3(nullptr),
35  m_pdf_pca4(nullptr)
36 { }
37 
39 {
40  delete[] m_corrHistDomains;
41 }
42 
43 void PunchThroughParticle::setMinEnergy(double minEnergy)
44 {
45  m_minEnergy = minEnergy;
46 }
47 
49 {
50  m_maxNum = maxNum;
51 }
52 
54 {
55  m_numParticlesFactor = numFactor;
56 }
57 
58 void PunchThroughParticle::setEnergyFactor(double energyFactor)
59 {
60  m_energyFactor = energyFactor;
61 }
62 
63 void PunchThroughParticle::setPosAngleFactor(double posAngleFactor)
64 {
65  m_posAngleFactor = posAngleFactor;
66 }
67 
68 void PunchThroughParticle::setMomAngleFactor(double momAngleFactor)
69 {
70  m_momAngleFactor = momAngleFactor;
71 }
72 
73 void PunchThroughParticle::setNumParticlesPDF(std::unique_ptr<PunchThroughPDFCreator> pdf)
74 {
75  m_pdfNumParticles = std::move(pdf);
76 }
77 
79  TH2F *histLowE, TH2F *histHighE,
80  double minCorrelationEnergy,
81  double fullCorrelationEnergy,
82  double lowE,
83  double midE,
84  double upperE)
85 {
86  m_corrPdg = corrPdg;
87  m_histCorrLowE = histLowE;
88  m_histCorrHighE = histHighE;
89  m_corrMinEnergy = minCorrelationEnergy;
90  m_corrFullEnergy = fullCorrelationEnergy;
91 
92  m_corrHistDomains = new double [3];
93  m_corrHistDomains[0] = lowE;
94  m_corrHistDomains[1] = midE;
95  m_corrHistDomains[2] = upperE;
96 }
97 
98 void PunchThroughParticle::setPCA0PDF(std::unique_ptr<PunchThroughPDFCreator> pdf)
99 {
100  m_pdf_pca0 = std::move(pdf);
101 }
102 
103 void PunchThroughParticle::setPCA1PDF(std::unique_ptr<PunchThroughPDFCreator> pdf)
104 {
105  m_pdf_pca1 = std::move(pdf);
106 }
107 
108 void PunchThroughParticle::setPCA2PDF(std::unique_ptr<PunchThroughPDFCreator> pdf)
109 {
110  m_pdf_pca2 = std::move(pdf);
111 }
112 
113 void PunchThroughParticle::setPCA3PDF(std::unique_ptr<PunchThroughPDFCreator> pdf)
114 {
115  m_pdf_pca3 = std::move(pdf);
116 }
117 
118 void PunchThroughParticle::setPCA4PDF(std::unique_ptr<PunchThroughPDFCreator> pdf)
119 {
120  m_pdf_pca4 = std::move(pdf);
121 }
PunchThroughParticle::setPCA4PDF
void setPCA4PDF(std::unique_ptr< PunchThroughPDFCreator > pdf)
set the PunchThroughPDFCreator for the momentumDeltaPhi distribution
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.cxx:118
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::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::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
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.h
PunchThroughParticle::setPCA2PDF
void setPCA2PDF(std::unique_ptr< PunchThroughPDFCreator > pdf)
set the PunchThroughPDFCreator for the deltaPhi distribution
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.cxx:108
PunchThroughParticle::m_posAngleFactor
double m_posAngleFactor
scale the position deflection angles
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:90
PunchThroughParticle::m_minEnergy
double m_minEnergy
some cut-parameters which will be set via python
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:84
PunchThroughParticle::~PunchThroughParticle
~PunchThroughParticle()
destructor
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.cxx:38
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::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::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::setMaxNumParticles
void setMaxNumParticles(int maxNum)
the maximum number of particles which will be created
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.cxx:48
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::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
PowhegPythia8EvtGen_jetjet.pdf
pdf
Definition: PowhegPythia8EvtGen_jetjet.py:4
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::m_maxNum
int m_maxNum
the maximum number of particles which will be created
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:85
PunchThroughParticle::m_pdfNumParticles
std::unique_ptr< PunchThroughPDFCreator > m_pdfNumParticles
number of punch-through particles
Definition: G4Atlas/G4AtlasTools/src/PunchThroughParticle.h:102