ATLAS Offline Software
Loading...
Searching...
No Matches
semilCorr Class Reference

#include <semilCorr.h>

Collaboration diagram for semilCorr:

Public Types

enum  Systematics {
  TAGGINGWEIGHT = 1 , FRAGMENTATION = 2 , DECAY = 3 , MSRESO = 4 ,
  IDRESO = 5 , DECAYREW = 6 , MUONSPECTRUM = 7 , ALL = 8
}

Public Member Functions

 semilCorr (const TString &fIn, const std::string &suffix="", bool DebugIn=false)
 ~semilCorr ()
float getSemilCorrToIncl (const TLorentzVector &jet, const TLorentzVector &mu)
float getBjetCorrToIncl (const TLorentzVector &jet, const TLorentzVector &mu)
float getSemilCorrToInclSyst (const TLorentzVector &jet, const TLorentzVector &mu, semilCorr::Systematics syst=semilCorr::ALL)

Private Member Functions

float getResponse (float pt, float eta, const std::vector< TH1F * > &h)
float getSemilCorrToIncl (const TLorentzVector &jet, const TLorentzVector &mu, const std::vector< TH1F * > &histos)
std::vector< int > getHistoIndices (semilCorr::Systematics syst)

Private Attributes

std::vector< std::vector< TH1F * > > m_histos
std::vector< float > m_etas
TFile * m_f
bool m_Debug

Detailed Description

Definition at line 15 of file semilCorr.h.

Member Enumeration Documentation

◆ Systematics

Enumerator
TAGGINGWEIGHT 
FRAGMENTATION 
DECAY 
MSRESO 
IDRESO 
DECAYREW 
MUONSPECTRUM 
ALL 

Definition at line 18 of file semilCorr.h.

18 {
19 TAGGINGWEIGHT = 1,
20 FRAGMENTATION = 2,
21 DECAY = 3,
22 MSRESO = 4,
23 IDRESO = 5,
24 DECAYREW = 6,
25 MUONSPECTRUM = 7,
26 ALL = 8
27 };
@ MUONSPECTRUM
Definition semilCorr.h:25
@ TAGGINGWEIGHT
Definition semilCorr.h:19
@ FRAGMENTATION
Definition semilCorr.h:20

Constructor & Destructor Documentation

◆ semilCorr()

semilCorr::semilCorr ( const TString & fIn,
const std::string & suffix = "",
bool DebugIn = false )

Definition at line 9 of file semilCorr.cxx.

9 {
10 m_Debug = DebugIn;
11 m_f = TFile::Open(fIn);
12 m_etas.push_back(0);
13 m_etas.push_back(0.8);
14 m_etas.push_back(1.2);
15 m_etas.push_back(1.7);
16 m_etas.push_back(2.1);
17 m_etas.push_back(2.5);
18
19 vector<string> etastr;
20 etastr.push_back("_e0");
21 etastr.push_back("_e1");
22 etastr.push_back("_e2");
23 etastr.push_back("_e3");
24 etastr.push_back("_e4");
25
26 vector<string> prefix;
27 prefix.push_back("corr");
28 prefix.push_back("tagSyst");
29 prefix.push_back("fragSyst");
30 prefix.push_back("decaySyst");
31 prefix.push_back("msSyst");
32 prefix.push_back("idSyst");
33 prefix.push_back("decayRewSyst");
34 prefix.push_back("muRewSyst");
35 prefix.push_back("corrIncl");
36
37 for(unsigned int j = 0; j<prefix.size(); j++){
38 vector<TH1F*> corr;
39 for(unsigned int i = 0; i<etastr.size(); i++){
40 corr.push_back((TH1F*) m_f->Get((prefix[j]+etastr[i]).c_str()));
41 }
42 m_histos.push_back(corr);
43 }
44}
bool m_Debug
Definition semilCorr.h:35
TFile * m_f
Definition semilCorr.h:33
std::vector< std::vector< TH1F * > > m_histos
Definition semilCorr.h:30
std::vector< float > m_etas
Definition semilCorr.h:31

◆ ~semilCorr()

semilCorr::~semilCorr ( )

Definition at line 47 of file semilCorr.cxx.

47 {
48 for(unsigned int i = 0; i<m_histos.size();i++){
49 for(unsigned int j = 0; j<m_histos[i].size();j++){
50 delete m_histos[i][j]; // TH2F's that store response info
51 }
52 }
53 m_f->Close();
54 delete m_f;
55}

Member Function Documentation

◆ getBjetCorrToIncl()

