CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Types | Private Member Functions | Private Attributes
EMShower Class Reference

#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=NULL, PreshowerHitMaker *const myPreshower=NULL, 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< StepSteps
 
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
 
GammaFunctionGeneratormyGammaGenerator
 
Genfun::IncompleteGamma myIncompleteGamma
 
unsigned int nPart
 
unsigned nSteps
 
double outerDepth
 
std::vector< double > photos
 
const RandomEngineAndDistributionrandom
 
Steps steps
 
bool stepsCalculated
 
std::vector< double > T
 
const ECALPropertiestheECAL
 
EcalHitMakertheGrid
 
const HCALPropertiestheHCAL
 
HcalHitMakertheHcalHitMaker
 
const PreshowerLayer1PropertiestheLayer1
 
const PreshowerLayer2PropertiestheLayer2
 
std::vector< double > theNumberOfSpots
 
EMECALShowerParametrization *const theParam
 
std::vector< const RawParticle * >
*const 
thePart
 
PreshowerHitMakerthePreshower
 
std::vector< double > Ti
 
double totalEnergy
 
std::vector< double > TSpot
 

Detailed Description

Definition at line 26 of file EMShower.h.

Member Typedef Documentation

typedef std::pair<XYZPoint,double> EMShower::Spot
private

Definition at line 31 of file EMShower.h.

typedef std::pair<unsigned int, double> EMShower::Step
private

Definition at line 32 of file EMShower.h.

typedef Steps::const_iterator EMShower::step_iterator
private

Definition at line 34 of file EMShower.h.

typedef std::vector<Step> EMShower::Steps
private

Definition at line 33 of file EMShower.h.

Definition at line 29 of file EMShower.h.

Constructor & Destructor Documentation

EMShower::EMShower ( RandomEngineAndDistribution const *  engine,
GammaFunctionGenerator gamma,
EMECALShowerParametrization *const  myParam,
std::vector< const RawParticle * > *const  myPart,
EcalHitMaker *const  myGrid = NULL,
PreshowerHitMaker *const  myPreshower = NULL,
bool  bFixedLength = false 
)

Definition at line 17 of file EMShower.cc.

virtual EMShower::~EMShower ( )
inlinevirtual

Definition at line 46 of file EMShower.h.

46 {;}

Member Function Documentation

void EMShower::compute ( )

Compute the shower longitudinal and lateral development.

Definition at line 273 of file EMShower.cc.

double EMShower::deposit ( double  t,
double  a,
double  b,
double  dt 
)
private

Definition at line 679 of file EMShower.cc.

double EMShower::deposit ( double  a,
double  b,
double  t 
)
private

Definition at line 720 of file EMShower.cc.

double EMShower::gam ( double  x,
double  a 
) const
private

Definition at line 643 of file EMShower.cc.

double EMShower::getMaximumOfShower ( ) const
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.

58 {return globalMaximum;}
double globalMaximum
Definition: EMShower.h:117
void EMShower::prepareSteps ( )

Computes the steps before the real compute.

Definition at line 128 of file EMShower.cc.

void EMShower::setGrid ( EcalHitMaker *const  myGrid)
inline

set the grid address

Definition at line 61 of file EMShower.h.

References theGrid.

61 { theGrid=myGrid;}
EcalHitMaker * theGrid
Definition: EMShower.h:127
void EMShower::setHcal ( HcalHitMaker *const  myHcal)

set the HCAL address

Definition at line 714 of file EMShower.cc.

void EMShower::setIntervals ( unsigned  icomp,
RadialInterval rad 
)
private

Definition at line 691 of file EMShower.cc.

void EMShower::setPreshower ( PreshowerHitMaker *const  myPresh)

set the preshower address

Definition at line 704 of file EMShower.cc.

Member Data Documentation

std::vector<double> EMShower::a
private

Definition at line 102 of file EMShower.h.

std::vector<double> EMShower::aSpot
private

Definition at line 106 of file EMShower.h.

std::vector<double> EMShower::b
private

Definition at line 103 of file EMShower.h.

bool EMShower::bFixedLength_
private

Definition at line 148 of file EMShower.h.

std::vector<double> EMShower::bSpot
private

Definition at line 107 of file EMShower.h.

std::vector<std::vector<double> > EMShower::depositedEnergy
private

Definition at line 113 of file EMShower.h.

std::vector<double> EMShower::E
private

Definition at line 99 of file EMShower.h.

std::vector<double> EMShower::Etot
private

Definition at line 98 of file EMShower.h.

double EMShower::globalMaximum
private

Definition at line 117 of file EMShower.h.

Referenced by getMaximumOfShower().

bool EMShower::hasPreshower
private

Definition at line 136 of file EMShower.h.

double EMShower::innerDepth
private

Definition at line 115 of file EMShower.h.

std::vector<double> EMShower::maximumOfShower
private

Definition at line 112 of file EMShower.h.

std::vector<double> EMShower::meanDepth
private

Definition at line 114 of file EMShower.h.

GammaFunctionGenerator* EMShower::myGammaGenerator
private

Definition at line 146 of file EMShower.h.

Genfun::IncompleteGamma EMShower::myIncompleteGamma
private

Definition at line 140 of file EMShower.h.

unsigned int EMShower::nPart
private

Definition at line 94 of file EMShower.h.

unsigned EMShower::nSteps
private

Definition at line 123 of file EMShower.h.

double EMShower::outerDepth
private

Definition at line 115 of file EMShower.h.

std::vector<double> EMShower::photos
private

Definition at line 100 of file EMShower.h.

const RandomEngineAndDistribution* EMShower::random
private

Definition at line 143 of file EMShower.h.

Steps EMShower::steps
private

Definition at line 122 of file EMShower.h.

bool EMShower::stepsCalculated
private

Definition at line 124 of file EMShower.h.

std::vector<double> EMShower::T
private

Definition at line 101 of file EMShower.h.

const ECALProperties* EMShower::theECAL
private

Definition at line 87 of file EMShower.h.

EcalHitMaker* EMShower::theGrid
private

Definition at line 127 of file EMShower.h.

Referenced by setGrid().

const HCALProperties* EMShower::theHCAL
private

Definition at line 88 of file EMShower.h.

HcalHitMaker* EMShower::theHcalHitMaker
private

Definition at line 133 of file EMShower.h.

const PreshowerLayer1Properties* EMShower::theLayer1
private

Definition at line 89 of file EMShower.h.

const PreshowerLayer2Properties* EMShower::theLayer2
private

Definition at line 90 of file EMShower.h.

std::vector<double> EMShower::theNumberOfSpots
private

Definition at line 97 of file EMShower.h.

EMECALShowerParametrization* const EMShower::theParam
private

Definition at line 84 of file EMShower.h.

std::vector<const RawParticle*>* const EMShower::thePart
private

Definition at line 93 of file EMShower.h.

PreshowerHitMaker* EMShower::thePreshower
private

Definition at line 130 of file EMShower.h.

std::vector<double> EMShower::Ti
private

Definition at line 104 of file EMShower.h.

double EMShower::totalEnergy
private

Definition at line 119 of file EMShower.h.

std::vector<double> EMShower::TSpot
private

Definition at line 105 of file EMShower.h.