-
Notifications
You must be signed in to change notification settings - Fork 2
/
OHltConfig.h
111 lines (92 loc) · 2.7 KB
/
OHltConfig.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
101
102
103
104
105
106
107
108
109
110
111
//////////////////////////////////////////////////////////
//
// Class to parse and store configuration file
//
//////////////////////////////////////////////////////////
#ifndef OHltConfig_h
#define OHltConfig_h
#include <iostream>
#include <cmath>
#include <vector>
#include <TString.h>
#include <libconfig.h++>
#include "OHltMenu.h"
class OHltConfig
{
public:
OHltConfig() {}
OHltConfig(TString cfgfile, OHltMenu *omenu);
virtual ~OHltConfig() {}
void print();
void fillMenu(OHltMenu *omenu);
void printMenu(OHltMenu *omenu);
void convert();
void fillRunBlockList();
void getPreFilter();
// Data
libconfig::Config cfg;
/**** General Menu & Run conditions ****/
int nEntries;
int nPrintStatusEvery;
bool isRealData;
bool isCounts;
bool isMCPUreweight;
TString MCPUfile;
TString DataPUfile;
TString MCPUhisto;
TString DataPUhisto;
TString menuTag;
TString versionTag;
bool doPrintAll;
bool doDeterministicPrescale; // default is random prescale
bool useNonIntegerPrescales; // default is integer prescales
bool readRefPrescalesFromNtuple; // default is read prescales from config
TString nonlinearPileupFit; // default is to do a linear extrapolation
TString alcaCondition;
int lumiBinsForPileupFit; // default is 150 LS per bin
TString dsList;
/*************************/
/**** Beam conditions ****/
float iLumi;
float bunchCrossingTime;
int maxFilledBunches;
int nFilledBunches;
float cmsEnergy;
/*************************/
/**** Real data conditions ****/
float liveTimeRun;
int nL1AcceptsRun;
float lumiSectionLength;
float lumiScaleFactor;
int prescaleNormalization;
std::vector < std::vector <int> > runLumiblockList; // format: (runnr, minLumiBlock, maxLumiBlock)
/******************************/
/**** Samples & processes ****/
std::vector<TString> pnames;
std::vector<TString> ppaths;
std::vector<TString> pfnames;
std::vector<bool> pdomucuts;
std::vector<bool> pdomucutsformuons;
std::vector<bool> pdoecuts;
std::vector<float> psigmas;
std::vector <int> pisPhysicsSample; // Is it a RATE sample (MB, QCD) or a PHYSICS sample (W,Z,top)
/*****************************/
/**** Menu ****/
bool isL1Menu;
bool doL1preloop;
/**********************************/
/**** ****/
// Only for experts:
// Select certain branches to speed up code.
// Modify only if you know what you do!
bool doSelectBranches;
bool selectBranchL1;
bool selectBranchHLT;
bool selectBranchOpenHLT;
bool selectBranchReco;
bool selectBranchL1extra;
bool selectBranchMC;
/**********************************/
TString preFilterLogicString;
};
#endif