CMS 3D CMS Logo

Public Member Functions | Private Member Functions | Private Attributes

EMECALShowerParametrization Class Reference

#include <EMECALShowerParametrization.h>

List of all members.

Public Member Functions

double correlationAlphaT (double lny) const
double correlationAlphaTHom (double lny) const
double correlationAlphaTSam (double lny) const
const ECALPropertiesecalProperties () const
 EMECALShowerParametrization (const ECALProperties *ecal, const HCALProperties *hcal, const PreshowerLayer1Properties *layer1, const PreshowerLayer2Properties *layer2, const std::vector< double > &coreIntervals, const std::vector< double > &tailIntervals, double RCFact=1., double RTFact=1.)
const std::vector< double > & getCoreIntervals () const
const std::vector< double > & getTailIntervals () const
const HCALPropertieshcalProperties () const
const PreshowerLayer1Propertieslayer1Properties () const
const PreshowerLayer2Propertieslayer2Properties () const
double meanAlpha (double lny) const
double meanAlphaHom (double lny) const
double meanAlphaSam (double lny) const
double meanAlphaSpot (double alpha) const
double meanAlphaSpotHom (double alpha) const
double meanAlphaSpotSam (double alpha) const
double meanLnAlpha (double lny) const
double meanLnAlphaHom (double lny) const
double meanLnAlphaSam (double lny) const
double meanLnT (double lny) const
double meanLnTHom (double lny) const
double meanLnTSam (double lny) const
double meanT (double lny) const
double meanTHom (double lny) const
double meanTSam (double lny) const
double meanTSpot (double T) const
double meanTSpotHom (double T) const
double meanTSpotSam (double T) const
double nSpots (double E) const
double nSpotsHom (double E) const
double nSpotsSam (double E) const
double p (double tau, double E) const
double pHom (double tau, double E) const
double pSam (double tau, double E) const
double rC (double tau, double E) const
double rCHom (double tau, double E) const
double rCSam (double tau, double E) const
double rT (double tau, double E) const
double rTHom (double tau, double E) const
double rTSam (double tau, double E) const
double sigmaLnAlpha (double lny) const
double sigmaLnAlphaHom (double lny) const
double sigmaLnAlphaSam (double lny) const
double sigmaLnT (double lny) const
double sigmaLnTHom (double lny) const
double sigmaLnTSam (double lny) const
virtual ~EMECALShowerParametrization ()

Private Member Functions

double k1 () const
double k2 () const
double k3 () const
double k4 (double E) const
double p1 () const
double p2 () const
double p3 (double E) const
double z1 (double E) const
double z2 () const

Private Attributes

const std::vector< double > & theCore
const ECALPropertiestheECAL
const HCALPropertiestheHCAL
const PreshowerLayer1PropertiestheLayer1
const PreshowerLayer2PropertiestheLayer2
double theRcfactor
double theRtfactor
const std::vector< double > & theTail

Detailed Description

Electromagnetic Shower parametrization utilities according to G. Grindhammer and S. Peters, hep-ex/0001020, Appendix A

Author:
Patrick Janot
Date:
: 25-Jan-2004

Definition at line 19 of file EMECALShowerParametrization.h.


Constructor & Destructor Documentation

EMECALShowerParametrization::EMECALShowerParametrization ( const ECALProperties ecal,
const HCALProperties hcal,
const PreshowerLayer1Properties layer1,
const PreshowerLayer2Properties layer2,
const std::vector< double > &  coreIntervals,
const std::vector< double > &  tailIntervals,
double  RCFact = 1.,
double  RTFact = 1. 
) [inline]

Definition at line 23 of file EMECALShowerParametrization.h.

                                                : 
    theECAL(ecal),  
    theHCAL(hcal),
    theLayer1(layer1), 
    theLayer2(layer2),
    theCore(coreIntervals),
    theTail(tailIntervals),
    theRcfactor(RCFact),
    theRtfactor(RTFact){}
virtual EMECALShowerParametrization::~EMECALShowerParametrization ( ) [inline, virtual]

Definition at line 40 of file EMECALShowerParametrization.h.

{ }

Member Function Documentation

double EMECALShowerParametrization::correlationAlphaT ( double  lny) const [inline]
double EMECALShowerParametrization::correlationAlphaTHom ( double  lny) const [inline]

Definition at line 123 of file EMECALShowerParametrization.h.

Referenced by correlationAlphaT().

                                                       {
    return 0.705-0.023*lny; }
double EMECALShowerParametrization::correlationAlphaTSam ( double  lny) const [inline]

