|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef ISF_PUNCHTHROUGHTOOLS_SRC_PUNCHTHROUGHTOOL_H
6 #define ISF_PUNCHTHROUGHTOOLS_SRC_PUNCHTHROUGHTOOL_H 1
22 #include "GaudiKernel/IPartPropSvc.h"
31 #include <libxml/xmlmemory.h>
32 #include <libxml/parser.h>
33 #include <libxml/tree.h>
34 #include <libxml/xmlreader.h>
35 #include <libxml/xpath.h>
36 #include <libxml/xpathInternals.h>
45 class ParticleDataTable;
49 class PunchThroughParticle;
77 double minEnergy = 0.,
int maxNumParticles = -1,
78 double numParticlesFactor = 1.,
double energyFactor = 1.,
79 double posAngleFactor = 1.,
80 double momAngleFactor = 1.);
118 static std::vector<double>
dotProduct(
const std::vector<std::vector<double>> &
m,
const std::vector<double> &
v) ;
127 double interpolateEta(
const double &eta, CLHEP::HepRandomEngine* rndmEngine)
const;
130 std::vector<std::map<std::string,std::string>>
getInfoMap(
const std::string& mainNode,
const std::string &xmlFilePath);
133 int passedParamIterator(
int pid,
double eta,
const std::vector<std::map<std::string,std::string>> &mapvect)
const;
173 StringProperty
m_filenameLookupTable{
this,
"FilenameLookupTable",
"CaloPunchThroughParametrisation.root",
"holds the filename of the lookup table"};
174 StringProperty
m_filenameInverseCDF{
this,
"FilenameInverseCdf",
"",
"holds the filename of inverse quantile transformer config"};
175 StringProperty
m_filenameInversePCA{
this,
"FilenameInversePca",
"",
"holds the filename of inverse PCA config"};
177 PublicToolHandle<IPunchThroughClassifier>
m_punchThroughClassifier{
this,
"PunchThroughClassifier",
"ISF_PunchThroughClassifier",
""};
178 IntegerArrayProperty
m_pdgInitiators{
this,
"PunchThroughInitiators", {},
"vector of punch-through initiator pgds"};
179 IntegerArrayProperty
m_initiatorsMinEnergy{
this,
"InitiatorsMinEnergy", {},
"vector of punch-through initiator min energies to create punch through"};
180 DoubleArrayProperty
m_initiatorsEtaRange{
this,
"InitiatorsEtaRange", {},
"vector of min and max abs eta range to allow punch through initiators"};
181 IntegerArrayProperty
m_punchThroughParticles{
this,
"PunchThroughParticles", {},
"vector of pdgs of the particles produced in punch-throughs"};
182 BooleanArrayProperty
m_doAntiParticles{
this,
"DoAntiParticles", {},
"vector of bools to determine if anti-particles are created for each punch-through particle type"};
183 IntegerArrayProperty
m_correlatedParticle{
this,
"CorrelatedParticle", {},
"holds the pdg of the correlated particle for each given pdg"};
184 DoubleArrayProperty
m_minCorrEnergy{
this,
"MinCorrelationEnergy", {},
"holds the energy threshold below which no particle correlation is computed"};
185 DoubleArrayProperty
m_fullCorrEnergy{
this,
"FullCorrelationEnergy", {},
"holds the energy threshold above which a particle correlation is fully developed"};
186 DoubleArrayProperty
m_posAngleFactor{
this,
"ScalePosDeflectionAngles", {},
"tuning parameter to scale the position deflection angles"};
187 DoubleArrayProperty
m_momAngleFactor{
this,
"ScaleMomDeflectionAngles", {},
"tuning parameter to scale the momentum deflection angles"};
188 DoubleArrayProperty
m_minEnergy{
this,
"MinEnergy", {},
"punch-through particles minimum energies"};
189 IntegerArrayProperty
m_maxNumParticles{
this,
"MaxNumParticles", {},
"maximum number of punch-through particles for each particle type"};
190 DoubleArrayProperty
m_numParticlesFactor{
this,
"NumParticlesFactor", {},
"scale the number of punch-through particles"};
191 DoubleArrayProperty
m_energyFactor{
this,
"EnergyFactor", {},
"scale the energy of the punch-through particles"};
::StatusCode StatusCode
StatusCode definition for legacy code.
std::vector< ISF::ISFParticle * > ISFParticleVector
ISFParticle vector.
Eigen::Matrix< double, 3, 1 > Vector3D