-
Notifications
You must be signed in to change notification settings - Fork 0
/
ObjectInfo.h
101 lines (75 loc) · 2.76 KB
/
ObjectInfo.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#ifndef ObjectInfo_H
#define ObjectInfo_H
#include <TObject.h>
#include <TMinuit.h>
#include <TLorentzVector.h>
#include <TMath.h>
#include <TRandom2.h>
#include <TString.h>
#include <TStyle.h>
#include <TLegend.h>
#include <TCanvas.h>
#include <TPad.h>
#include <TPaveText.h>
#include <TText.h>
#include <TGraphErrors.h>
#include <TSystem.h>
#include <vector>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <iomanip>
#include <string>
#include "MassAnaInput.h"
#include "WFormat.h"
#include "PseudoExp.h"
#include "MassFitFunction.h"
class ObjectInfo : public TObject {
private:
// for hadronic permutation
MassAnaInput* fitInput;
PseudoExp* pseudoExp;
MassFitFunction* fitFunc;
string hfolder;
vector<double> jetCuts;
vector<double> muonCuts;
int n_Jets ;
string plotType ;
string Inclusive ;
string dataLike ;
int JESType ;
bool inclu ;
bool isWeight ;
int maxNJets ;
double bgMtCut;
double bgMETCut;
public:
ObjectInfo();
~ObjectInfo();
void EvtSelector( string fileName, recoObj* histos, bool smearing = false, double scale = 1., vector<int>* evtlist = NULL, int evtSplit = 0 );
void QCDSelector( string fileName, recoObj* histos, bool smearing = false, double scale = 1., bool doQCD = true, int mode = 0, int evtSplit = 0 );
double MtFitter( TH1D* hs, TF1& fjb1, TCanvas* c1a = NULL, double minMt = 40., double maxMt = 120., bool doPlot = false );
void ObjHistoPlotter( string fileName, bool smearing = false, bool doWMtfit = false );
void DataPlotter( string DataName, vector<string>& fakeData, bool doScale = false );
void Data2DPlotter( string DataName, vector<string>& fakeData, bool doScale = false );
void JacobTester();
void CombinedMCPlotter( vector<string>& fakeData, bool doWMtFit = false, bool doScale = false );
void MCPlotter1( vector<string>& fakeData, double norm = 1500. );
void JESPlotter( vector<string>& fakeData, double norm = 1500. );
vector<double> BinErr( double m ) ;
void Reset(int idx, bool newValue );
void Reset(int idx, int newValue );
void Reset(int idx, double newValue );
void ResetBGCuts(int idx, double newValue );
double EvtScaling( double w_pt , string fileName ) ;
double EvtScaling( int NJets , string fileName ) ;
double QCDScaling( double w_pt ) ;
double QCDScaling( int NJets, string fileName ) ;
void QCDBGPlotter( string DataName, vector<string>& fakeData, bool doQCD, double MtCut, double METCut, int scaleMode = 0 );
void QCDBG2DPlotter( string DataName, vector<string>& fakeData, bool doQCD, double MtCut, double METCut, double scale = 1 );
double PtRel (TLorentzVector v1, TLorentzVector v2 );
//ClassDef(ObjectInfo, 1);
};
//#if !defined(__CINT__)
// ClassImp(ObjectInfo);
#endif