ATLAS Offline Software
Loading...
Searching...
No Matches
PunchThroughParticle Class Reference

This class holds information for different properties of a punch-through particle (energy, theta, phi) distributions. More...

#include <PunchThroughParticle.h>

Collaboration diagram for PunchThroughParticle:

Public Member Functions

 PunchThroughParticle (int pdg, bool doAnti=false)
 set this particle's pdg code and if anti-particle should be done or not
 ~PunchThroughParticle ()
 destructor
void setMinEnergy (double minEnergy)
 set methods
void setMaxNumParticles (int maxNum)
 the maximum number of particles which will be created
void setNumParticlesFactor (double numFactor)
 to scale the number of punch-through particles
void setEnergyFactor (double energyFactor)
 to scale the energy of created particles
void setPosAngleFactor (double momAngleFactor)
 to scale the position deflection angles
void setMomAngleFactor (double momAngleFactor)
 to scale the momentum deviation of created particles
void setNumParticlesPDF (std::unique_ptr< PunchThroughPDFCreator > pdf)
 set the PunchThroughPDFCreator for the number of exit particles distribution
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
void setPCA0PDF (std::unique_ptr< PunchThroughPDFCreator > pdf)
 set the PunchThroughPDFCreator for the energy distribution
void setPCA1PDF (std::unique_ptr< PunchThroughPDFCreator > pdf)
 set the PunchThroughPDFCreator for the deltaTheta distribution
void setPCA2PDF (std::unique_ptr< PunchThroughPDFCreator > pdf)
 set the PunchThroughPDFCreator for the deltaPhi distribution
void setPCA3PDF (std::unique_ptr< PunchThroughPDFCreator > pdf)
 set the PunchThroughPDFCreator for the momentumDeltaTheta distribution
void setPCA4PDF (std::unique_ptr< PunchThroughPDFCreator > pdf)
 set the PunchThroughPDFCreator for the momentumDeltaPhi distribution
int getId ()
 get-access methods
bool getdoAnti ()
 get this particle's pdg code
double getMinEnergy ()
 get if anti-particles should be done or not
double getNumParticlesFactor ()
 the minimum energy with which these particles should be created
double getEnergyFactor ()
 to scale the number of punch-through particles
double getPosAngleFactor ()
 to scale the energy of created particles
double getMomAngleFactor ()
 to scale the position deviation angles
int getMaxNumParticles ()
 to scale the momentum deviation of created particles
int getCorrelatedPdg ()
 the maximum number of particles which will be created
int getMinCorrelationEnergy ()
 the correlated particle id
int getFullCorrelationEnergy ()
 minimum energy for correlation
TH2F * getCorrelationLowEHist ()
 the full correlation energy
TH2F * getCorrelationHighEHist ()
 the correlation histogram (low energies)
double * getCorrelationHistDomains ()
 the correlation histogram (high energies)
PunchThroughPDFCreatorgetNumParticlesPDF ()
 correlation histogram domains [lowE,midE,upperE]
PunchThroughPDFCreatorgetPCA0PDF ()
 distribution parameters for the number of particles
PunchThroughPDFCreatorgetPCA1PDF ()
 distribution parameters for the exit energy
PunchThroughPDFCreatorgetPCA2PDF ()
 distribution parameters for the exit delta theta
PunchThroughPDFCreatorgetPCA3PDF ()
 distribution parameters for the exit delta phi
PunchThroughPDFCreatorgetPCA4PDF ()
 distribution parameters for the momentum delta theta

Private Attributes

int m_pdgId
 distribution parameters for the momentum delta phi
bool m_doAnti
 do also anti-particles?
double m_minEnergy
 some cut-parameters which will be set via python
int m_maxNum
 the maximum number of particles which will be created
double m_numParticlesFactor
 some tuning-parameters which will be set via python
double m_energyFactor
 scale the energy of this particle type
double m_posAngleFactor
 scale the position deflection angles
