CMS 3D CMS Logo

LumiCorrector.cc
Go to the documentation of this file.
7  Occ1Norm_=6.36e3; // For 2.76TeV 1.34e3, for HI 2.214e6
8  Occ2Norm_=7.97e3;
9  ETNorm_=1.59e3;
10  PUNorm_=6.37e3;
11  Alpha1_=0.063;
12  Alpha2_=-0.0037;
13  // map doesn't provide any initialization -> do brute force // For HI Afterglow=1.
14  AfterglowMap_[213]=0.992;
15  AfterglowMap_[321]=0.990;
16  AfterglowMap_[423]=0.988;
17  AfterglowMap_[597]=0.985;
18  AfterglowMap_[700]=0.984;
19  AfterglowMap_[873]=0.981;
20  AfterglowMap_[1041]=0.979;
21  AfterglowMap_[1179]=0.977;
22  AfterglowMap_[1317]=0.975;
23 }
24 
25 void
27  if( algo=="OCC1" ){Occ1Norm_=value;return;}
28  if( algo=="OCC2" ){Occ2Norm_=value;return;}
29  if( algo=="ET" ){ETNorm_=value;return;}
30  if( algo=="PU" ){PUNorm_=value;return;}
31 }
32 void
34  if( name=="ALPHA1" ){Alpha1_=value;return;}
35  if( name=="ALPHA2" ){Alpha2_=value;return;}
36 }
37 float
39  if( algo=="OCC1" ){return Occ1Norm_;}
40  if( algo=="OCC2" ){return Occ2Norm_;}
41  if( algo=="ET" ){return ETNorm_;}
42  if( algo=="PU" ){return PUNorm_;}
43  return 1.0;
44 }
45 float
47  if( name=="ALPHA1" ){ return Alpha1_;}
48  if( name=="ALPHA2" ){ return Alpha2_;}
49  return 0.0;
50 }
51 float
53  float Afterglow = 1.;
54  for(std::map<int,float>::iterator it = AfterglowMap_.begin(); it != AfterglowMap_.end(); ++it){
55  if (nBXs >= it->first){
56  Afterglow = it->second;
57  }
58  }
59  return Afterglow;
60 }
61 
62 float
63 LumiCorrector::TotalNormOcc1(float TotLumi_noNorm, int nBXs){
64  float AvgLumi = (nBXs>0) ? PUNorm_*TotLumi_noNorm/nBXs : 0.;
65  return Occ1Norm_*AfterglowFactor(nBXs)/(1 + Alpha1_*AvgLumi + Alpha2_*AvgLumi*AvgLumi);
66 }
67 float
68 LumiCorrector::TotalNormOcc2(float TotLumi_noNorm, int nBXs){
69  return Occ2Norm_;
70 }
71 float
72 LumiCorrector::TotalNormET(float TotLumi_noNorm, int nBXs){
73  return ETNorm_;
74 }
75 
float getCoefficient(const std::string &name) const
float getNormForAlgo(const std::string &algo) const
float TotalNormOcc1(float TotLumi_noNorm, int nBXs)
void setCoefficient(const std::string &name, float value)
Definition: value.py:1
float TotalNormET(float TotLumi_noNorm, int nBXs)
float TotalNormOcc2(float TotLumi_noNorm, int nBXs)
std::map< int, float > AfterglowMap_
Definition: LumiCorrector.h:26
float AfterglowFactor(int nBXs)
void setNormForAlgo(const std::string &algo, float value)