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< std::unique_ptr< TH1F > > &h)
float getSemilCorrToIncl (const TLorentzVector &jet, const TLorentzVector &mu, const std::vector< std::unique_ptr< TH1F > > &histos)
std::vector< int > getHistoIndices (semilCorr::Systematics syst)

Private Attributes

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

Detailed Description

Definition at line 16 of file semilCorr.h.

Member Enumeration Documentation

◆ Systematics

Enumerator
TAGGINGWEIGHT 
FRAGMENTATION 
DECAY 
MSRESO 
IDRESO 
DECAYREW 
MUONSPECTRUM 
ALL 

Definition at line 19 of file semilCorr.h.

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

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.reset (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<std::unique_ptr<TH1F> > corr;
39 for(unsigned int i = 0; i<etastr.size(); i++){
40 corr.emplace_back((TH1F*) m_f->Get((prefix[j]+etastr[i]).c_str()));
41 }
42 m_histos.push_back(std::move(corr));
43 }
44}
bool m_Debug
Definition semilCorr.h:36
std::unique_ptr< TFile > m_f
Definition semilCorr.h:34
std::vector< float > m_etas
Definition semilCorr.h:32
std::vector< std::vector< std::unique_ptr< TH1F > > > m_histos
Definition semilCorr.h:31
float j(const xAOD::IParticle &, const xAOD::TrackMeasurementValidation &hit, const Eigen::Matrix3d &jab_inv)

◆ ~semilCorr()

semilCorr::~semilCorr ( )

Definition at line 47 of file semilCorr.cxx.

47 {
48}

Member Function Documentation

◆ getBjetCorrToIncl()

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

Definition at line 56 of file semilCorr.cxx.

58{
59 return getSemilCorrToIncl(jet,mu,m_histos[8]);
60}
float getSemilCorrToIncl(const TLorentzVector &jet, const TLorentzVector &mu, const std::vector< std::unique_ptr< TH1F > > &histos)
Definition semilCorr.cxx:62

◆ getHistoIndices()

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

Definition at line 72 of file semilCorr.cxx.

73{
74 vector<int> indices;
75 if(syst == semilCorr::ALL){
76 indices.push_back(((int)semilCorr::TAGGINGWEIGHT));
77 indices.push_back(((int)semilCorr::FRAGMENTATION));
78 indices.push_back(((int)semilCorr::DECAY));
79 indices.push_back(((int)semilCorr::MSRESO));
80 indices.push_back(((int)semilCorr::IDRESO));
81 indices.push_back(((int)semilCorr::DECAYREW));
82 indices.push_back(((int)semilCorr::MUONSPECTRUM));
83 }else
84 indices.push_back((int) syst);
85 return indices;
86}
std::pair< long int, long int > indices

◆ getResponse()

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

Definition at line 101 of file semilCorr.cxx.

102{
103 float usePt = pt;
104 int histbin = -1;
105 for(unsigned int i = 0; i<m_etas.size()-1; i++){
106 if(fabs(eta)>=m_etas[i] && fabs(eta)<m_etas[i+1])
107 histbin = i;
108 }
109
110 if(histbin == -1) histbin = h.size()-1;
111 float min = h[histbin]->GetBinCenter(1);
112 float max = h[histbin]->GetBinCenter(h[histbin]->GetNbinsX());
113 if(pt>max)
114 usePt = max-0.001;
115 if(pt<min) usePt = min+0.001;
116 float result = h[histbin]->Interpolate(usePt);
117 return result;
118}
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 50 of file semilCorr.cxx.

52{
53 return getSemilCorrToIncl(jet,mu,m_histos[0]);
54}

◆ getSemilCorrToIncl() [2/2]

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

Definition at line 62 of file semilCorr.cxx.

65{
66 TLorentzVector jetmu = jet+mu;
67 //correction to get things to 1 (or to pttruth), not to reference
68 float corr = getResponse(jetmu.Pt(), jetmu.Eta(), histos);
69 return corr;
70}
float getResponse(float pt, float eta, const std::vector< std::unique_ptr< TH1F > > &h)

◆ getSemilCorrToInclSyst()

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

Definition at line 88 of file semilCorr.cxx.

91{
92 //vector<int> indices = getHistoIndices(up,syst);
93 vector<int> indices1 = getHistoIndices(syst);
94 float systr = 0;
95 for(unsigned int i = 0; i<indices1.size(); i++){
96 systr += pow(getSemilCorrToIncl(jet,mu,m_histos[indices1[i]]),2);
97 }
98 return sqrt(systr);
99}
std::vector< int > getHistoIndices(semilCorr::Systematics syst)
Definition semilCorr.cxx:72
constexpr int pow(int x)
Definition conifer.h:27

Member Data Documentation

◆ m_Debug

bool semilCorr::m_Debug
private

Definition at line 36 of file semilCorr.h.

◆ m_etas

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

Definition at line 32 of file semilCorr.h.

◆ m_f

std::unique_ptr<TFile> semilCorr::m_f
private

Definition at line 34 of file semilCorr.h.

◆ m_histos

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

Definition at line 31 of file semilCorr.h.


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