Definition at line 141 of file EMECALShowerParametrization.h.

Referenced by correlationAlphaT().

                                                       {
    return 0.784-0.023*lny; }
const ECALProperties* EMECALShowerParametrization::ecalProperties ( ) const [inline]

Definition at line 248 of file EMECALShowerParametrization.h.

References theECAL.

Referenced by EMShower::EMShower().

                                                      { 
    return theECAL; 
  }
const std::vector<double>& EMECALShowerParametrization::getCoreIntervals ( ) const [inline]

Definition at line 264 of file EMECALShowerParametrization.h.

References theCore.

Referenced by EMShower::setIntervals().

{ return theCore;}
const std::vector<double>& EMECALShowerParametrization::getTailIntervals ( ) const [inline]

Definition at line 266 of file EMECALShowerParametrization.h.

References theTail.

Referenced by EMShower::setIntervals().

{ return theTail;}
const HCALProperties* EMECALShowerParametrization::hcalProperties ( ) const [inline]

Definition at line 252 of file EMECALShowerParametrization.h.

References theHCAL.

Referenced by EMShower::EMShower().

                                                      { 
    return theHCAL; 
  }
double EMECALShowerParametrization::k1 ( ) const [inline, private]

Definition at line 288 of file EMECALShowerParametrization.h.

References theECAL, and ECALProperties::theZeff().

Referenced by rTHom().

{ return 0.6590-0.00309*theECAL->theZeff(); }
double EMECALShowerParametrization::k2 ( ) const [inline, private]

Definition at line 289 of file EMECALShowerParametrization.h.

Referenced by rTHom().

{ return 0.6450; }
double EMECALShowerParametrization::k3 ( ) const [inline, private]

Definition at line 290 of file EMECALShowerParametrization.h.

Referenced by rTHom().

{ return -2.59; }
double EMECALShowerParametrization::k4 ( double  E) const [inline, private]

Definition at line 291 of file EMECALShowerParametrization.h.

References funct::log().

Referenced by rTHom().

{ return 0.3585+0.0421*std::log(E); }
const PreshowerLayer1Properties* EMECALShowerParametrization::layer1Properties ( ) const [inline]

Definition at line 256 of file EMECALShowerParametrization.h.

References theLayer1.

Referenced by EMShower::EMShower().

                                                                   { 
    return theLayer1; 
  }
const PreshowerLayer2Properties* EMECALShowerParametrization::layer2Properties ( ) const [inline]

Definition at line 260 of file EMECALShowerParametrization.h.

References theLayer2.

Referenced by EMShower::EMShower().

                                                                   { 
    return theLayer2; 
  }
double EMECALShowerParametrization::meanAlpha ( double  lny) const [inline]

Definition at line 51 of file EMECALShowerParametrization.h.

References ECALProperties::isHom(), meanAlphaHom(), meanAlphaSam(), and theECAL.

Referenced by EMShower::EMShower().

                                            { 
    if (theECAL->isHom()) return meanAlphaHom(lny);
    return meanAlphaSam(lny); }
double EMECALShowerParametrization::meanAlphaHom ( double  lny) const [inline]

Definition at line 61 of file EMECALShowerParametrization.h.

References theECAL, and ECALProperties::theZeff().

Referenced by meanAlpha(), and meanAlphaSam().

                                               { 
    return 0.21+(0.492+2.38/theECAL->theZeff())*lny; }
double EMECALShowerParametrization::meanAlphaSam ( double  lny) const [inline]

Definition at line 71 of file EMECALShowerParametrization.h.

References meanAlphaHom(), theECAL, and ECALProperties::theFs().

Referenced by meanAlpha().

                                               { 
    return meanAlphaHom(lny) - 0.444/theECAL->theFs(); }
double EMECALShowerParametrization::meanAlphaSpot ( double  alpha) const [inline]
double EMECALShowerParametrization::meanAlphaSpotHom ( double  alpha) const [inline]

Definition at line 229 of file EMECALShowerParametrization.h.

References theECAL, and ECALProperties::theZeff().

Referenced by meanAlphaSpot(), and meanAlphaSpotSam().

                                                     {
    return alpha*(0.639+0.00334*theECAL->theZeff()); }
double EMECALShowerParametrization::meanAlphaSpotSam ( double  alpha) const [inline]

Definition at line 241 of file EMECALShowerParametrization.h.

References meanAlphaSpotHom(), theECAL, and ECALProperties::theZeff().

