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

◆ ShowerDepth()

hgcal::ShowerDepth::ShowerDepth ( )
inline

Definition at line 29 of file ShowerDepth.h.

29 {}

◆ ~ShowerDepth()

hgcal::ShowerDepth::~ShowerDepth ( )
inline

Definition at line 30 of file ShowerDepth.h.

30 {}

Member Function Documentation

◆ getClusterDepthCompatibility()

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

Definition at line 6 of file ShowerDepth.cc.

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

Referenced by hgcal::EGammaPCAHelper::clusterDepthCompatibility().

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

Member Data Documentation

◆ corrlnalphalnt0_

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

Definition at line 58 of file ShowerDepth.h.

Referenced by getClusterDepthCompatibility().

◆ corrlnalphalnt1_

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

Definition at line 59 of file ShowerDepth.h.

Referenced by getClusterDepthCompatibility().

◆ criticalEnergy_

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

Definition at line 39 of file ShowerDepth.h.

Referenced by getClusterDepthCompatibility().

◆ meanalpha0_

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

Definition at line 47 of file ShowerDepth.h.

Referenced by getClusterDepthCompatibility().

◆ meanalpha1_

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

Definition at line 48 of file ShowerDepth.h.

Referenced by getClusterDepthCompatibility().

◆ meant0_

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

Definition at line 44 of file ShowerDepth.h.

Referenced by getClusterDepthCompatibility().

◆ meant1_

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

Definition at line 45 of file ShowerDepth.h.

Referenced by getClusterDepthCompatibility().

◆ radiationLength_

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

Definition at line 40 of file ShowerDepth.h.

Referenced by getClusterDepthCompatibility().

◆ sigmalnalpha0_

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

Definition at line 54 of file ShowerDepth.h.

Referenced by getClusterDepthCompatibility().

◆ sigmalnalpha1_

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

Definition at line 55 of file ShowerDepth.h.

Referenced by getClusterDepthCompatibility().

◆ sigmalnt0_

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

Definition at line 51 of file ShowerDepth.h.

Referenced by getClusterDepthCompatibility().

◆ sigmalnt1_

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

Definition at line 52 of file ShowerDepth.h.

Referenced by getClusterDepthCompatibility().