double m_momAngleFactor
 scale the momentum deviation
int m_corrPdg
 all following stores the right distributions for all properties of the punch-through particles
double m_corrMinEnergy
 below this energy threshold, no particle correlation is computed
double m_corrFullEnergy
 holds the energy threshold above which a particle correlation is fully developed
TH2F * m_histCorrLowE
 low energy correlation histogram (x:this particle, y:the correlated particle)
TH2F * m_histCorrHighE
 high energy correlation histogram (x:this particle, y:the correlated particle)
double * m_corrHistDomains
 correlation histogram domains
std::unique_ptr< PunchThroughPDFCreatorm_pdfNumParticles
 number of punch-through particles
std::unique_ptr< PunchThroughPDFCreatorm_pdf_pca0
 energy of punch-through particles
std::unique_ptr< PunchThroughPDFCreatorm_pdf_pca1
 theta deviation of punch-through particles
std::unique_ptr< PunchThroughPDFCreatorm_pdf_pca2
 phi deviation of punch-through particles
std::unique_ptr< PunchThroughPDFCreatorm_pdf_pca3
 delta theta angle of punch-through particle momentum
std::unique_ptr< PunchThroughPDFCreatorm_pdf_pca4
 delta phi angle of punch-through particle momentum

Detailed Description

This class holds information for different properties of a punch-through particle (energy, theta, phi) distributions.

Author
Elmar Ritsch Elmar.nosp@m..Rit.nosp@m.sch@c.nosp@m.ern..nosp@m.ch @maintainer/updater Thomas Carter thoma.nosp@m.s.mi.nosp@m.chael.nosp@m..car.nosp@m.ter@c.nosp@m.ern..nosp@m.ch @maintainer/updater Firdaus Soberi firda.nosp@m.us.s.nosp@m.oberi.nosp@m.@cer.nosp@m.n.ch

Definition at line 30 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

Constructor & Destructor Documentation

◆ PunchThroughParticle()

PunchThroughParticle::PunchThroughParticle ( int pdg,
bool doAnti = false )

set this particle's pdg code and if anti-particle should be done or not

Definition at line 15 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.cxx.

