File indexing completed on 2024-04-06 12:09:26
0001 #ifndef DQMPFCandidateAnalyzer_H
0002 #define DQMPFCandidateAnalyzer_H
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 #include "DQMServices/Core/interface/DQMOneEDAnalyzer.h"
0019 #include <memory>
0020 #include <fstream>
0021 #include "FWCore/Framework/interface/Frameworkfwd.h"
0022 #include "FWCore/Framework/interface/Event.h"
0023 #include "FWCore/Framework/interface/MakerMacros.h"
0024 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0025 #include "FWCore/ServiceRegistry/interface/Service.h"
0026
0027 #include "DataFormats/Common/interface/TriggerResults.h"
0028 #include "DataFormats/HLTReco/interface/TriggerEvent.h"
0029 #include "DataFormats/HLTReco/interface/TriggerObject.h"
0030 #include "DataFormats/HLTReco/interface/TriggerTypeDefs.h"
0031 #include "HLTrigger/HLTcore/interface/HLTConfigProvider.h"
0032 #include "CommonTools/TriggerUtils/interface/GenericTriggerEventFlag.h"
0033 #include "FWCore/Utilities/interface/EDGetToken.h"
0034
0035 #include "DQMOffline/JetMET/interface/JetMETDQMDCSFilter.h"
0036 #include "DataFormats/VertexReco/interface/Vertex.h"
0037 #include "DataFormats/VertexReco/interface/VertexFwd.h"
0038
0039 #include "DataFormats/Scalers/interface/DcsStatus.h"
0040
0041 #include "CondFormats/L1TObjects/interface/L1GtTriggerMenuFwd.h"
0042 #include "CondFormats/L1TObjects/interface/L1GtTriggerMenu.h"
0043 #include "CondFormats/DataRecord/interface/L1GtTriggerMenuRcd.h"
0044
0045 #include "DataFormats/ParticleFlowReco/interface/PFBlock.h"
0046 #include "DataFormats/ParticleFlowReco/interface/PFBlockElementTrack.h"
0047 #include "DataFormats/ParticleFlowReco/interface/PFBlockElementCluster.h"
0048 #include "DataFormats/ParticleFlowReco/interface/PFCluster.h"
0049
0050 #include "DataFormats/PatCandidates/interface/PackedCandidate.h"
0051
0052 #include <map>
0053 #include <string>
0054
0055
0056
0057
0058
0059
0060 class DQMPFCandidateAnalyzer : public DQMOneEDAnalyzer<> {
0061 public:
0062
0063 DQMPFCandidateAnalyzer(const edm::ParameterSet&);
0064
0065
0066 ~DQMPFCandidateAnalyzer() override;
0067
0068
0069
0070 void bookHistograms(DQMStore::IBooker&, edm::Run const&, edm::EventSetup const&) override;
0071
0072 void analyze(const edm::Event&, const edm::EventSetup&) override;
0073
0074
0075 void dqmBeginRun(const edm::Run&, const edm::EventSetup&) override;
0076
0077 private:
0078
0079 static bool jetSortingRule(reco::Jet x, reco::Jet y) { return x.pt() > y.pt(); }
0080
0081
0082
0083 edm::InputTag vertexTag_;
0084 edm::EDGetTokenT<std::vector<reco::Vertex>> vertexToken_;
0085
0086 edm::InputTag mInputCollection_;
0087 edm::InputTag theTriggerResultsLabel_;
0088 edm::InputTag hbheNoiseFilterResultTag_;
0089 edm::EDGetTokenT<bool> hbheNoiseFilterResultToken_;
0090 std::string HBHENoiseStringMiniAOD;
0091
0092 HLTConfigProvider FilterhltConfig_;
0093 edm::InputTag METFilterMiniAODLabel_;
0094 edm::EDGetTokenT<edm::TriggerResults> METFilterMiniAODToken_;
0095 edm::InputTag METFilterMiniAODLabel2_;
0096 edm::EDGetTokenT<edm::TriggerResults> METFilterMiniAODToken2_;
0097
0098 bool hbhenoifilterdecision;
0099 int miniaodfilterindex;
0100
0101 int miniaodfilterdec;
0102
0103 edm::EDGetTokenT<std::vector<reco::PFCandidate>> pflowToken_;
0104 edm::EDGetTokenT<std::vector<pat::PackedCandidate>> pflowPackedToken_;
0105
0106 std::string candidateType_;
0107
0108 bool isMiniAO_;
0109
0110
0111 JetMETDQMDCSFilter* DCSFilter_;
0112
0113 edm::ParameterSet cleaningParameters_;
0114 std::vector<edm::ParameterSet> diagnosticsParameters_;
0115
0116 double ptMinCand_;
0117
0118 double hcalMin_;
0119
0120 MonitorElement* m_HOverTrackP_trackPtVsEta;
0121 MonitorElement* m_HOverTrackPVsTrackP_Barrel;
0122 MonitorElement* m_HOverTrackPVsTrackP_EndCap;
0123
0124 MonitorElement* m_HOverTrackPVsTrackPt_Barrel;
0125 MonitorElement* m_HOverTrackPVsTrackPt_EndCap;
0126
0127 MonitorElement* m_HOverTrackPVsEta_hPt_1_10;
0128 MonitorElement* m_HOverTrackPVsEta_hPt_10_20;
0129 MonitorElement* m_HOverTrackPVsEta_hPt_20_50;
0130 MonitorElement* m_HOverTrackPVsEta_hPt_50;
0131
0132 MonitorElement* m_HOverTrackP_Barrel_hPt_1_10;
0133 MonitorElement* m_HOverTrackP_Barrel_hPt_10_20;
0134 MonitorElement* m_HOverTrackP_Barrel_hPt_20_50;
0135 MonitorElement* m_HOverTrackP_Barrel_hPt_50;
0136
0137 MonitorElement* m_HOverTrackP_EndCap_hPt_1_10;
0138 MonitorElement* m_HOverTrackP_EndCap_hPt_10_20;
0139 MonitorElement* m_HOverTrackP_EndCap_hPt_20_50;
0140 MonitorElement* m_HOverTrackP_EndCap_hPt_50;
0141
0142 MonitorElement* mProfileIsoPFChHad_HadPtCentral;
0143 MonitorElement* mProfileIsoPFChHad_HadPtEndcap;
0144 MonitorElement* mProfileIsoPFChHad_EMPtCentral;
0145 MonitorElement* mProfileIsoPFChHad_EMPtEndcap;
0146 MonitorElement* mProfileIsoPFChHad_TrackPt;
0147
0148 MonitorElement* mProfileIsoPFChHad_HcalOccupancyCentral;
0149 MonitorElement* mProfileIsoPFChHad_HcalOccupancyEndcap;
0150 MonitorElement* mProfileIsoPFChHad_EcalOccupancyCentral;
0151 MonitorElement* mProfileIsoPFChHad_EcalOccupancyEndcap;
0152 MonitorElement* mProfileIsoPFChHad_TrackOccupancy;
0153
0154
0155 std::vector<MonitorElement*> occupancyPFCand_, ptPFCand_, multiplicityPFCand_;
0156 std::vector<std::string> occupancyPFCand_name_, ptPFCand_name_, multiplicityPFCand_name_;
0157 std::vector<MonitorElement*> occupancyPFCand_puppiNolepWeight_, ptPFCand_puppiNolepWeight_;
0158 std::vector<std::string> occupancyPFCand_name_puppiNolepWeight_, ptPFCand_name_puppiNolepWeight_;
0159 std::vector<double> etaMinPFCand_, etaMaxPFCand_;
0160 std::vector<int> typePFCand_, countsPFCand_;
0161
0162
0163 std::vector<MonitorElement*> occupancyPFCandRECO_, ptPFCandRECO_, multiplicityPFCandRECO_;
0164 std::vector<std::string> occupancyPFCand_nameRECO_, ptPFCand_nameRECO_, multiplicityPFCand_nameRECO_;
0165 std::vector<double> etaMinPFCandRECO_, etaMaxPFCandRECO_;
0166 std::vector<int> typePFCandRECO_, countsPFCandRECO_;
0167
0168 int numPV_;
0169 int verbose_;
0170
0171 int LSBegin_;
0172 int LSEnd_;
0173
0174 bool bypassAllPVChecks_;
0175 bool bypassAllDCSChecks_;
0176
0177 std::map<std::string, MonitorElement*> map_of_MEs;
0178
0179 bool isMiniAOD_;
0180 };
0181 #endif