00001 #ifndef HZZ2L2NU_INCLUDE_ANALYSISCOMMON_H_ 00002 #define HZZ2L2NU_INCLUDE_ANALYSISCOMMON_H_ 00003 00004 #include <optional> 00005 00006 #include <boost/program_options.hpp> 00007 00008 #include <BTagger.h> 00009 #include <BTagWeight.h> 00010 #include <Dataset.h> 00011 #include <ElectronBuilder.h> 00012 #include <EWCorrectionWeight.h> 00013 #include <GenJetBuilder.h> 00014 #include <GenWeight.h> 00015 #include <JetBuilder.h> 00016 #include <JetGeometricVeto.h> 00017 #include <KFactorCorrection.h> 00018 #include <L1TPrefiringWeight.h> 00019 #include <LeptonWeight.h> 00020 #include <MeKinFilter.h> 00021 #include <MetFilters.h> 00022 #include <MuonBuilder.h> 00023 #include <IsoTrackBuilder.h> 00024 #include <Options.h> 00025 #include <PileUpIdFilter.h> 00026 #include <PileUpIdWeight.h> 00027 #include <PileUpWeight.h> 00028 #include <PtMissBuilder.h> 00029 #include <RunSampler.h> 00030 #include <TabulatedRandomGenerator.h> 00031 #include <WeightCollector.h> 00032 00033 00045 class AnalysisCommon { 00046 public: 00047 AnalysisCommon(Options const &options, Dataset &dataset); 00048 00050 static boost::program_options::options_description OptionsDescription(); 00051 00052 protected: 00058 bool ApplyCommonFilters() const; 00059 00062 double DPhiPtMiss( 00063 const std::initializer_list<CollectionBuilderBase const *> &builders); 00064 00066 double intLumi_; 00067 00069 double zMassWindow_, minPtLL_, minDphiLLPtMiss_, minDphiJetsPtMiss_, 00070 minDphiLeptonsJetsPtMiss_; 00071 00073 bool isSim_; 00074 00076 TabulatedRngEngine tabulatedRngEngine_; 00077 00078 RunSampler runSampler_; 00079 00080 BTagger bTagger_; 00081 PileUpIdFilter pileUpIdFilter_; 00082 00083 ElectronBuilder electronBuilder_; 00084 MuonBuilder muonBuilder_; 00085 IsoTrackBuilder isotrkBuilder_; 00086 std::optional<GenJetBuilder> genJetBuilder_; 00087 JetBuilder jetBuilder_; 00088 PtMissBuilder ptMissBuilder_; 00089 00090 LeptonWeight leptonWeight_; 00091 std::optional<GenWeight> genWeight_; 00092 std::optional<KFactorCorrection> kFactorCorrection_; 00093 std::optional<EWCorrectionWeight> ewCorrectionWeight_; 00094 std::optional<PileUpWeight> pileUpWeight_; 00095 std::optional<L1TPrefiringWeight> l1tPrefiringWeight_; 00096 BTagWeight bTagWeight_; 00097 std::optional<PileUpIdWeight> pileUpIdWeight_; 00098 WeightCollector weightCollector_; 00099 00100 private: 00101 MeKinFilter meKinFilter_; 00102 MetFilters metFilters_; 00103 JetGeometricVeto jetGeometricVeto_; 00104 }; 00105 00106 #endif // HZZ2L2NU_INCLUDE_ANALYSISCOMMON_H_