float semilCorr::getBjetCorrToIncl ( const TLorentzVector & jet,
const TLorentzVector & mu )

Definition at line 63 of file semilCorr.cxx.

65{
66 return getSemilCorrToIncl(jet,mu,m_histos[8]);
67}
float getSemilCorrToIncl(const TLorentzVector &jet, const TLorentzVector &mu, const std::vector< TH1F * > &histos)
Definition semilCorr.cxx:69

◆ getHistoIndices()

vector< int > semilCorr::getHistoIndices ( semilCorr::Systematics syst)
private

Definition at line 79 of file semilCorr.cxx.

80{
81 vector<int> indices;
82 if(syst == semilCorr::ALL){
83 indices.push_back(((int)semilCorr::TAGGINGWEIGHT));
84 indices.push_back(((int)semilCorr::FRAGMENTATION));
85 indices.push_back(((int)semilCorr::DECAY));
86 indices.push_back(((int)semilCorr::MSRESO));
87 indices.push_back(((int)semilCorr::IDRESO));
88 indices.push_back(((int)semilCorr::DECAYREW));
89 indices.push_back(((int)semilCorr::MUONSPECTRUM));
90 }else
91 indices.push_back((int) syst);
92 return indices;
93}
std::pair< long int, long int > indices

◆ getResponse()

float semilCorr::getResponse ( float pt,
float eta,
const std::vector< TH1F * > & h )
private

Definition at line 108 of file semilCorr.cxx.

109{
110 float usePt = pt;
111 int histbin = -1;
112 for(unsigned int i = 0; i<m_etas.size()-1; i++){
113 if(fabs(eta)>=m_etas[i] && fabs(eta)<m_etas[i+1])
114 histbin = i;
115 }
116
117 if(histbin == -1) histbin = h.size()-1;
118 float min = h[histbin]->GetBinCenter(1);
119 float max = h[histbin]->GetBinCenter(h[histbin]->GetNbinsX());
120 if(pt>max)
121 usePt = max-0.001;
122 if(pt<min) usePt = min+0.001;
123 float result = h[histbin]->Interpolate(usePt);
124 return result;
125}
Scalar eta() const
pseudorapidity method
#define min(a, b)
Definition cfImp.cxx:40
#define max(a, b)
Definition cfImp.cxx:41

◆ getSemilCorrToIncl() [1/2]

float semilCorr::getSemilCorrToIncl ( const TLorentzVector & jet,
const TLorentzVector & mu )

Definition at line 57 of file semilCorr.cxx.

59{
60 return getSemilCorrToIncl(jet,mu,m_histos[0]);
61}

◆ getSemilCorrToIncl() [2/2]

float semilCorr::getSemilCorrToIncl ( const TLorentzVector & jet,
const TLorentzVector & mu,
const std::vector< TH1F * > & histos )
private

Definition at line 69 of file semilCorr.cxx.

72{
73 TLorentzVector jetmu = jet+mu;
74 //correction to get things to 1 (or to pttruth), not to reference
75 float corr = getResponse(jetmu.Pt(), jetmu.Eta(), histos);
76 return corr;
77}
float getResponse(float pt, float eta, const std::vector< TH1F * > &h)

◆ getSemilCorrToInclSyst()

float semilCorr::getSemilCorrToInclSyst ( const TLorentzVector & jet,
const TLorentzVector & mu,
semilCorr::Systematics syst = semilCorr::ALL )

Definition at line 95 of file semilCorr.cxx.

98{
99 //vector<int> indices = getHistoIndices(up,syst);
100 vector<int> indices1 = getHistoIndices(syst);
101 float systr = 0;
102 for(unsigned int i = 0; i<indices1.size(); i++){
103 systr += pow(getSemilCorrToIncl(jet,mu,m_histos[indices1[i]]),2);
104 }
105 return sqrt(systr);
106}
constexpr int pow(int base, int exp) noexcept
std::vector< int > getHistoIndices(semilCorr::Systematics syst)
Definition semilCorr.cxx:79

Member Data Documentation

◆ m_Debug

bool semilCorr::m_Debug
private

Definition at line 35 of file semilCorr.h.

◆ m_etas

std::vector<float> semilCorr::m_etas
private

Definition at line 31 of file semilCorr.h.

◆ m_f

TFile* semilCorr::m_f
private

Definition at line 33 of file semilCorr.h.

◆ m_histos

std::vector<std::vector<TH1F*> > semilCorr::m_histos
private

Definition at line 30 of file semilCorr.h.


The documentation for this class was generated from the following files: