#include <EMShower.h>
Public Member Functions | |
void | compute () |
Compute the shower longitudinal and lateral development. More... | |
EMShower (RandomEngineAndDistribution const *engine, GammaFunctionGenerator *gamma, EMECALShowerParametrization *const myParam, std::vector< const RawParticle * > *const myPart, EcalHitMaker *const myGrid=nullptr, PreshowerHitMaker *const myPreshower=nullptr, bool bFixedLength=false) | |
double | getMaximumOfShower () const |
get the depth of the centre of gravity of the shower(s) More... | |
void | prepareSteps () |
Computes the steps before the real compute. More... | |
void | setGrid (EcalHitMaker *const myGrid) |
set the grid address More... | |
void | setHcal (HcalHitMaker *const myHcal) |
set the HCAL address More... | |
void | setPreshower (PreshowerHitMaker *const myPresh) |
set the preshower address More... | |
virtual | ~EMShower () |
Private Types | |
typedef std::pair< XYZPoint, double > | Spot |
typedef std::pair< unsigned int, double > | Step |
typedef Steps::const_iterator | step_iterator |
typedef std::vector< Step > | Steps |
typedef math::XYZVector | XYZPoint |
Private Member Functions | |
double | deposit (double t, double a, double b, double dt) |
double | deposit (double a, double b, double t) |
double | gam (double x, double a) const |
void | setIntervals (unsigned icomp, RadialInterval &rad) |
Private Attributes | |
std::vector< double > | a |
std::vector< double > | aSpot |
std::vector< double > | b |
bool | bFixedLength_ |
std::vector< double > | bSpot |
std::vector< std::vector< double > > | depositedEnergy |
std::vector< double > | E |
std::vector< double > | Etot |
double | globalMaximum |
bool | hasPreshower |
double | innerDepth |
std::vector< double > | maximumOfShower |
std::vector< double > | meanDepth |
GammaFunctionGenerator * | myGammaGenerator |
Genfun::IncompleteGamma | myIncompleteGamma |
unsigned int | nPart |
unsigned | nSteps |
double | outerDepth |
std::vector< double > | photos |
const RandomEngineAndDistribution * | random |
Steps | steps |
bool | stepsCalculated |
std::vector< double > | T |
const ECALProperties * | theECAL |
EcalHitMaker * | theGrid |
const HCALProperties * | theHCAL |
HcalHitMaker * | theHcalHitMaker |
const PreshowerLayer1Properties * | theLayer1 |
const PreshowerLayer2Properties * | theLayer2 |
std::vector< double > | theNumberOfSpots |
EMECALShowerParametrization *const | theParam |
std::vector< const RawParticle * > *const | thePart |
PreshowerHitMaker * | thePreshower |
std::vector< double > | Ti |
double | totalEnergy |
std::vector< double > | TSpot |
Definition at line 26 of file EMShower.h.
|
private |
Definition at line 31 of file EMShower.h.
|
private |
Definition at line 32 of file EMShower.h.
|
private |
Definition at line 34 of file EMShower.h.
|
private |
Definition at line 33 of file EMShower.h.
|
private |
Definition at line 29 of file EMShower.h.
EMShower::EMShower | ( | RandomEngineAndDistribution const * | engine, |
GammaFunctionGenerator * | gamma, | ||
EMECALShowerParametrization *const | myParam, | ||
std::vector< const RawParticle * > *const | myPart, | ||
EcalHitMaker *const | myGrid = nullptr , |
||
PreshowerHitMaker *const | myPreshower = nullptr , |
||
bool | bFixedLength = false |
||
) |
Definition at line 17 of file EMShower.cc.
References a, aSpot, b, bSpot, EMECALShowerParametrization::correlationAlphaT(), ECALProperties::criticalEnergy(), MillePedeFileConverter_cfg::e, E, EMECALShowerParametrization::ecalProperties(), Etot, JetChargeProducer_cfi::exp, RandomEngineAndDistribution::gaussShoot(), globalMaximum, hasPreshower, EMECALShowerParametrization::hcalProperties(), mps_fire::i, EMECALShowerParametrization::layer1Properties(), EMECALShowerParametrization::layer2Properties(), ECALProperties::lightCollectionEfficiency(), cmsBatch::log, maximumOfShower, EMECALShowerParametrization::meanAlpha(), EMECALShowerParametrization::meanAlphaSpot(), meanDepth, EMECALShowerParametrization::meanLnAlpha(), EMECALShowerParametrization::meanLnT(), EMECALShowerParametrization::meanT(), EMECALShowerParametrization::meanTSpot(), nPart, EMECALShowerParametrization::nSpots(), photos, ECALProperties::photoStatistics(), random, HiRecoPFJets_cff::rhom, EMECALShowerParametrization::sigmaLnAlpha(), EMECALShowerParametrization::sigmaLnT(), mathSSE::sqrt(), stepsCalculated, theECAL, theHCAL, theLayer1, theLayer2, theNumberOfSpots, theParam, thePart, Ti, totalEnergy, and TSpot.
|
inlinevirtual |
void EMShower::compute | ( | ) |
Compute the shower longitudinal and lateral development.
Definition at line 273 of file EMShower.cc.
References a, PreshowerHitMaker::addHit(), HcalHitMaker::addHit(), EcalHitMaker::addHit(), EcalHitMaker::addHitDepth(), RadialInterval::addInterval(), aSpot, b, bSpot, RadialInterval::compute(), deposit(), depositedEnergy, egammaForCoreTracking_cff::depth, gamEcalExtractorBlocks_cff::detector, dt, E, digitizers_cfi::ecal, Etot, RandomEngineAndDistribution::flatShoot(), gam(), HFPhase1Reconstructor_cfi::gap, RandomEngineAndDistribution::gaussShoot(), RadialInterval::getNumberOfSpots(), EcalHitMaker::getPads(), RadialInterval::getSpotEnergy(), RadialInterval::getUmax(), RadialInterval::getUmin(), EcalHitMaker::getX0back(), hasPreshower, digitizers_cfi::hcal, HCALProperties::hOverPi(), mps_fire::i, createfilelist::int, ECALProperties::isHom(), ECALProperties::lightCollectionUniformity(), M_PI, SiStripPI::mean, meanDepth, PreshowerLayer2Properties::mipsPerGeV(), PreshowerLayer1Properties::mipsPerGeV(), myGammaGenerator, RadialInterval::nIntervals(), nPart, nSteps, EMECALShowerParametrization::p(), phi, photos, RandomEngineAndDistribution::poissonShoot(), prepareSteps(), random, EMECALShowerParametrization::rC(), ECALProperties::resE(), EMECALShowerParametrization::rT(), HcalHitMaker::setDepth(), setIntervals(), GammaFunctionGenerator::setParameters(), HcalHitMaker::setSpotEnergy(), PreshowerHitMaker::setSpotEnergy(), EcalHitMaker::setSpotEnergy(), GammaFunctionGenerator::shoot(), HCALProperties::spotFraction(), mathSSE::sqrt(), mps_update::status, steps, stepsCalculated, protons_cff::t, theECAL, theGrid, theHCAL, theHcalHitMaker, theLayer1, theLayer2, theNumberOfSpots, theParam, thePreshower, Ti, and groupFilesInBlocks::tt.
Referenced by CalorimetryManager::EMShowerSimulation(), and ~EMShower().
|
private |
Definition at line 679 of file EMShower.cc.
References dt, myIncompleteGamma, mps_fire::result, and protons_cff::t.
Referenced by compute(), prepareSteps(), and setGrid().
|
private |
Definition at line 720 of file EMShower.cc.
References MillePedeFileConverter_cfg::e, myIncompleteGamma, mps_fire::result, and protons_cff::t.
|
private |
Definition at line 643 of file EMShower.cc.
References JetChargeProducer_cfi::exp, and funct::pow().
Referenced by compute(), and setGrid().
|
inline |
get the depth of the centre of gravity of the shower(s)
get the depth of the maximum of the shower
Definition at line 58 of file EMShower.h.
References globalMaximum.
Referenced by CalorimetryManager::EMShowerSimulation().
void EMShower::prepareSteps | ( | ) |
Computes the steps before the real compute.
Definition at line 128 of file EMShower.cc.
References a, b, bFixedLength_, deposit(), depositedEnergy, dt, E, EcalHitMaker::ecalTotalX0(), EcalHitMaker::hcalTotalX0(), mps_fire::i, innerDepth, createfilelist::int, meanDepth, nPart, nSteps, PFRecoTauDiscriminationByIsolation_cfi::offset, outerDepth, EcalHitMaker::ps1TotalX0(), EcalHitMaker::ps2eeTotalX0(), EcalHitMaker::ps2TotalX0(), steps, stepsCalculated, protons_cff::t, theGrid, EcalHitMaker::totalX0(), and EcalHitMaker::x0DepthOffset().
Referenced by compute(), and ~EMShower().
|
inline |
set the grid address
Definition at line 61 of file EMShower.h.
References a, b, deposit(), dt, gam(), setHcal(), setIntervals(), setPreshower(), protons_cff::t, theGrid, and x.
Referenced by CalorimetryManager::EMShowerSimulation().
void EMShower::setHcal | ( | HcalHitMaker *const | myHcal | ) |
set the HCAL address
Definition at line 714 of file EMShower.cc.
References theHcalHitMaker.
Referenced by CalorimetryManager::EMShowerSimulation(), and setGrid().
|
private |
Definition at line 691 of file EMShower.cc.
References RadialInterval::addInterval(), EMECALShowerParametrization::getCoreIntervals(), EMECALShowerParametrization::getTailIntervals(), and theParam.
Referenced by compute(), and setGrid().
void EMShower::setPreshower | ( | PreshowerHitMaker *const | myPresh | ) |
set the preshower address
Definition at line 704 of file EMShower.cc.
References hasPreshower, and thePreshower.
Referenced by CalorimetryManager::EMShowerSimulation(), and setGrid().
|
private |
Definition at line 102 of file EMShower.h.
Referenced by compute(), EMShower(), prepareSteps(), and setGrid().
|
private |
Definition at line 106 of file EMShower.h.
Referenced by compute(), and EMShower().
|
private |
Definition at line 103 of file EMShower.h.
Referenced by compute(), EMShower(), prepareSteps(), and setGrid().
|
private |
Definition at line 148 of file EMShower.h.
Referenced by prepareSteps().
|
private |
Definition at line 107 of file EMShower.h.
Referenced by compute(), and EMShower().
|
private |
Definition at line 113 of file EMShower.h.
Referenced by compute(), and prepareSteps().
|
private |
Definition at line 99 of file EMShower.h.
Referenced by compute(), EMShower(), and prepareSteps().
|
private |
Definition at line 98 of file EMShower.h.
Referenced by compute(), and EMShower().
|
private |
Definition at line 117 of file EMShower.h.
Referenced by EMShower(), and getMaximumOfShower().
|
private |
Definition at line 136 of file EMShower.h.
Referenced by compute(), EMShower(), and setPreshower().
|
private |
Definition at line 115 of file EMShower.h.
Referenced by prepareSteps().
|
private |
Definition at line 112 of file EMShower.h.
Referenced by EMShower().
|
private |
Definition at line 114 of file EMShower.h.
Referenced by compute(), EMShower(), and prepareSteps().
|
private |
Definition at line 146 of file EMShower.h.
Referenced by compute().
|
private |
Definition at line 140 of file EMShower.h.
Referenced by deposit().
|
private |
Definition at line 94 of file EMShower.h.
Referenced by compute(), EMShower(), and prepareSteps().
|
private |
Definition at line 123 of file EMShower.h.
Referenced by compute(), and prepareSteps().
|
private |
Definition at line 115 of file EMShower.h.
Referenced by prepareSteps().
|
private |
Definition at line 100 of file EMShower.h.
Referenced by compute(), and EMShower().
|
private |
Definition at line 143 of file EMShower.h.
Referenced by compute(), and EMShower().
|
private |
Definition at line 122 of file EMShower.h.
Referenced by compute(), and prepareSteps().
|
private |
Definition at line 124 of file EMShower.h.
Referenced by compute(), EMShower(), and prepareSteps().
|
private |
Definition at line 101 of file EMShower.h.
|
private |
Definition at line 87 of file EMShower.h.
Referenced by compute(), and EMShower().
|
private |
Definition at line 127 of file EMShower.h.
Referenced by compute(), prepareSteps(), and setGrid().
|
private |
Definition at line 88 of file EMShower.h.
Referenced by compute(), and EMShower().
|
private |
Definition at line 133 of file EMShower.h.
|
private |
Definition at line 89 of file EMShower.h.
Referenced by compute(), and EMShower().
|
private |
Definition at line 90 of file EMShower.h.
Referenced by compute(), and EMShower().
|
private |
Definition at line 97 of file EMShower.h.
Referenced by compute(), and EMShower().
|
private |
Definition at line 84 of file EMShower.h.
Referenced by compute(), EMShower(), and setIntervals().
|
private |
Definition at line 93 of file EMShower.h.
Referenced by EMShower().
|
private |
Definition at line 130 of file EMShower.h.
Referenced by compute(), and setPreshower().
|
private |
Definition at line 104 of file EMShower.h.
Referenced by compute(), and EMShower().
|
private |
Definition at line 119 of file EMShower.h.
Referenced by EMShower().
|
private |
Definition at line 105 of file EMShower.h.
Referenced by EMShower().