ATLAS Offline Software
CaloHadDMCoeffCheck.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef CALOLOCALHADCALIB_CALOHADDMCOEFFCHECK_H
6 #define CALOLOCALHADCALIB_CALOHADDMCOEFFCHECK_H
7 
22 #include <vector>
23 #include <string>
24 #include <math.h>
26 class CaloLocalHadCoeff;
28 class CaloHadDMCoeffData;
29 class TProfile;
30 class TH2F;
31 class TH1F;
32 
33 
34 
35 /*
36  * Not thread safe due to ROOT facilities like gStyle
37  * but is used only for validation/plotting
38  * so should be fine
39  */
41  public :
42 
45 
46  int process(CaloHadDMCoeffData *myData, CaloLocalHadCoeff *myHadDMCoeff, bool isSingleParticle=true, bool tbflag=false);
47  void make_report(std::string &sfname);
48 
49  private:
50  enum keys_comp {kENG_RECO, kENG_TRUTH, kENG_NORECO};
51  enum dm_area_keys {
52  sDM_EMB0_EMB1, // 0 before PreSamplerB, between PreSamplerB and EMB1
53  sDM_EMB3_TILE0, // 1 between barrel and tile
54  sDM_SCN, // 2 before TileGap3 (scintillator)
55  sDM_EME0_EME12, // 3 before PreSamplerE, between PreSamplerE and EME1
56  sDM_EME3_HEC0, // 4 between EME3 and HEC0
57  sDM_FCAL, // 5 between HEC and FCAL, before FCAL
58  sDM_LEAKAGE, // 6 leakage behind calorimeter
59  sDM_UNCLASS, // 7 unclassified DM enegry
60  sDM_DMTOT, // 8 sum of DM energy over all zones
61  sDM
62  };
63 
64  void getDmReco(std::vector<std::vector<double > > &engDmReco);
65 
69 
71  float m_energyMin;
72  int m_netabin;
73  float m_etamin;
74  float m_etamax;
75  float m_deta;
76  int m_nphibin;
77  float m_phimin;
78  float m_phimax;
79  float m_dphi;
81  float m_logenermin;
82  float m_logenermax;
83  float m_dlogener;
85  int m_npdg;
87 
88  std::vector<std::vector<std::vector<TH2F *> > > m_h2_etrue_vs_ereco; // [sDM][m_netabin][m_nlogenerbin]
89  std::vector<std::vector<std::vector<TProfile *> > > m_hp_etrue_vs_ereco; // [sDM][m_netabin][m_nlogenerbin]
90  std::vector<std::vector<std::vector<std::vector<TProfile *> > > > m_hp_engRecoOverTruth_vs_eta; //[npdg][sDM][nrecocases][m_nlogenerbin]
91  std::vector<std::vector<std::vector<std::vector<std::vector<TH1F *> > > > > m_engRecSpect; // [npdg][sDM][nrecocases][nenerbin][netabin]
92 
93  int GetRmsWithoutTails(const TH1F *h1, float &mean, float &rms, float ths=3.0);
94 
95 private:
98 };
99 
100 #endif
101 
CaloHadDMCoeffCheck::sDM_EMB3_TILE0
@ sDM_EMB3_TILE0
Definition: CaloHadDMCoeffCheck.h:53
CaloHadDMCoeffCheck::m_dphi
float m_dphi
Definition: CaloHadDMCoeffCheck.h:79
CaloHadDMCoeffCheck::m_hp_engRecoOverTruth_vs_eta
std::vector< std::vector< std::vector< std::vector< TProfile * > > > > m_hp_engRecoOverTruth_vs_eta
Definition: CaloHadDMCoeffCheck.h:90
CaloHadDMCoeffCheck::m_dlogener
float m_dlogener
Definition: CaloHadDMCoeffCheck.h:83
CaloHadDMCoeffCheck::m_nrecobin
int m_nrecobin
Definition: CaloHadDMCoeffCheck.h:84
mean
void mean(std::vector< double > &bins, std::vector< double > &values, const std::vector< std::string > &files, const std::string &histname, const std::string &tplotname, const std::string &label="")
Definition: dependence.cxx:254
CaloHadDMCoeffCheck::m_energyMin
float m_energyMin
Definition: CaloHadDMCoeffCheck.h:71
ATLAS_NOT_THREAD_SAFE
#define ATLAS_NOT_THREAD_SAFE
getNoisyStrip() Find noisy strips from hitmaps and write out into xml/db formats
Definition: checker_macros.h:212
TH2F
Definition: rootspy.cxx:420
CaloHadDMCoeffCheck::sDM_UNCLASS
@ sDM_UNCLASS
Definition: CaloHadDMCoeffCheck.h:59
read_hist_ntuple.h1
h1
Definition: read_hist_ntuple.py:21
CaloHadDMCoeffCheck::keys_comp
keys_comp
Definition: CaloHadDMCoeffCheck.h:50
CaloHadDMCoeffCheck::m_npdg
int m_npdg
Definition: CaloHadDMCoeffCheck.h:85
SUSY_SimplifiedModel_PostInclude.process
string process
Definition: SUSY_SimplifiedModel_PostInclude.py:42
CaloHadDMCoeffCheck::sDM_EME0_EME12
@ sDM_EME0_EME12
Definition: CaloHadDMCoeffCheck.h:55
CaloLocalHadCoeffHelper
Definition: CaloLocalHadCoeffHelper.h:14
CaloHadDMCoeffCheck::m_logenermin
float m_logenermin
Definition: CaloHadDMCoeffCheck.h:81
CaloHadDMCoeffCheck::sDM_EME3_HEC0
@ sDM_EME3_HEC0
Definition: CaloHadDMCoeffCheck.h:56
CaloHadDMCoeffCheck::m_HadDMHelper
CaloLocalHadCoeffHelper * m_HadDMHelper
Definition: CaloHadDMCoeffCheck.h:67
CaloHadDMCoeffCheck
Runs toy reconstruction to validate dead material constants.
Definition: CaloHadDMCoeffCheck.h:40
CaloHadDMCoeffCheck::m_HadDMCoeff
CaloLocalHadCoeff * m_HadDMCoeff
Definition: CaloHadDMCoeffCheck.h:68
CaloHadDMCoeffCheck::sDM_EMB0_EMB1
@ sDM_EMB0_EMB1
Definition: CaloHadDMCoeffCheck.h:52
CaloLocalHadCoeff
Hold binned correction data for local hadronic calibration procedure.
Definition: CaloLocalHadCoeff.h:41
CaloHadDMCoeffCheck::m_etamax
float m_etamax
Definition: CaloHadDMCoeffCheck.h:74
CaloHadDMCoeffCheck::m_logenermax
float m_logenermax
Definition: CaloHadDMCoeffCheck.h:82
CaloHadDMCoeffData
Data to read from special DeadMaterialTree.
Definition: CaloHadDMCoeffData.h:30
CaloHadDMCoeffCheck::m_nphibin
int m_nphibin
Definition: CaloHadDMCoeffCheck.h:76
CaloHadDMCoeffCheck::m_doTailRejection
bool m_doTailRejection
Definition: CaloHadDMCoeffCheck.h:86
CaloHadDMCoeffCheck::sDM_FCAL
@ sDM_FCAL
Definition: CaloHadDMCoeffCheck.h:57
CaloHadDMCoeffCheck::m_data
CaloHadDMCoeffData * m_data
Definition: CaloHadDMCoeffCheck.h:66
MC::isSingleParticle
bool isSingleParticle(const T &p)
Definition: HepMCHelpers.h:55
CaloHadDMCoeffCheck::m_engRecSpect
std::vector< std::vector< std::vector< std::vector< std::vector< TH1F * > > > > > m_engRecSpect
Definition: CaloHadDMCoeffCheck.h:91
CaloHadDMCoeffCheck::m_isTestbeam
bool m_isTestbeam
Definition: CaloHadDMCoeffCheck.h:70
CaloHadDMCoeffCheck::m_netabin
int m_netabin
Definition: CaloHadDMCoeffCheck.h:72
TProfile
Definition: rootspy.cxx:515
CaloHadDMCoeffCheck::m_phimin
float m_phimin
Definition: CaloHadDMCoeffCheck.h:77
CaloHadDMCoeffCheck::m_etamin
float m_etamin
Definition: CaloHadDMCoeffCheck.h:73
CaloHadDMCoeffCheck::sDM_SCN
@ sDM_SCN
Definition: CaloHadDMCoeffCheck.h:54
CaloHadDMCoeffCheck::m_deta
float m_deta
Definition: CaloHadDMCoeffCheck.h:75
CaloHadDMCoeffCheck::m_phimax
float m_phimax
Definition: CaloHadDMCoeffCheck.h:78
CaloHadDMCoeffCheck::m_h2_etrue_vs_ereco
std::vector< std::vector< std::vector< TH2F * > > > m_h2_etrue_vs_ereco
Definition: CaloHadDMCoeffCheck.h:88
TH1F
Definition: rootspy.cxx:320
beamspotnt.rms
rms
Definition: bin/beamspotnt.py:1266
CaloHadDMCoeffCheck::sDM_LEAKAGE
@ sDM_LEAKAGE
Definition: CaloHadDMCoeffCheck.h:58
CaloHadDMCoeffCheck::dm_area_keys
dm_area_keys
Definition: CaloHadDMCoeffCheck.h:51
checker_macros.h
Define macros for attributes used to control the static checker.
CaloHadDMCoeffCheck::sDM_DMTOT
@ sDM_DMTOT
Definition: CaloHadDMCoeffCheck.h:60
CaloHadDMCoeffCheck::m_hp_etrue_vs_ereco
std::vector< std::vector< std::vector< TProfile * > > > m_hp_etrue_vs_ereco
Definition: CaloHadDMCoeffCheck.h:89
CaloHadDMCoeffCheck::m_nlogenerbin
int m_nlogenerbin
Definition: CaloHadDMCoeffCheck.h:80
CaloHadDMCoeffCheck::CaloHadDMCoeffCheck
CaloHadDMCoeffCheck(const CaloHadDMCoeffCheck &)