15 :
16 m_pdgId(pdg),
17 m_doAnti(doAnti),
18 m_minEnergy(0.),
19 m_maxNum(-1),
24 m_corrPdg(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{ }
int m_maxNum
the maximum number of particles which will be created
int m_corrPdg
all following stores the right distributions for all properties of the punch-through particles
double * m_corrHistDomains
correlation histogram domains
double m_minEnergy
some cut-parameters which will be set via python
double m_corrFullEnergy
holds the energy threshold above which a particle correlation is fully developed
std::unique_ptr< PunchThroughPDFCreator > m_pdf_pca0
energy of punch-through particles
std::unique_ptr< PunchThroughPDFCreator > m_pdfNumParticles
number of punch-through particles
std::unique_ptr< PunchThroughPDFCreator > m_pdf_pca4
delta phi angle of punch-through particle momentum
TH2F * m_histCorrLowE
low energy correlation histogram (x:this particle, y:the correlated particle)
std::unique_ptr< PunchThroughPDFCreator > m_pdf_pca3
delta theta angle of punch-through particle momentum
int m_pdgId
distribution parameters for the momentum delta phi
double m_energyFactor
scale the energy of this particle type
double m_momAngleFactor
scale the momentum deviation
TH2F * m_histCorrHighE
high energy correlation histogram (x:this particle, y:the correlated particle)
double m_numParticlesFactor
some tuning-parameters which will be set via python
double m_posAngleFactor
scale the position deflection angles
double m_corrMinEnergy
below this energy threshold, no particle correlation is computed
std::unique_ptr< PunchThroughPDFCreator > m_pdf_pca2
phi deviation of punch-through particles
std::unique_ptr< PunchThroughPDFCreator > m_pdf_pca1
theta deviation of punch-through particles

◆ ~PunchThroughParticle()

PunchThroughParticle::~PunchThroughParticle ( )

destructor

Definition at line 38 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.cxx.

39{
40 delete[] m_corrHistDomains;
41}

Member Function Documentation

◆ getCorrelatedPdg()

int PunchThroughParticle::getCorrelatedPdg ( )
inline

the maximum number of particles which will be created

Definition at line 66 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

66{ return m_corrPdg; };

◆ getCorrelationHighEHist()

TH2F * PunchThroughParticle::getCorrelationHighEHist ( )
inline

the correlation histogram (low energies)

Definition at line 70 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

70{ return m_histCorrHighE; };

◆ getCorrelationHistDomains()

double * PunchThroughParticle::getCorrelationHistDomains ( )
inline

the correlation histogram (high energies)

Definition at line 71 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

71{ return m_corrHistDomains; };

◆ getCorrelationLowEHist()

TH2F * PunchThroughParticle::getCorrelationLowEHist ( )
inline

the full correlation energy

Definition at line 69 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

69{ return m_histCorrLowE; };

◆ getdoAnti()

bool PunchThroughParticle::getdoAnti ( )
inline

get this particle's pdg code

Definition at line 58 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

58{ return m_doAnti; };

◆ getEnergyFactor()

double PunchThroughParticle::getEnergyFactor ( )
inline

to scale the number of punch-through particles

Definition at line 61 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

61{ return m_energyFactor; };

◆ getFullCorrelationEnergy()

int PunchThroughParticle::getFullCorrelationEnergy ( )
inline

minimum energy for correlation

Definition at line 68 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

68{ return m_corrFullEnergy; };

◆ getId()

int PunchThroughParticle::getId ( )
inline

get-access methods

Definition at line 57 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

57{ return m_pdgId; };

◆ getMaxNumParticles()

int PunchThroughParticle::getMaxNumParticles ( )
inline

to scale the momentum deviation of created particles

Definition at line 65 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

65{ return m_maxNum; };

◆ getMinCorrelationEnergy()

int PunchThroughParticle::getMinCorrelationEnergy ( )
inline

the correlated particle id

Definition at line 67 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

67{ return m_corrMinEnergy; };

◆ getMinEnergy()

double PunchThroughParticle::getMinEnergy ( )
inline

get if anti-particles should be done or not

Definition at line 59 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

59{ return m_minEnergy; };

◆ getMomAngleFactor()

double PunchThroughParticle::getMomAngleFactor ( )
inline

to scale the position deviation angles

Definition at line 63 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

63{ return m_momAngleFactor; };

◆ getNumParticlesFactor()

double PunchThroughParticle::getNumParticlesFactor ( )
inline

the minimum energy with which these particles should be created

Definition at line 60 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

60{ return m_numParticlesFactor; };

◆ getNumParticlesPDF()

PunchThroughPDFCreator * PunchThroughParticle::getNumParticlesPDF ( )
inline

correlation histogram domains [lowE,midE,upperE]

Definition at line 72 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

72{ return m_pdfNumParticles.get(); };

◆ getPCA0PDF()

PunchThroughPDFCreator * PunchThroughParticle::getPCA0PDF ( )
inline

distribution parameters for the number of particles

Definition at line 73 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

73{ return m_pdf_pca0.get(); };

◆ getPCA1PDF()

PunchThroughPDFCreator * PunchThroughParticle::getPCA1PDF ( )
inline

distribution parameters for the exit energy

Definition at line 74 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

74{ return m_pdf_pca1.get(); };

◆ getPCA2PDF()

PunchThroughPDFCreator * PunchThroughParticle::getPCA2PDF ( )
inline

distribution parameters for the exit delta theta

Definition at line 75 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

75{ return m_pdf_pca2.get(); };

◆ getPCA3PDF()

PunchThroughPDFCreator * PunchThroughParticle::getPCA3PDF ( )
inline

distribution parameters for the exit delta phi

Definition at line 76 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

76{ return m_pdf_pca3.get(); };

◆ getPCA4PDF()

PunchThroughPDFCreator * PunchThroughParticle::getPCA4PDF ( )
inline

distribution parameters for the momentum delta theta

Definition at line 77 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

77{ return m_pdf_pca4.get(); };

◆ getPosAngleFactor()

double PunchThroughParticle::getPosAngleFactor ( )
inline

to scale the energy of created particles

Definition at line 62 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

62{ return m_posAngleFactor; };

◆ setCorrelation()

void PunchThroughParticle::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

  • full energy correlation threshold
  • histogram domains histLowE:[lowE,midE] histHighE:[midE,upperE]

Definition at line 78 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.cxx.

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}

