ATLAS Offline Software
PunchThroughParticle.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // PunchThroughParticle.h, (c) ATLAS Detector software
8 
9 #ifndef ISF_PUNCHTHROUGHTOOLS_PUNCHTHROUGHPARTICLE_H
10 #define ISF_PUNCHTHROUGHTOOLS_PUNCHTHROUGHPARTICLE_H
11 
12 // ISF
13 #include "PDFcreator.h"
14 
15 // forward declarations
16 class TH2F;
17 
18 /*-------------------------------------------------------------------------
19  * class PunchThroughParticle
20  *-------------------------------------------------------------------------*/
21 namespace ISF
22 {
33  {
34  public:
35  PunchThroughParticle(int pdg, bool doAnti = false);
37 
39  void setMinEnergy(double minEnergy);
40  void setMaxNumParticles(int maxNum);
41  void setNumParticlesFactor(double numFactor);
42  void setEnergyFactor(double energyFactor);
43  void setPosAngleFactor(double momAngleFactor);
44  void setMomAngleFactor(double momAngleFactor);
45  void setNumParticlesPDF(std::unique_ptr<PDFcreator> pdf);
46  void setCorrelation(int corrPdg, TH2F *histLowE, TH2F *histHighE,
47  double minCorrE = 0., double fullCorrE = 0., double lowE = 0.,
48  double midE = 0., double upperE = 0.);
51  void setPCA0PDF(std::unique_ptr<PDFcreator> pdf);
52  void setPCA1PDF(std::unique_ptr<PDFcreator> pdf);
53  void setPCA2PDF(std::unique_ptr<PDFcreator> pdf);
54  void setPCA3PDF(std::unique_ptr<PDFcreator> pdf);
55  void setPCA4PDF(std::unique_ptr<PDFcreator> pdf);
56 
57 
59  inline int getId() { return m_pdgId; };
60  inline bool getdoAnti() { return m_doAnti; };
61  inline double getMinEnergy() { return m_minEnergy; };
62  inline double getNumParticlesFactor() { return m_numParticlesFactor; };
63  inline double getEnergyFactor() { return m_energyFactor; };
64  inline double getPosAngleFactor() { return m_posAngleFactor; };
65  inline double getMomAngleFactor() { return m_momAngleFactor; };
66 
67  inline int getMaxNumParticles() { return m_maxNum; };
68  inline int getCorrelatedPdg() { return m_corrPdg; };
69  inline int getMinCorrelationEnergy() { return m_corrMinEnergy; };
70  inline int getFullCorrelationEnergy() { return m_corrFullEnergy; };
71  inline TH2F *getCorrelationLowEHist() { return m_histCorrLowE; };
73  inline double *getCorrelationHistDomains(){ return m_corrHistDomains; };
74  inline PDFcreator * getNumParticlesPDF() { return m_pdfNumParticles.get(); };
75  inline PDFcreator * getPCA0PDF() { return m_pdf_pca0.get(); };
76  inline PDFcreator * getPCA1PDF() { return m_pdf_pca1.get(); };
77  inline PDFcreator * getPCA2PDF() { return m_pdf_pca2.get(); };
78  inline PDFcreator * getPCA3PDF() { return m_pdf_pca3.get(); };
79  inline PDFcreator * getPCA4PDF() { return m_pdf_pca4.get(); };
80 
81  private:
82  int m_pdgId;
83  bool m_doAnti;
84 
86  double m_minEnergy;
87  int m_maxNum;
88 
91  double m_energyFactor;
94 
96  int m_corrPdg;
97  double m_corrMinEnergy;
104  std::unique_ptr<PDFcreator> m_pdfNumParticles;
105  std::unique_ptr<PDFcreator> m_pdf_pca0;
106  std::unique_ptr<PDFcreator> m_pdf_pca1;
107  std::unique_ptr<PDFcreator> m_pdf_pca2;
108  std::unique_ptr<PDFcreator> m_pdf_pca3;
109  std::unique_ptr<PDFcreator> m_pdf_pca4;
110 
111  };
112 }
113 
114 #endif
ISF::PunchThroughParticle::getFullCorrelationEnergy
int getFullCorrelationEnergy()
minimum energy for correlation
Definition: PunchThroughParticle.h:70
ISF::PunchThroughParticle::getEnergyFactor
double getEnergyFactor()
to scale the number of punch-through particles
Definition: PunchThroughParticle.h:63
ISF::PunchThroughParticle::m_pdf_pca4
std::unique_ptr< PDFcreator > m_pdf_pca4
delta phi angle of punch-through particle momentum
Definition: PunchThroughParticle.h:109
ISF::PunchThroughParticle::getId
int getId()
get-access methods
Definition: PunchThroughParticle.h:59
ISF::PunchThroughParticle::m_pdgId
int m_pdgId
distribution parameters for the momentum delta phi
Definition: PunchThroughParticle.h:79
TH2F
Definition: rootspy.cxx:420
ISF::PunchThroughParticle::getNumParticlesPDF
PDFcreator * getNumParticlesPDF()
correlation histogram domains [lowE,midE,upperE]
Definition: PunchThroughParticle.h:74
ISF::PunchThroughParticle::getCorrelationLowEHist
TH2F * getCorrelationLowEHist()
the full correlation energy
Definition: PunchThroughParticle.h:71
ISF::PunchThroughParticle::getMomAngleFactor
double getMomAngleFactor()
to scale the position deviation angles
Definition: PunchThroughParticle.h:65
ISF::PunchThroughParticle::m_pdfNumParticles
std::unique_ptr< PDFcreator > m_pdfNumParticles
number of punch-through particles
Definition: PunchThroughParticle.h:104
ISF::PunchThroughParticle::setPCA2PDF
void setPCA2PDF(std::unique_ptr< PDFcreator > pdf)
set the PDFcreator for the deltaPhi distribution
Definition: PunchThroughParticle.cxx:171
ISF::PunchThroughParticle::getdoAnti
bool getdoAnti()
get this particle's pdg code
Definition: PunchThroughParticle.h:60
ISF::PunchThroughParticle::~PunchThroughParticle
~PunchThroughParticle()
destructor
Definition: PunchThroughParticle.cxx:46
ISF::PunchThroughParticle::getMinEnergy
double getMinEnergy()
get if anti-particles should be done or not
Definition: PunchThroughParticle.h:61
ISF::PunchThroughParticle::setPCA4PDF
void setPCA4PDF(std::unique_ptr< PDFcreator > pdf)
set the PDFcreator for the momentumDeltaPhi distribution
Definition: PunchThroughParticle.cxx:189
ISF::PunchThroughParticle::setNumParticlesPDF
void setNumParticlesPDF(std::unique_ptr< PDFcreator > pdf)
set the PDFcreator for the number of exit particles distribution
Definition: PunchThroughParticle.cxx:115
ISF::PunchThroughParticle::m_doAnti
bool m_doAnti
do also anti-particles?
Definition: PunchThroughParticle.h:83
ISF::PunchThroughParticle::getPCA1PDF
PDFcreator * getPCA1PDF()
distribution parameters for the exit energy
Definition: PunchThroughParticle.h:76
ISF::PDFcreator
Definition: PDFcreator.h:37
ISF::PunchThroughParticle::m_corrMinEnergy
double m_corrMinEnergy
below this energy threshold, no particle correlation is computed
Definition: PunchThroughParticle.h:97
ISF::PunchThroughParticle::m_maxNum
int m_maxNum
the maximum number of particles which will be created
Definition: PunchThroughParticle.h:87
ISF::PunchThroughParticle::PunchThroughParticle
PunchThroughParticle(int pdg, bool doAnti=false)
set this particle's pdg code and if anti-particle should be done or not
Definition: PunchThroughParticle.cxx:19
ISF::PunchThroughParticle::m_pdf_pca0
std::unique_ptr< PDFcreator > m_pdf_pca0
energy of punch-through particles
Definition: PunchThroughParticle.h:105
ISF::PunchThroughParticle::m_pdf_pca3
std::unique_ptr< PDFcreator > m_pdf_pca3
delta theta angle of punch-through particle momentum
Definition: PunchThroughParticle.h:108
ISF::PunchThroughParticle::getPCA4PDF
PDFcreator * getPCA4PDF()
distribution parameters for the momentum delta theta
Definition: PunchThroughParticle.h:79
ISF::PunchThroughParticle::getCorrelationHistDomains
double * getCorrelationHistDomains()
the correlation histogram (high energies)
Definition: PunchThroughParticle.h:73
ISF::PunchThroughParticle::m_corrPdg
int m_corrPdg
all following stores the right distributions for all properties of the punch-through particles
Definition: PunchThroughParticle.h:96
ISF::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: PunchThroughParticle.cxx:125
ISF::PunchThroughParticle::getNumParticlesFactor
double getNumParticlesFactor()
the minimum energy with which these particles should be created
Definition: PunchThroughParticle.h:62
ISF::PunchThroughParticle::setPCA3PDF
void setPCA3PDF(std::unique_ptr< PDFcreator > pdf)
set the PDFcreator for the momentumDeltaTheta distribution
Definition: PunchThroughParticle.cxx:180
ISF::PunchThroughParticle::getPCA0PDF
PDFcreator * getPCA0PDF()
distribution parameters for the number of particles
Definition: PunchThroughParticle.h:75
ISF::PunchThroughParticle::getMaxNumParticles
int getMaxNumParticles()
to scale the momentum deviation of created particles
Definition: PunchThroughParticle.h:67
ISF::PunchThroughParticle::setPCA0PDF
void setPCA0PDF(std::unique_ptr< PDFcreator > pdf)
set the PDFcreator for the energy distribution
Definition: PunchThroughParticle.cxx:151
ISF::PunchThroughParticle::m_pdf_pca1
std::unique_ptr< PDFcreator > m_pdf_pca1
theta deviation of punch-through particles
Definition: PunchThroughParticle.h:106
ISF::PunchThroughParticle::getCorrelationHighEHist
TH2F * getCorrelationHighEHist()
the correlation histogram (low energies)
Definition: PunchThroughParticle.h:72
ISF::PunchThroughParticle::m_corrHistDomains
double * m_corrHistDomains
correlation histogram domains
Definition: PunchThroughParticle.h:103
ISF::PunchThroughParticle::m_momAngleFactor
double m_momAngleFactor
scale the momentum deviation
Definition: PunchThroughParticle.h:93
ISF::PunchThroughParticle::setMomAngleFactor
void setMomAngleFactor(double momAngleFactor)
to scale the momentum deviation of created particles
Definition: PunchThroughParticle.cxx:105
ISF::PunchThroughParticle::setMaxNumParticles
void setMaxNumParticles(int maxNum)
the maximum number of particles which will be created
Definition: PunchThroughParticle.cxx:66
ISF::PunchThroughParticle::getPCA2PDF
PDFcreator * getPCA2PDF()
distribution parameters for the exit delta theta
Definition: PunchThroughParticle.h:77
ISF::PunchThroughParticle::m_numParticlesFactor
double m_numParticlesFactor
some tuning-parameters which will be set via python
Definition: PunchThroughParticle.h:90
ISF::PunchThroughParticle::m_histCorrHighE
TH2F * m_histCorrHighE
high energy correlation histogram (x:this particle, y:the correlated particle)
Definition: PunchThroughParticle.h:102
ISF::PunchThroughParticle::m_energyFactor
double m_energyFactor
scale the energy of this particle type
Definition: PunchThroughParticle.h:91
ISF::PunchThroughParticle::m_corrFullEnergy
double m_corrFullEnergy
holds the energy threshold above which a particle correlation is fully developed
Definition: PunchThroughParticle.h:98
PDFcreator.h
ISF::PunchThroughParticle::setPosAngleFactor
void setPosAngleFactor(double momAngleFactor)
to scale the position deflection angles
Definition: PunchThroughParticle.cxx:96
ISF::PunchThroughParticle::setEnergyFactor
void setEnergyFactor(double energyFactor)
to scale the energy of created particles
Definition: PunchThroughParticle.cxx:86
ISF::PunchThroughParticle::m_posAngleFactor
double m_posAngleFactor
scale the position deflection angles
Definition: PunchThroughParticle.h:92
ISF::PunchThroughParticle::getPosAngleFactor
double getPosAngleFactor()
to scale the energy of created particles
Definition: PunchThroughParticle.h:64
ISF::PunchThroughParticle::m_histCorrLowE
TH2F * m_histCorrLowE
low energy correlation histogram (x:this particle, y:the correlated particle)
Definition: PunchThroughParticle.h:101
ISF::PunchThroughParticle::getMinCorrelationEnergy
int getMinCorrelationEnergy()
the correlated particle id
Definition: PunchThroughParticle.h:69
ISF
ISFParticleOrderedQueue.
Definition: PrimaryParticleInformation.h:13
ISF::PunchThroughParticle::getCorrelatedPdg
int getCorrelatedPdg()
the maximum number of particles which will be created
Definition: PunchThroughParticle.h:68
PowhegPythia8EvtGen_jetjet.pdf
pdf
Definition: PowhegPythia8EvtGen_jetjet.py:4
ISF::PunchThroughParticle::setMinEnergy
void setMinEnergy(double minEnergy)
set methods
Definition: PunchThroughParticle.cxx:56
ISF::PunchThroughParticle
Definition: PunchThroughParticle.h:33
ISF::PunchThroughParticle::m_pdf_pca2
std::unique_ptr< PDFcreator > m_pdf_pca2
phi deviation of punch-through particles
Definition: PunchThroughParticle.h:107
ISF::PunchThroughParticle::setPCA1PDF
void setPCA1PDF(std::unique_ptr< PDFcreator > pdf)
set the PDFcreator for the deltaTheta distribution
Definition: PunchThroughParticle.cxx:161
ISF::PunchThroughParticle::setNumParticlesFactor
void setNumParticlesFactor(double numFactor)
to scale the number of punch-through particles
Definition: PunchThroughParticle.cxx:76
ISF::PunchThroughParticle::m_minEnergy
double m_minEnergy
some cut-parameters which will be set via python
Definition: PunchThroughParticle.h:86
ISF::PunchThroughParticle::getPCA3PDF
PDFcreator * getPCA3PDF()
distribution parameters for the exit delta phi
Definition: PunchThroughParticle.h:78