9#ifndef G4ATLASTOOLS_PUNCHTHROUGHPARTICLE_H
10#define G4ATLASTOOLS_PUNCHTHROUGHPARTICLE_H
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);
Creates random numbers with a distribution given as ROOT TF1.
int m_maxNum
the maximum number of particles which will be created
void setPCA4PDF(std::unique_ptr< PunchThroughPDFCreator > pdf)
set the PunchThroughPDFCreator for the momentumDeltaPhi distribution
int m_corrPdg
all following stores the right distributions for all properties of the punch-through particles
int getMinCorrelationEnergy()
the correlated particle id
double * getCorrelationHistDomains()
the correlation histogram (high energies)
double * m_corrHistDomains
correlation histogram domains
PunchThroughPDFCreator * getPCA1PDF()
distribution parameters for the exit energy
double m_minEnergy
some cut-parameters which will be set via python
void setPCA1PDF(std::unique_ptr< PunchThroughPDFCreator > pdf)
set the PunchThroughPDFCreator for the deltaTheta distribution
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
void setNumParticlesPDF(std::unique_ptr< PunchThroughPDFCreator > pdf)
set the PunchThroughPDFCreator for the number of exit particles distribution
~PunchThroughParticle()
destructor
std::unique_ptr< PunchThroughPDFCreator > m_pdfNumParticles
number of punch-through particles
PunchThroughPDFCreator * getNumParticlesPDF()
correlation histogram domains [lowE,midE,upperE]
int getCorrelatedPdg()
the maximum number of particles which will be created
PunchThroughPDFCreator * getPCA0PDF()
distribution parameters for the number of particles
PunchThroughParticle(int pdg, bool doAnti=false)
set this particle's pdg code and if anti-particle should be done or not
PunchThroughPDFCreator * getPCA2PDF()
distribution parameters for the exit delta theta
double getEnergyFactor()
to scale the number of punch-through particles
std::unique_ptr< PunchThroughPDFCreator > m_pdf_pca4
delta phi angle of punch-through particle momentum
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
bool m_doAnti
do also anti-particles?
void setPosAngleFactor(double momAngleFactor)
to scale the position deflection angles
PunchThroughPDFCreator * getPCA3PDF()
distribution parameters for the exit delta phi
double getMomAngleFactor()
to scale the position deviation angles
void setMomAngleFactor(double momAngleFactor)
to scale the momentum deviation of created particles
PunchThroughPDFCreator * getPCA4PDF()
distribution parameters for the momentum delta theta
void setPCA3PDF(std::unique_ptr< PunchThroughPDFCreator > pdf)
set the PunchThroughPDFCreator for the momentumDeltaTheta distribution
double getMinEnergy()
get if anti-particles should be done or not
TH2F * getCorrelationLowEHist()
the full correlation energy
TH2F * m_histCorrLowE
low energy correlation histogram (x:this particle, y:the correlated particle)
int getId()
get-access methods
void setEnergyFactor(double energyFactor)
to scale the energy of created particles
std::unique_ptr< PunchThroughPDFCreator > m_pdf_pca3
delta theta angle of punch-through particle momentum
double getPosAngleFactor()
to scale the energy of created particles
TH2F * getCorrelationHighEHist()
the correlation histogram (low energies)
void setMaxNumParticles(int maxNum)
the maximum number of particles which will be created
int getMaxNumParticles()
to scale the momentum deviation of created particles
void setNumParticlesFactor(double numFactor)
to scale the number of punch-through particles
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)
void setMinEnergy(double minEnergy)
set methods
bool getdoAnti()
get this particle's pdg code
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
double getNumParticlesFactor()
the minimum energy with which these particles should be created
void setPCA2PDF(std::unique_ptr< PunchThroughPDFCreator > pdf)
set the PunchThroughPDFCreator for the deltaPhi distribution
void setPCA0PDF(std::unique_ptr< PunchThroughPDFCreator > pdf)
set the PunchThroughPDFCreator for the energy distribution
int getFullCorrelationEnergy()
minimum energy for correlation
std::unique_ptr< PunchThroughPDFCreator > m_pdf_pca1
theta deviation of punch-through particles