![]() |
ATLAS Offline Software
|
#include <PunchThroughTool.h>
Classes | |
| struct | InfoMap |
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< InfoMap > | getInfoMap (const std::string &mainNode, const XMLCoreNode &doc) |
| int | passedParamIterator (int pid, double eta, const std::vector< InfoMap > &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 (const XMLCoreNode *node) |
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< InfoMap > | m_xml_info_pca |
| infoMaps | |
| std::vector< InfoMap > | 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 49 of file PunchThroughTool.h.
| ISF::PunchThroughTool::PunchThroughTool | ( | const std::string & | type, |
| const std::string & | name, | ||
| const IInterface * | parent ) |
Constructor.
Definition at line 65 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 291 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 1259 of file PunchThroughTool.cxx.
|
staticprivate |
Definition at line 732 of file PunchThroughTool.cxx.
|
virtual |
AlgTool finalize method.
Definition at line 274 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 451 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 521 of file PunchThroughTool.cxx.
|
private |
get the floating point number in a string, after the given pattern
Definition at line 1299 of file PunchThroughTool.cxx.
|
private |
Definition at line 800 of file PunchThroughTool.cxx.
|
private |
create exactly one punch-through particle with the given pdg and the given max energy
Definition at line 595 of file PunchThroughTool.cxx.
|
staticprivate |
Definition at line 888 of file PunchThroughTool.cxx.
|
virtual |
AlgTool initialize method.
Definition at line 77 of file PunchThroughTool.cxx.
|
private |
Definition at line 862 of file PunchThroughTool.cxx.
|
private |
Definition at line 820 of file PunchThroughTool.cxx.
|
private |
Definition at line 918 of file PunchThroughTool.cxx.
|
private |
Definition at line 979 of file PunchThroughTool.cxx.
|
staticprivate |
Definition at line 903 of file PunchThroughTool.cxx.
|
private |
Definition at line 811 of file PunchThroughTool.cxx.
|
staticprivate |
Definition at line 727 of file PunchThroughTool.cxx.
|
private |
Definition at line 767 of file PunchThroughTool.cxx.
|
private |
get particle through the calorimeter
Definition at line 1317 of file PunchThroughTool.cxx.
|
private |
reads out the lookuptable for the given type of particle
Definition at line 1183 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 1128 of file PunchThroughTool.cxx.
|
private |
registers a type of punch-through particles which will be simulated
Definition at line 1051 of file PunchThroughTool.cxx.
|
private |
beam pipe radius
Definition at line 207 of file PunchThroughTool.h.
|
private |
Definition at line 187 of file PunchThroughTool.h.
|
private |
Definition at line 186 of file PunchThroughTool.h.
|
private |
Definition at line 195 of file PunchThroughTool.h.
|
private |
energy and eta points in param
Definition at line 154 of file PunchThroughTool.h.
|
private |
Definition at line 204 of file PunchThroughTool.h.
|
private |
Definition at line 155 of file PunchThroughTool.h.
|
private |
ROOT objects.
the punch-through lookup table file
Definition at line 167 of file PunchThroughTool.h.
|
private |
Definition at line 178 of file PunchThroughTool.h.
|
private |
Definition at line 179 of file PunchThroughTool.h.
|
private |
Properties.
Definition at line 177 of file PunchThroughTool.h.
|
private |
Definition at line 189 of file PunchThroughTool.h.
|
private |
Definition at line 203 of file PunchThroughTool.h.
|
private |
Definition at line 184 of file PunchThroughTool.h.
|
private |
Definition at line 183 of file PunchThroughTool.h.
|
private |
pca vectors
Definition at line 210 of file PunchThroughTool.h.
|
private |
Definition at line 193 of file PunchThroughTool.h.
|
private |
Definition at line 188 of file PunchThroughTool.h.
|
private |
Definition at line 192 of file PunchThroughTool.h.
|
private |
Definition at line 191 of file PunchThroughTool.h.
|
private |
Definition at line 194 of file PunchThroughTool.h.
|
private |
ParticleDataTable needed to get connection pdg_code <-> charge.
Definition at line 164 of file PunchThroughTool.h.
|
private |
Definition at line 202 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 170 of file PunchThroughTool.h.
|
private |
Definition at line 211 of file PunchThroughTool.h.
|
private |
Definition at line 182 of file PunchThroughTool.h.
|
private |
Definition at line 190 of file PunchThroughTool.h.
|
private |
Definition at line 181 of file PunchThroughTool.h.
|
private |
Definition at line 185 of file PunchThroughTool.h.
|
private |
|
private |
Definition at line 159 of file PunchThroughTool.h.
|
private |
(vector of map) for CDF mappings
Definition at line 218 of file PunchThroughTool.h.
|
private |
Definition at line 219 of file PunchThroughTool.h.
|
private |
Definition at line 220 of file PunchThroughTool.h.
|
private |
Definition at line 221 of file PunchThroughTool.h.
|
private |
Definition at line 222 of file PunchThroughTool.h.
|
private |
Definition at line 215 of file PunchThroughTool.h.
|
private |
infoMaps
Definition at line 214 of file PunchThroughTool.h.
|
private |
Definition at line 160 of file PunchThroughTool.h.
|
private |
Definition at line 161 of file PunchThroughTool.h.