CMS 3D CMS Logo

AnalysisConfig.h
Go to the documentation of this file.
1 #ifndef AnalysisConfig_h
2 #define AnalysisConfig_h
3 
4 #include "TString.h"
5 #include "rooutil.h"
6 #include "Trktree.h"
7 #include "ModuleConnectionMap.h"
8 
10 public:
11  // Analysis run mode
12  int mode;
13 
14  int streams;
15 
16  // TString that holds the input option provided
18 
19  // TString that holds the input file list (comma separated)
21 
22  // TString that holds the name of the TTree to open for each input files
23  TString input_tree_name;
24 
25  // Output TFile
26  TFile* output_tfile;
27 
28  // Number of events to loop over
29  int n_events;
30 
31  // specific event_index to process
33 
34  // run efficiency study
36 
37  // run inefficiency study
39 
40  // run inefficiency study
41  int mode_write_ineff_study_debug_ntuple; // 0 = MDs, 1 = SGs, 2 = TLs, 3 = TCs
42 
43  // run MTV study
45 
46  // pt binning options
48 
49  // pdg id of the particles to compute efficincies on
50  int pdg_id;
51 
52  // nmatch threshold of the hits to compute matching for MTV-like plots
54 
55  // verbose of the particles to compute efficincies on
56  int verbose;
57 
58  // to print module connection info
59  bool print_conn;
60 
61  // to print module boundary info
63 
64  // to print centroid
66 
67  // Debug boolean
68  bool debug;
69 
70  // TChain that holds the input TTree's
71  TChain* events_tchain;
72 
73  // Jobs to split (if this number is positive, then we will skip certain number of events)
74  // If there are N events, and was asked to split 2 ways, then depending on job_index, it will run over first half or latter half
76 
77  // Job index (assuming nsplit_jobs is set, the job_index determine where to loop over)
78  int job_index;
79 
80  // Custom Looper object to facilitate looping over many files
82 
83  // Custom Cutflow framework
85 
86  // Custom Histograms object compatible with RooUtil::Cutflow framework
88 
89  // TTree output for studies
90  TTree* output_ttree;
91 
92  // TTreeX to facilitate writing output to ttree
94 
95  // Boolean to control whether to write ntuple or not
97 
98  // Module boundaries related info
99  std::map<int, std::array<float, 6>> moduleBoundaries;
100  std::map<int, std::vector<std::vector<float>>> moduleSimHits;
101  std::map<int, int> modulePopulation;
102 
104 
105  // Boolean to trigger whether to run cut_value_ntupling
107 
108  // Boolean to trigger whether to write ntuple or not
110 
111  // Boolean to write lower level objects
113 
114  // Boolean to write gnn ntuple
116 
117  // String to hold the MAKETARGET setting from compile
119 
120  // Path to the TrackLooper code directory
122 
123  // Path to the TrackLooper code directory
124  TString full_cmd_line;
125 
126  // Boolean to allow pLS triplets to be included in the TCs
128 
129  // Boolean to disable pLS duplicate cleaning
131 };
132 
133 extern AnalysisConfig ana;
134 
135 #endif
lst::ModuleConnectionMap moduleConnectiongMapLoose
RooUtil::TTreeX * tx
int mode_write_ineff_study_debug_ntuple
std::map< int, int > modulePopulation
RooUtil::Cutflow cutflow
std::map< int, std::vector< std::vector< float > > > moduleSimHits
std::string compilation_target
std::map< int, std::array< float, 6 > > moduleBoundaries
TChain * events_tchain
TString input_tree_name
RooUtil::Looper< Trktree > looper
TString track_looper_dir_path
RooUtil::Histograms histograms
TString input_raw_string
TTree * output_ttree
AnalysisConfig ana
TString input_file_list_tstring
TString full_cmd_line
TFile * output_tfile