![]() |
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::shared_ptr< GenData > | m_gendata {nullptr} |
| 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.} |
| 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< 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 46 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 282 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 1250 of file PunchThroughTool.cxx.
|
staticprivate |
Definition at line 723 of file PunchThroughTool.cxx.
|
virtual |
AlgTool finalize method.
Definition at line 265 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 442 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 512 of file PunchThroughTool.cxx.
|
private |
get the floating point number in a string, after the given pattern
Definition at line 1290 of file PunchThroughTool.cxx.
|
private |
Definition at line 791 of file PunchThroughTool.cxx.
|
private |
create exactly one punch-through particle with the given pdg and the given max energy
Definition at line 586 of file PunchThroughTool.cxx.
|
staticprivate |
Definition at line 879 of file PunchThroughTool.cxx.
|
virtual |
AlgTool initialize method.
Definition at line 77 of file PunchThroughTool.cxx.
|
private |
Definition at line 853 of file PunchThroughTool.cxx.
|
private |
Definition at line 811 of file PunchThroughTool.cxx.
|
private |
Definition at line 909 of file PunchThroughTool.cxx.
|
private |
Definition at line 970 of file PunchThroughTool.cxx.
|
staticprivate |
Definition at line 894 of file PunchThroughTool.cxx.
|
private |
Definition at line 802 of file PunchThroughTool.cxx.
|
staticprivate |
Definition at line 718 of file PunchThroughTool.cxx.
|
private |
Definition at line 758 of file PunchThroughTool.cxx.
|
private |
get particle through the calorimeter
Definition at line 1308 of file PunchThroughTool.cxx.
|
private |
reads out the lookuptable for the given type of particle
Definition at line 1174 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 1119 of file PunchThroughTool.cxx.
|
private |
registers a type of punch-through particles which will be simulated
Definition at line 1042 of file PunchThroughTool.cxx.
|
private |
beam pipe radius
Definition at line 201 of file PunchThroughTool.h.
|
private |
Definition at line 182 of file PunchThroughTool.h.
|
private |
Definition at line 181 of file PunchThroughTool.h.
|
private |
Definition at line 190 of file PunchThroughTool.h.
|
private |
energy and eta points in param
Definition at line 152 of file PunchThroughTool.h.
|
private |
Definition at line 198 of file PunchThroughTool.h.
|
private |
Definition at line 153 of file PunchThroughTool.h.
|
private |
ROOT objects.
the punch-through lookup table file
Definition at line 162 of file PunchThroughTool.h.
|
private |
Definition at line 173 of file PunchThroughTool.h.
|
private |
Definition at line 174 of file PunchThroughTool.h.
|
private |
Properties.
Definition at line 172 of file PunchThroughTool.h.
|
private |
Definition at line 184 of file PunchThroughTool.h.
|
private |
Definition at line 63 of file PunchThroughTool.h.
|
private |
Definition at line 197 of file PunchThroughTool.h.
|
private |
Definition at line 179 of file PunchThroughTool.h.
|
private |
Definition at line 178 of file PunchThroughTool.h.
|
private |
pca vectors
Definition at line 204 of file PunchThroughTool.h.
|
private |
Definition at line 188 of file PunchThroughTool.h.
|
private |
Definition at line 183 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 189 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 165 of file PunchThroughTool.h.
|
private |
Definition at line 205 of file PunchThroughTool.h.
|
private |
Definition at line 177 of file PunchThroughTool.h.
|
private |
Definition at line 185 of file PunchThroughTool.h.
|
private |
Definition at line 176 of file PunchThroughTool.h.
|
private |
Definition at line 180 of file PunchThroughTool.h.
|
private |
|
private |
Definition at line 157 of file PunchThroughTool.h.
|
private |
(vector of map) for CDF mappings
Definition at line 212 of file PunchThroughTool.h.
|
private |
Definition at line 213 of file PunchThroughTool.h.
|
private |
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 209 of file PunchThroughTool.h.
|
private |
infoMaps
Definition at line 208 of file PunchThroughTool.h.
|
private |
Definition at line 158 of file PunchThroughTool.h.
|
private |
Definition at line 159 of file PunchThroughTool.h.