Referenced by meanAlphaSpot().

                                                     {
    return meanAlphaSpotHom(alpha)*(0.844+0.0026*theECAL->theZeff()); }
double EMECALShowerParametrization::meanLnAlpha ( double  lny) const [inline]

Definition at line 91 of file EMECALShowerParametrization.h.

References ECALProperties::isHom(), meanLnAlphaHom(), meanLnAlphaSam(), and theECAL.

Referenced by EMShower::EMShower().

                                              {
    if (theECAL->isHom()) return meanLnAlphaHom(lny); 
    return meanLnAlphaSam(lny); }
double EMECALShowerParametrization::meanLnAlphaHom ( double  lny) const [inline]

Definition at line 117 of file EMECALShowerParametrization.h.

References funct::log(), theECAL, and ECALProperties::theZeff().

Referenced by meanLnAlpha(), and meanLnAlphaSam().

                                                 {
    return std::log(0.81+(0.458+2.26/theECAL->theZeff())*lny); }
double EMECALShowerParametrization::meanLnAlphaSam ( double  lny) const [inline]

Definition at line 135 of file EMECALShowerParametrization.h.

References funct::exp(), funct::log(), meanLnAlphaHom(), theECAL, and ECALProperties::theZeff().

Referenced by meanLnAlpha().

                                                 {
    return log( std::exp(meanLnAlphaHom(lny)) - 0.476/theECAL->theZeff() ); }
double EMECALShowerParametrization::meanLnT ( double  lny) const [inline]

Definition at line 82 of file EMECALShowerParametrization.h.

References ECALProperties::isHom(), meanLnTHom(), meanLnTSam(), and theECAL.

Referenced by EMShower::EMShower().

                                          {
    if (theECAL->isHom()) return meanLnTHom(lny); 
    return meanLnTSam(lny); }
double EMECALShowerParametrization::meanLnTHom ( double  lny) const [inline]

Definition at line 110 of file EMECALShowerParametrization.h.

References funct::log().

Referenced by meanLnT(), and meanLnTSam().

                                             {
    return std::log(lny-0.812); }
double EMECALShowerParametrization::meanLnTSam ( double  lny) const [inline]

Definition at line 129 of file EMECALShowerParametrization.h.

References ECALProperties::ehat(), funct::exp(), funct::log(), meanLnTHom(), theECAL, and ECALProperties::theFs().

Referenced by meanLnT().

                                             {
    return log( std::exp(meanLnTHom(lny)) - 0.55/theECAL->theFs() - 0.69*(1-theECAL->ehat()) ); }
double EMECALShowerParametrization::meanT ( double  lny) const [inline]

Definition at line 47 of file EMECALShowerParametrization.h.

References ECALProperties::isHom(), meanTHom(), meanTSam(), and theECAL.

Referenced by EMShower::EMShower().

                                        { 
    if (theECAL->isHom()) return meanTHom(lny);
    return meanTSam(lny); }
double EMECALShowerParametrization::meanTHom ( double  lny) const [inline]

Definition at line 58 of file EMECALShowerParametrization.h.

Referenced by meanT(), and meanTSam().

                                           { 
    return lny-0.858; }
double EMECALShowerParametrization::meanTSam ( double  lny) const [inline]

Definition at line 68 of file EMECALShowerParametrization.h.

References ECALProperties::ehat(), meanTHom(), theECAL, and ECALProperties::theFs().

Referenced by meanT().

                                           { 
    return meanTHom(lny) - 0.59/theECAL->theFs() - 0.53*(1.-theECAL->ehat()); }
double EMECALShowerParametrization::meanTSpot ( double  T) const [inline]

Definition at line 210 of file EMECALShowerParametrization.h.

References ECALProperties::isHom(), meanTSpotHom(), meanTSpotSam(), and theECAL.

Referenced by EMShower::EMShower().

                                          {
    if (theECAL->isHom()) return meanTSpotHom(T); 
    return meanTSpotSam(T); }
double EMECALShowerParametrization::meanTSpotHom ( double  T) const [inline]

Definition at line 226 of file EMECALShowerParametrization.h.

References theECAL, and ECALProperties::theZeff().

Referenced by meanTSpot(), and meanTSpotSam().

                                             {
    return T*(0.698+0.00212*theECAL->theZeff()); }
double EMECALShowerParametrization::meanTSpotSam ( double  T) const [inline]

Definition at line 238 of file EMECALShowerParametrization.h.

References meanTSpotHom(), theECAL, and ECALProperties::theZeff().

