CMS 3D CMS Logo

List of all members | Public Member Functions | Static Private Attributes
hgcal::ShowerDepth Class Reference

#include <ShowerDepth.h>

Public Member Functions

float getClusterDepthCompatibility (float measuredDepth, float emEnergy, float &expectedDepth, float &expectedSigma) const
 
 ShowerDepth ()
 
 ~ShowerDepth ()
 

Static Private Attributes

static constexpr float corrlnalphalnt0_ { 0.7858 }
 
static constexpr float corrlnalphalnt1_ { -0.0232 }
 
static constexpr float criticalEnergy_ = 0.00536
 
static constexpr float meanalpha0_ { -0.0433 }
 
static constexpr float meanalpha1_ { 0.540 }
 
static constexpr float meant0_ { -1.396 }
 
static constexpr float meant1_ { 1.007 }
 
static constexpr float radiationLength_ = 0.968
 
static constexpr float sigmalnalpha0_ { -0.08442 }
 
static constexpr float sigmalnalpha1_ { 0.7904 }
 
static constexpr float sigmalnt0_ { -2.506 }
 
static constexpr float sigmalnt1_ { 1.245 }
 

Detailed Description

Definition at line 27 of file ShowerDepth.h.

Constructor & Destructor Documentation

hgcal::ShowerDepth::ShowerDepth ( )
inline

Definition at line 29 of file ShowerDepth.h.

29 {}
hgcal::ShowerDepth::~ShowerDepth ( )
inline

Definition at line 30 of file ShowerDepth.h.

References getClusterDepthCompatibility().

30 {}

Member Function Documentation

float ShowerDepth::getClusterDepthCompatibility ( float  measuredDepth,
float  emEnergy,
float &  expectedDepth,
float &  expectedSigma 
) const

Definition at line 6 of file ShowerDepth.cc.

References corrlnalphalnt0_, corrlnalphalnt1_, criticalEnergy_, cmsBatch::log, meanalpha0_, meanalpha1_, meant0_, meant1_, radiationLength_, sigmalnalpha0_, sigmalnalpha1_, sigmalnt0_, sigmalnt1_, and mathSSE::sqrt().

Referenced by hgcal::EGammaPCAHelper::clusterDepthCompatibility(), and ~ShowerDepth().

6  {
7  float lny = (emEnergy > criticalEnergy_) ? std::log(emEnergy/criticalEnergy_) : 0.;
8 
9  // inject here parametrization results
10  float meantmax = meant0_ + meant1_*lny;
11  float meanalpha = meanalpha0_ + meanalpha1_*lny;
12  if ( meanalpha < 1. ) meanalpha = 1.1; // no poles
13  float sigmalntmax = 1. / (sigmalnt0_+sigmalnt1_*lny);
14  float sigmalnalpha = 1. / (sigmalnalpha0_+sigmalnalpha1_*lny);
15  float corrlnalphalntmax = corrlnalphalnt0_+corrlnalphalnt1_*lny;
16 
17  float invbeta = meantmax/(meanalpha-1.);
18  float predictedDepth = meanalpha*invbeta;
19  predictedDepth *= radiationLength_;
20 
21  float predictedSigma = sigmalnalpha*sigmalnalpha/((meanalpha-1.)*(meanalpha-1.));
22  predictedSigma += sigmalntmax*sigmalntmax;
23  predictedSigma -= 2*sigmalnalpha*sigmalntmax*corrlnalphalntmax/(meanalpha-1.);
24  if ( predictedSigma < 0. ) predictedSigma = 1.e10; // say we can't predict anything
25  predictedSigma = predictedDepth*std::sqrt(predictedSigma);
26 
27  expectedDepth = predictedDepth;
28  expectedSigma = predictedSigma;
29  return (measuredDepth-predictedDepth)/predictedSigma;
30 }
static constexpr float meant0_
Definition: ShowerDepth.h:41
static constexpr float corrlnalphalnt0_
Definition: ShowerDepth.h:55
static constexpr float sigmalnalpha1_
Definition: ShowerDepth.h:52
static constexpr float meanalpha0_
Definition: ShowerDepth.h:44
static constexpr float meanalpha1_
Definition: ShowerDepth.h:45
T sqrt(T t)
Definition: SSEVec.h:18
static constexpr float radiationLength_
Definition: ShowerDepth.h:37
static constexpr float meant1_
Definition: ShowerDepth.h:42
static constexpr float sigmalnalpha0_
Definition: ShowerDepth.h:51
static constexpr float sigmalnt1_
Definition: ShowerDepth.h:49
static constexpr float corrlnalphalnt1_
Definition: ShowerDepth.h:56
static constexpr float criticalEnergy_
Definition: ShowerDepth.h:36
static constexpr float sigmalnt0_
Definition: ShowerDepth.h:48

Member Data Documentation

constexpr float hgcal::ShowerDepth::corrlnalphalnt0_ { 0.7858 }
staticprivate

Definition at line 55 of file ShowerDepth.h.

Referenced by getClusterDepthCompatibility().

constexpr float hgcal::ShowerDepth::corrlnalphalnt1_ { -0.0232 }
staticprivate

Definition at line 56 of file ShowerDepth.h.

Referenced by getClusterDepthCompatibility().

constexpr float hgcal::ShowerDepth::criticalEnergy_ = 0.00536
staticprivate

Definition at line 36 of file ShowerDepth.h.

Referenced by getClusterDepthCompatibility().

constexpr float hgcal::ShowerDepth::meanalpha0_ { -0.0433 }
staticprivate

Definition at line 44 of file ShowerDepth.h.

Referenced by getClusterDepthCompatibility().

constexpr float hgcal::ShowerDepth::meanalpha1_ { 0.540 }
staticprivate

Definition at line 45 of file ShowerDepth.h.

Referenced by getClusterDepthCompatibility().

constexpr float hgcal::ShowerDepth::meant0_ { -1.396 }
staticprivate

Definition at line 41 of file ShowerDepth.h.

Referenced by getClusterDepthCompatibility().

constexpr float hgcal::ShowerDepth::meant1_ { 1.007 }
staticprivate

Definition at line 42 of file ShowerDepth.h.

Referenced by getClusterDepthCompatibility().

constexpr float hgcal::ShowerDepth::radiationLength_ = 0.968
staticprivate

Definition at line 37 of file ShowerDepth.h.

Referenced by getClusterDepthCompatibility().

constexpr float hgcal::ShowerDepth::sigmalnalpha0_ { -0.08442 }
staticprivate

Definition at line 51 of file ShowerDepth.h.

Referenced by getClusterDepthCompatibility().

constexpr float hgcal::ShowerDepth::sigmalnalpha1_ { 0.7904 }
staticprivate

Definition at line 52 of file ShowerDepth.h.

Referenced by getClusterDepthCompatibility().

constexpr float hgcal::ShowerDepth::sigmalnt0_ { -2.506 }
staticprivate

Definition at line 48 of file ShowerDepth.h.

Referenced by getClusterDepthCompatibility().

constexpr float hgcal::ShowerDepth::sigmalnt1_ { 1.245 }
staticprivate

Definition at line 49 of file ShowerDepth.h.

Referenced by getClusterDepthCompatibility().