File indexing completed on 2024-11-19 23:20:33
0001 #ifndef helper_h
0002 #define helper_h
0003
0004 #include "LSTEff.h"
0005 #include "cxxopts.h"
0006 #include "rooutil.h"
0007
0008 class AnalysisConfig {
0009 public:
0010
0011 TString input_file_list_tstring;
0012
0013
0014 TString input_tree_name;
0015
0016
0017 TFile* output_tfile;
0018
0019
0020 int n_events;
0021
0022
0023 float pt_cut;
0024
0025
0026 float eta_cut;
0027
0028
0029
0030 int nsplit_jobs;
0031
0032
0033 int job_index;
0034
0035
0036 bool debug;
0037
0038
0039 TChain* events_tchain;
0040
0041
0042 RooUtil::Looper<LSTEff> looper;
0043
0044
0045 RooUtil::Cutflow cutflow;
0046
0047
0048 RooUtil::Histograms histograms;
0049
0050
0051 RooUtil::TTreeX tx;
0052
0053
0054 int ptbound_mode;
0055
0056
0057 int pdgid;
0058
0059
0060 std::vector<int> pdgids;
0061
0062
0063 bool do_lower_level;
0064
0065 AnalysisConfig();
0066 };
0067
0068 extern AnalysisConfig ana;
0069
0070 class SimTrackSetDefinition {
0071 public:
0072 TString set_name;
0073 int pdgid;
0074 int q;
0075 std::function<bool(unsigned int)> pass;
0076 std::function<bool(unsigned int)> sel;
0077 SimTrackSetDefinition(TString, int, int, std::function<bool(unsigned int)>, std::function<bool(unsigned int)>);
0078 };
0079
0080 class RecoTrackSetDefinition {
0081 public:
0082 TString set_name;
0083 std::function<bool(unsigned int)> pass;
0084 std::function<bool(unsigned int)> sel;
0085 std::function<const std::vector<float>()> pt;
0086 std::function<const std::vector<float>()> eta;
0087 std::function<const std::vector<float>()> phi;
0088 std::function<const std::vector<int>()> type;
0089 RecoTrackSetDefinition(TString,
0090 std::function<bool(unsigned int)>,
0091 std::function<bool(unsigned int)>,
0092 std::function<const std::vector<float>()>,
0093 std::function<const std::vector<float>()>,
0094 std::function<const std::vector<float>()>,
0095 std::function<const std::vector<int>()>);
0096 };
0097
0098 void parseArguments(int argc, char** argv);
0099 void initializeInputsAndOutputs();
0100 std::vector<float> getPtBounds(int mode);
0101
0102 #endif