Referenced by meanTSpot().

                                             {
    return meanTSpotHom(T)*(0.813+0.0019*theECAL->theZeff()); }
double EMECALShowerParametrization::nSpots ( double  E) const [inline]

Definition at line 206 of file EMECALShowerParametrization.h.

References ECALProperties::isHom(), nSpotsHom(), nSpotsSam(), and theECAL.

Referenced by EMShower::EMShower().

                                       {
    if (theECAL->isHom()) return nSpotsHom(E); 
    return nSpotsSam(E); }
double EMECALShowerParametrization::nSpotsHom ( double  E) const [inline]

Definition at line 223 of file EMECALShowerParametrization.h.

References funct::log(), funct::pow(), theECAL, and ECALProperties::theZeff().

Referenced by nSpots().

                                          {
    return 93.*std::log(theECAL->theZeff()) * std::pow(E,0.876); }
double EMECALShowerParametrization::nSpotsSam ( double  E) const [inline]

Definition at line 235 of file EMECALShowerParametrization.h.

References funct::pow(), ECALProperties::resE(), and theECAL.

Referenced by nSpots().

                                          {
    return 10.3/theECAL->resE()*std::pow(E, 0.959); }
double EMECALShowerParametrization::p ( double  tau,
double  E 
) const [inline]

Definition at line 162 of file EMECALShowerParametrization.h.

References ECALProperties::isHom(), pHom(), pSam(), and theECAL.

Referenced by EMShower::compute().

                                              {
    if (theECAL->isHom()) return pHom(tau, E); 
    return pSam(tau, E); }
double EMECALShowerParametrization::p1 ( ) const [inline, private]

Definition at line 281 of file EMECALShowerParametrization.h.

References theECAL, and ECALProperties::theZeff().

Referenced by pHom().

{ return 2.632-0.00094*theECAL->theZeff(); }
double EMECALShowerParametrization::p2 ( ) const [inline, private]

Definition at line 282 of file EMECALShowerParametrization.h.

References theECAL, and ECALProperties::theZeff().

Referenced by pHom().

{ return 0.401+0.00187*theECAL->theZeff(); }
double EMECALShowerParametrization::p3 ( double  E) const [inline, private]

Definition at line 283 of file EMECALShowerParametrization.h.

References funct::log().

Referenced by pHom().

{ return 1.313-0.0686*std::log(E); }
double EMECALShowerParametrization::pHom ( double  tau,
double  E 
) const [inline]

Definition at line 179 of file EMECALShowerParametrization.h.

References cmsCodeRulesChecker::arg, funct::exp(), p1(), p2(), p3(), and metsig::tau.

Referenced by p(), and pSam().

                                                 {
    double arg = (p2()-tau)/p3(E);
    return p1()* std::exp(arg-std::exp(arg));
  }
double EMECALShowerParametrization::pSam ( double  tau,
double  E 
) const [inline]

Definition at line 195 of file EMECALShowerParametrization.h.

References ECALProperties::ehat(), funct::exp(), pHom(), funct::pow(), theECAL, and ECALProperties::theFs().

Referenced by p().

                                                 {
    return pHom(tau, E) + (1-theECAL->ehat())*(0.348-0.642/theECAL->theFs()*std::exp(-1.*std::pow((tau-1),2) ) );
  }
double EMECALShowerParametrization::rC ( double  tau,
double  E 
) const [inline]

Definition at line 154 of file EMECALShowerParametrization.h.

References ECALProperties::isHom(), rCHom(), rCSam(), and theECAL.

Referenced by EMShower::compute().

                                               {
    if (theECAL->isHom()) return rCHom(tau, E); 
    return rCSam(tau, E); }
double EMECALShowerParametrization::rCHom ( double  tau,
double  E 
) const [inline]

Definition at line 170 of file EMECALShowerParametrization.h.

References metsig::tau, theRcfactor, z1(), and z2().

Referenced by rC(), and rCSam().

                                                  {
    return theRcfactor*(z1(E) + z2()*tau);
  }  
double EMECALShowerParametrization::rCSam ( double  tau,
double  E 
) const [inline]

Definition at line 187 of file EMECALShowerParametrization.h.

References ECALProperties::ehat(), funct::exp(), rCHom(), theECAL, and ECALProperties::theFs().

Referenced by rC().

                                                  {
    return rCHom(tau, E) - 0.0203*(1-theECAL->ehat()) + 0.0397/theECAL->theFs()*std::exp(-1.*tau);
  }
double EMECALShowerParametrization::rT ( double  tau,
double  E 
) const [inline]

Definition at line 158 of file EMECALShowerParametrization.h.

References ECALProperties::isHom(), rTHom(), rTSam(), and theECAL.

Referenced by EMShower::compute().

                                               {
    if (theECAL->isHom()) return rTHom(tau, E); 
    return rTSam(tau, E); }
double EMECALShowerParametrization::rTHom ( double  tau,
double  E 
) const [inline]

Definition at line 174 of file EMECALShowerParametrization.h.

References funct::exp(), k1(), k2(), k3(), k4(), and theRtfactor.

Referenced by rT(), and rTSam().

                                                 {
    return theRtfactor*k1() * ( std::exp(k3()*(tau-k2()))+
                                std::exp(k4(E)*(tau-k2())) );
  }
double EMECALShowerParametrization::rTSam ( double  tau,
double  E 
) const [inline]

Definition at line 191 of file EMECALShowerParametrization.h.

References ECALProperties::ehat(), funct::exp(), rTHom(), theECAL, and ECALProperties::theFs().

Referenced by rT().

                                                 {
    return rTHom(tau, E) -0.14*(1-theECAL->ehat()) - 0.495/theECAL->theFs()*std::exp(-1.*tau);
  }
double EMECALShowerParametrization::sigmaLnAlpha ( double  lny) const [inline]

Definition at line 96 of file EMECALShowerParametrization.h.

References ECALProperties::isHom(), sigmaLnAlphaHom(), sigmaLnAlphaSam(), and theECAL.

Referenced by EMShower::EMShower().

                                               {
    if (theECAL->isHom()) return sigmaLnAlphaHom(lny); 
    return sigmaLnAlphaSam(lny); }
double EMECALShowerParametrization::sigmaLnAlphaHom ( double  lny) const [inline]

Definition at line 120 of file EMECALShowerParametrization.h.

Referenced by sigmaLnAlpha().

                                                  {
    return 1./(-0.58+0.86*lny); }
double EMECALShowerParametrization::sigmaLnAlphaSam ( double  lny) const [inline]

Definition at line 138 of file EMECALShowerParametrization.h.

Referenced by sigmaLnAlpha().

                                                  {
    return 1./(-0.82+0.79*lny); }
double EMECALShowerParametrization::sigmaLnT ( double  lny) const [inline]

Definition at line 86 of file EMECALShowerParametrization.h.

References ECALProperties::isHom(), sigmaLnTHom(), sigmaLnTSam(), and theECAL.

Referenced by EMShower::EMShower().

                                           {
    if (theECAL->isHom()) return sigmaLnTHom(lny); 
    return sigmaLnTSam(lny); }
double EMECALShowerParametrization::sigmaLnTHom ( double  lny) const [inline]

Definition at line 114 of file EMECALShowerParametrization.h.

Referenced by sigmaLnT().

                                              {
    return 1./(-1.4+1.26*lny); }
double EMECALShowerParametrization::sigmaLnTSam ( double  lny) const [inline]

Definition at line 132 of file EMECALShowerParametrization.h.

Referenced by sigmaLnT().

                                              {
    return 1/(-2.5 + 1.25*lny); }
double EMECALShowerParametrization::z1 ( double  E) const [inline, private]

Definition at line 285 of file EMECALShowerParametrization.h.

References funct::log().

Referenced by rCHom().

{ return 0.0251+0.00319*std::log(E); }
double EMECALShowerParametrization::z2 ( ) const [inline, private]

Definition at line 286 of file EMECALShowerParametrization.h.

References theECAL, and ECALProperties::theZeff().

Referenced by rCHom().

{ return 0.1162-0.000381*theECAL->theZeff(); }

Member Data Documentation

const std::vector<double>& EMECALShowerParametrization::theCore [private]

Definition at line 275 of file EMECALShowerParametrization.h.

Referenced by getCoreIntervals().

Definition at line 271 of file EMECALShowerParametrization.h.

Referenced by hcalProperties().

Definition at line 272 of file EMECALShowerParametrization.h.

Referenced by layer1Properties().

Definition at line 273 of file EMECALShowerParametrization.h.

Referenced by layer2Properties().

Definition at line 278 of file EMECALShowerParametrization.h.

Referenced by rCHom().

Definition at line 279 of file EMECALShowerParametrization.h.

Referenced by rTHom().

const std::vector<double>& EMECALShowerParametrization::theTail [private]

Definition at line 276 of file EMECALShowerParametrization.h.

Referenced by getTailIntervals().