◆ setEnergyFactor()

void PunchThroughParticle::setEnergyFactor ( double energyFactor)

to scale the energy of created particles

Definition at line 58 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.cxx.

59{
60 m_energyFactor = energyFactor;
61}

◆ setMaxNumParticles()

void PunchThroughParticle::setMaxNumParticles ( int maxNum)

the maximum number of particles which will be created

Definition at line 48 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.cxx.

49{
50 m_maxNum = maxNum;
51}

◆ setMinEnergy()

void PunchThroughParticle::setMinEnergy ( double minEnergy)

set methods

the minimum energy with which these particles should be created

Definition at line 43 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.cxx.

44{
45 m_minEnergy = minEnergy;
46}

◆ setMomAngleFactor()

void PunchThroughParticle::setMomAngleFactor ( double momAngleFactor)

to scale the momentum deviation of created particles

Definition at line 68 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.cxx.

69{
70 m_momAngleFactor = momAngleFactor;
71}

◆ setNumParticlesFactor()

void PunchThroughParticle::setNumParticlesFactor ( double numFactor)

to scale the number of punch-through particles

Definition at line 53 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.cxx.

54{
55 m_numParticlesFactor = numFactor;
56}

◆ setNumParticlesPDF()

void PunchThroughParticle::setNumParticlesPDF ( std::unique_ptr< PunchThroughPDFCreator > pdf)

set the PunchThroughPDFCreator for the number of exit particles distribution

Definition at line 73 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.cxx.

74{
75 m_pdfNumParticles = std::move(pdf);
76}

◆ setPCA0PDF()

void PunchThroughParticle::setPCA0PDF ( std::unique_ptr< PunchThroughPDFCreator > pdf)

set the PunchThroughPDFCreator for the energy distribution

Definition at line 98 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.cxx.

99{
100 m_pdf_pca0 = std::move(pdf);
101}

◆ setPCA1PDF()

void PunchThroughParticle::setPCA1PDF ( std::unique_ptr< PunchThroughPDFCreator > pdf)

set the PunchThroughPDFCreator for the deltaTheta distribution

Definition at line 103 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.cxx.

104{
105 m_pdf_pca1 = std::move(pdf);
106}

◆ setPCA2PDF()

void PunchThroughParticle::setPCA2PDF ( std::unique_ptr< PunchThroughPDFCreator > pdf)

set the PunchThroughPDFCreator for the deltaPhi distribution

Definition at line 108 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.cxx.

109{
110 m_pdf_pca2 = std::move(pdf);
111}

◆ setPCA3PDF()

void PunchThroughParticle::setPCA3PDF ( std::unique_ptr< PunchThroughPDFCreator > pdf)

set the PunchThroughPDFCreator for the momentumDeltaTheta distribution

Definition at line 113 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.cxx.

114{
115 m_pdf_pca3 = std::move(pdf);
116}

◆ setPCA4PDF()

void PunchThroughParticle::setPCA4PDF ( std::unique_ptr< PunchThroughPDFCreator > pdf)

set the PunchThroughPDFCreator for the momentumDeltaPhi distribution

Definition at line 118 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.cxx.

