![]() |
ATLAS Offline Software
|
#include <PunchThroughTool.h>
Public Member Functions | |
| PunchThroughTool (const std::string &, const std::string &, const IInterface *) | |
| Constructor. | |
| virtual | ~PunchThroughTool ()=default |
| Destructor. | |
| virtual StatusCode | initialize () |
| AlgTool initialize method. | |
| virtual StatusCode | finalize () |
| AlgTool finalize method. | |
| const ISF::ISFParticleVector * | computePunchThroughParticles (const ISF::ISFParticle &isfp, const TFCSSimulationState &simulstate, CLHEP::HepRandomEngine *rndmEngine) const |
| interface function: fill a vector with the punch-through particles | |
Private Member Functions | |
| StatusCode | registerParticle (int pdgID, bool doAntiparticle=false, double minEnergy=0., int maxNumParticles=-1, double numParticlesFactor=1., double energyFactor=1., double posAngleFactor=1., double momAngleFactor=1.) |
| registers a type of punch-through particles which will be simulated | |
| StatusCode | registerCorrelation (int pdgID1, int pdgID2, double minCorrEnergy=0., double fullCorrEnergy=0.) |
| register a correlation for the two given types of punch-through particles with a given energy threshold above which we will have full correlation | |
| std::unique_ptr< ISF::PDFcreator > | readLookuptablePDF (int pdgID, const std::string &folderName) |
| reads out the lookuptable for the given type of particle | |
| int | getAllParticles (const ISF::ISFParticle &isfp, ISFParticleVector &isfpCont, CLHEP::HepRandomEngine *rndmEngine, int pdg, double interpEnergy, double interpEta, int numParticles=-1) const |
| create the right number of punch-through particles for the given pdg and return the number of particles which was created. | |
| int | getCorrelatedParticles (const ISF::ISFParticle &isfp, ISFParticleVector &isfpCont, int doPdg, int corrParticles, CLHEP::HepRandomEngine *rndmEngine, double interpEnergy, double interpEta) const |
| get the right number of particles for the given pdg while considering the correlation to an other particle type, which has already created 'corrParticles' number of particles | |
| ISF::ISFParticle * | getOneParticle (const ISF::ISFParticle &isfp, int pdg, CLHEP::HepRandomEngine *rndmEngine, double interpEnergy, double interpEta) const |
| create exactly one punch-through particle with the given pdg and the given max energy | |
| ISF::ISFParticle * | createExitPs (const ISF::ISFParticle &isfp, int PDGcode, double energy, double theta, double phi, double momTheta, double momPhi) const |
| create a ISF Particle state at the MS entrace containing a particle with the given properties | |
| double | getFloatAfterPatternInStr (const char *str, const char *pattern) |
| get the floating point number in a string, after the given pattern | |
| Amg::Vector3D | propagator (double theta, double phi) const |
| get particle through the calorimeter | |
| std::vector< double > | inversePCA (int pcaCdfIterator, std::vector< double > &variables) const |
| double | interpolateEnergy (const double &energy, CLHEP::HepRandomEngine *rndmEngine) const |
| double | interpolateEta (const double &eta, CLHEP::HepRandomEngine *rndmEngine) const |
| std::vector< std::map< std::string, std::string > > | getInfoMap (const std::string &mainNode, const std::string &xmlFilePath) |
| int | passedParamIterator (int pid, double eta, const std::vector< std::map< std::string, std::string > > &mapvect) const |
| StatusCode | initializeInverseCDF (const std::string &quantileTransformerConfigFile) |
| StatusCode | initializeInversePCA (const std::string &inversePCAConfigFile) |
Static Private Member Functions | |
| static double | inverseCdfTransform (double variable, const std::map< double, double > &inverse_cdf_map) |
| static std::vector< double > | dotProduct (const std::vector< std::vector< double > > &m, const std::vector< double > &v) |
| static double | normal_cdf (double x) |
| static std::map< double, double > | getVariableCDFmappings (xmlNodePtr &nodeParent) |
Private Attributes | |
| std::vector< double > | m_energyPoints |
| energy and eta points in param | |
| std::vector< double > | m_etaPoints |
| double | m_R1 {0.} |
| calo-MS borders | |
| double | m_R2 {0.} |
| double | m_z1 {0.} |
| double | m_z2 {0.} |
| const HepPDT::ParticleDataTable * | m_particleDataTable {nullptr} |
| ParticleDataTable needed to get connection pdg_code <-> charge. | |
| TFile * | m_fileLookupTable {nullptr} |
| ROOT objects. | |
| std::map< int, PunchThroughParticle * > | m_particles |
| needed to create punch-through particles with the right distributions | |
| StringProperty | m_filenameLookupTable {this, "FilenameLookupTable", "CaloPunchThroughParametrisation.root", "holds the filename of the lookup table"} |
| Properties. | |
| StringProperty | m_filenameInverseCDF {this, "FilenameInverseCdf", "", "holds the filename of inverse quantile transformer config"} |
| StringProperty | m_filenameInversePCA {this, "FilenameInversePca", "", "holds the filename of inverse PCA config"} |
| PublicToolHandle< IPunchThroughClassifier > | m_punchThroughClassifier {this, "PunchThroughClassifier", "ISF_PunchThroughClassifier", ""} |
| IntegerArrayProperty | m_pdgInitiators {this, "PunchThroughInitiators", {}, "vector of punch-through initiator pgds"} |
| IntegerArrayProperty | m_initiatorsMinEnergy {this, "InitiatorsMinEnergy", {}, "vector of punch-through initiator min energies to create punch through"} |
| DoubleArrayProperty | m_initiatorsEtaRange {this, "InitiatorsEtaRange", {}, "vector of min and max abs eta range to allow punch through initiators"} |
| IntegerArrayProperty | m_punchThroughParticles {this, "PunchThroughParticles", {}, "vector of pdgs of the particles produced in punch-throughs"} |
| BooleanArrayProperty | m_doAntiParticles {this, "DoAntiParticles", {}, "vector of bools to determine if anti-particles are created for each punch-through particle type"} |
| IntegerArrayProperty | m_correlatedParticle {this, "CorrelatedParticle", {}, "holds the pdg of the correlated particle for each given pdg"} |
| DoubleArrayProperty | m_minCorrEnergy {this, "MinCorrelationEnergy", {}, "holds the energy threshold below which no particle correlation is computed"} |
| DoubleArrayProperty | m_fullCorrEnergy {this, "FullCorrelationEnergy", {}, "holds the energy threshold above which a particle correlation is fully developed"} |
| DoubleArrayProperty | m_posAngleFactor {this, "ScalePosDeflectionAngles", {}, "tuning parameter to scale the position deflection angles"} |
| DoubleArrayProperty | m_momAngleFactor {this, "ScaleMomDeflectionAngles", {}, "tuning parameter to scale the momentum deflection angles"} |
| DoubleArrayProperty | m_minEnergy {this, "MinEnergy", {}, "punch-through particles minimum energies"} |
| IntegerArrayProperty | m_maxNumParticles {this, "MaxNumParticles", {}, "maximum number of punch-through particles for each particle type"} |
| DoubleArrayProperty | m_numParticlesFactor {this, "NumParticlesFactor", {}, "scale the number of punch-through particles"} |
| DoubleArrayProperty | m_energyFactor {this, "EnergyFactor", {}, "scale the energy of the punch-through particles"} |
| ServiceHandle< IPartPropSvc > | m_particlePropSvc {this, "PartPropSvc", "PartPropSvc", "particle properties svc"} |
| ServiceHandle< IGeoIDSvc > | m_geoIDSvc {this, "GeoIDSvc", "ISF::GeoIDSvc"} |
| ServiceHandle< IEnvelopeDefSvc > | m_envDefSvc {this, "EnvelopeDefSvc", "AtlasGeometry_EnvelopeDefSvc"} |
| DoubleProperty | m_beamPipe {this, "BeamPipeRadius", 500.} |
| beam pipe radius | |
| std::vector< std::vector< std::vector< double > > > | m_inverse_PCA_matrix |
| pca vectors | |
| std::vector< std::vector< double > > | m_PCA_means |
| std::vector< std::map< std::string, std::string > > | m_xml_info_pca |
| infoMaps | |
| std::vector< std::map< std::string, std::string > > | m_xml_info_cdf |
| std::vector< std::map< double, double > > | m_variable0_inverse_cdf |
| (vector of map) for CDF mappings | |
| std::vector< std::map< double, double > > | m_variable1_inverse_cdf |
| std::vector< std::map< double, double > > | m_variable2_inverse_cdf |
| std::vector< std::map< double, double > > | m_variable3_inverse_cdf |
| std::vector< std::map< double, double > > | m_variable4_inverse_cdf |
Definition at line 55 of file PunchThroughTool.h.
| ISF::PunchThroughTool::PunchThroughTool | ( | const std::string & | type, |
| const std::string & | name, | ||
| const IInterface * | parent ) |
Constructor.
Definition at line 62 of file PunchThroughTool.cxx.
|
virtualdefault |
Destructor.
| const ISF::ISFParticleVector * ISF::PunchThroughTool::computePunchThroughParticles | ( | const ISF::ISFParticle & | isfp, |
| const TFCSSimulationState & | simulstate, | ||
| CLHEP::HepRandomEngine * | rndmEngine ) const |
interface function: fill a vector with the punch-through particles
Definition at line 288 of file PunchThroughTool.cxx.
|
private |
create a ISF Particle state at the MS entrace containing a particle with the given properties
@TODO: fix
Definition at line 1318 of file PunchThroughTool.cxx.
|
staticprivate |
Definition at line 729 of file PunchThroughTool.cxx.
|
virtual |
AlgTool finalize method.
Definition at line 271 of file PunchThroughTool.cxx.
|
private |
create the right number of punch-through particles for the given pdg and return the number of particles which was created.
also create these particles with the right distributions (energy, theta, phi). if a second argument is given, create exactly this number of particles (also with the right energy,theta,phi distributions
Definition at line 448 of file PunchThroughTool.cxx.
|
private |
get the right number of particles for the given pdg while considering the correlation to an other particle type, which has already created 'corrParticles' number of particles
Definition at line 518 of file PunchThroughTool.cxx.
|
private |
get the floating point number in a string, after the given pattern
Definition at line 1358 of file PunchThroughTool.cxx.
|
private |
Definition at line 793 of file PunchThroughTool.cxx.
|
private |
create exactly one punch-through particle with the given pdg and the given max energy
Definition at line 592 of file PunchThroughTool.cxx.
|
staticprivate |
Definition at line 944 of file PunchThroughTool.cxx.
|
virtual |
AlgTool initialize method.
Definition at line 74 of file PunchThroughTool.cxx.
|
private |
Definition at line 885 of file PunchThroughTool.cxx.
|
private |
Definition at line 830 of file PunchThroughTool.cxx.
|
private |
Definition at line 977 of file PunchThroughTool.cxx.
|
private |
Definition at line 1038 of file PunchThroughTool.cxx.
|
staticprivate |
Definition at line 962 of file PunchThroughTool.cxx.
|
private |
Definition at line 821 of file PunchThroughTool.cxx.
|
staticprivate |
Definition at line 724 of file PunchThroughTool.cxx.
|
private |
Definition at line 764 of file PunchThroughTool.cxx.
|
private |
get particle through the calorimeter
Definition at line 1376 of file PunchThroughTool.cxx.
|
private |
reads out the lookuptable for the given type of particle
Definition at line 1242 of file PunchThroughTool.cxx.
|
private |
register a correlation for the two given types of punch-through particles with a given energy threshold above which we will have full correlation
Definition at line 1187 of file PunchThroughTool.cxx.
|
private |
registers a type of punch-through particles which will be simulated
Definition at line 1110 of file PunchThroughTool.cxx.
|
private |
beam pipe radius
Definition at line 203 of file PunchThroughTool.h.
|
private |
Definition at line 183 of file PunchThroughTool.h.
|
private |
Definition at line 182 of file PunchThroughTool.h.
|
private |
Definition at line 191 of file PunchThroughTool.h.
|
private |
energy and eta points in param
Definition at line 150 of file PunchThroughTool.h.
|
private |
Definition at line 200 of file PunchThroughTool.h.
|
private |
Definition at line 151 of file PunchThroughTool.h.
|
private |
ROOT objects.
the punch-through lookup table file
Definition at line 163 of file PunchThroughTool.h.
|
private |
Definition at line 174 of file PunchThroughTool.h.
|
private |
Definition at line 175 of file PunchThroughTool.h.
|
private |
Properties.
Definition at line 173 of file PunchThroughTool.h.
|
private |
Definition at line 185 of file PunchThroughTool.h.
|
private |
Definition at line 199 of file PunchThroughTool.h.
|
private |
Definition at line 180 of file PunchThroughTool.h.
|
private |
Definition at line 179 of file PunchThroughTool.h.
|
private |
pca vectors
Definition at line 206 of file PunchThroughTool.h.
|
private |
Definition at line 189 of file PunchThroughTool.h.
|
private |
Definition at line 184 of file PunchThroughTool.h.
|
private |
Definition at line 188 of file PunchThroughTool.h.
|
private |
Definition at line 187 of file PunchThroughTool.h.
|
private |
Definition at line 190 of file PunchThroughTool.h.
|
private |
ParticleDataTable needed to get connection pdg_code <-> charge.
Definition at line 160 of file PunchThroughTool.h.
|
private |
Definition at line 198 of file PunchThroughTool.h.
|
private |
needed to create punch-through particles with the right distributions
store all punch-through information for each particle id
Definition at line 166 of file PunchThroughTool.h.
|
private |
Definition at line 207 of file PunchThroughTool.h.
|
private |
Definition at line 178 of file PunchThroughTool.h.
|
private |
Definition at line 186 of file PunchThroughTool.h.
|
private |
Definition at line 177 of file PunchThroughTool.h.
|
private |
Definition at line 181 of file PunchThroughTool.h.
|
private |
|
private |
Definition at line 155 of file PunchThroughTool.h.
|
private |
(vector of map) for CDF mappings
Definition at line 214 of file PunchThroughTool.h.
|
private |
Definition at line 215 of file PunchThroughTool.h.
|
private |
Definition at line 216 of file PunchThroughTool.h.
|
private |
Definition at line 217 of file PunchThroughTool.h.
|
private |
Definition at line 218 of file PunchThroughTool.h.
|
private |
Definition at line 211 of file PunchThroughTool.h.
|
private |
infoMaps
Definition at line 210 of file PunchThroughTool.h.
|
private |
Definition at line 156 of file PunchThroughTool.h.
|
private |
Definition at line 157 of file PunchThroughTool.h.