119{
120 m_pdf_pca4 = std::move(pdf);
121}

◆ setPosAngleFactor()

void PunchThroughParticle::setPosAngleFactor ( double momAngleFactor)

to scale the position deflection angles

Definition at line 63 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.cxx.

64{
65 m_posAngleFactor = posAngleFactor;
66}

Member Data Documentation

◆ m_corrFullEnergy

double PunchThroughParticle::m_corrFullEnergy
private

holds the energy threshold above which a particle correlation is fully developed

Definition at line 96 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

◆ m_corrHistDomains

double* PunchThroughParticle::m_corrHistDomains
private

correlation histogram domains

Definition at line 101 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

◆ m_corrMinEnergy

double PunchThroughParticle::m_corrMinEnergy
private

below this energy threshold, no particle correlation is computed

Definition at line 95 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

◆ m_corrPdg

int PunchThroughParticle::m_corrPdg
private

all following stores the right distributions for all properties of the punch-through particles

correlation to any other punch-through particle type

Definition at line 94 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

◆ m_doAnti

bool PunchThroughParticle::m_doAnti
private

do also anti-particles?

Definition at line 81 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

◆ m_energyFactor

double PunchThroughParticle::m_energyFactor
private

scale the energy of this particle type

Definition at line 89 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

◆ m_histCorrHighE

TH2F* PunchThroughParticle::m_histCorrHighE
private

high energy correlation histogram (x:this particle, y:the correlated particle)

Definition at line 100 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

◆ m_histCorrLowE

TH2F* PunchThroughParticle::m_histCorrLowE
private

low energy correlation histogram (x:this particle, y:the correlated particle)

Definition at line 99 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

◆ m_maxNum

int PunchThroughParticle::m_maxNum
private

the maximum number of particles which will be created

Definition at line 85 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

◆ m_minEnergy

double PunchThroughParticle::m_minEnergy
private

some cut-parameters which will be set via python

the minimum energy with which these particles should be created

Definition at line 84 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

◆ m_momAngleFactor

double PunchThroughParticle::m_momAngleFactor
private

scale the momentum deviation

Definition at line 91 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

◆ m_numParticlesFactor

double PunchThroughParticle::m_numParticlesFactor
private

some tuning-parameters which will be set via python

scale the number of particles created

Definition at line 88 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

◆ m_pdf_pca0

std::unique_ptr<PunchThroughPDFCreator> PunchThroughParticle::m_pdf_pca0
private

energy of punch-through particles

Definition at line 103 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

◆ m_pdf_pca1

std::unique_ptr<PunchThroughPDFCreator> PunchThroughParticle::m_pdf_pca1
private

theta deviation of punch-through particles

Definition at line 104 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

◆ m_pdf_pca2

std::unique_ptr<PunchThroughPDFCreator> PunchThroughParticle::m_pdf_pca2
private

phi deviation of punch-through particles

Definition at line 105 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

◆ m_pdf_pca3

std::unique_ptr<PunchThroughPDFCreator> PunchThroughParticle::m_pdf_pca3
private

delta theta angle of punch-through particle momentum

Definition at line 106 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

◆ m_pdf_pca4

std::unique_ptr<PunchThroughPDFCreator> PunchThroughParticle::m_pdf_pca4
private

delta phi angle of punch-through particle momentum

Definition at line 107 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

◆ m_pdfNumParticles

std::unique_ptr<PunchThroughPDFCreator> PunchThroughParticle::m_pdfNumParticles
private

number of punch-through particles

Definition at line 102 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

◆ m_pdgId

int PunchThroughParticle::m_pdgId
private

distribution parameters for the momentum delta phi

the pdg-id of this particle

Definition at line 80 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.

◆ m_posAngleFactor

double PunchThroughParticle::m_posAngleFactor
private

scale the position deflection angles

Definition at line 90 of file G4Atlas/G4AtlasTools/src/PunchThroughParticle.h.


The documentation for this class was generated from the following files: