File indexing completed on 2024-04-06 12:09:26
0001 #ifndef JetAnalyzer_HeavyIons_H
0002 #define JetAnalyzer_HeavyIons_H
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 #include <memory>
0015 #include <fstream>
0016 #include "FWCore/Framework/interface/Frameworkfwd.h"
0017 #include "FWCore/Framework/interface/Event.h"
0018 #include "FWCore/Framework/interface/MakerMacros.h"
0019 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0020 #include "DQMServices/Core/interface/DQMStore.h"
0021
0022 #include "DataFormats/Common/interface/TriggerResults.h"
0023 #include "DataFormats/HLTReco/interface/TriggerEvent.h"
0024 #include "DataFormats/HLTReco/interface/TriggerObject.h"
0025 #include "DataFormats/HLTReco/interface/TriggerTypeDefs.h"
0026 #include "HLTrigger/HLTcore/interface/HLTConfigProvider.h"
0027 #include "CommonTools/TriggerUtils/interface/GenericTriggerEventFlag.h"
0028 #include "FWCore/Utilities/interface/EDGetToken.h"
0029
0030 #include "DataFormats/JetReco/interface/Jet.h"
0031 #include "DataFormats/JetReco/interface/CaloJet.h"
0032 #include "DataFormats/JetReco/interface/CaloJetCollection.h"
0033 #include "DataFormats/JetReco/interface/GenJet.h"
0034 #include "DataFormats/JetReco/interface/GenJetCollection.h"
0035 #include "DataFormats/JetReco/interface/JPTJet.h"
0036 #include "DataFormats/JetReco/interface/JPTJetCollection.h"
0037 #include "DataFormats/JetReco/interface/PFJet.h"
0038
0039 #include "DataFormats/CaloTowers/interface/CaloTower.h"
0040 #include "DataFormats/CaloTowers/interface/CaloTowerCollection.h"
0041 #include "DataFormats/Candidate/interface/Candidate.h"
0042 #include "DataFormats/Candidate/interface/CandidateFwd.h"
0043 #include "DataFormats/Candidate/interface/CandidateWithRef.h"
0044
0045
0046 #include "DataFormats/JetReco/interface/BasicJet.h"
0047 #include "DataFormats/JetReco/interface/BasicJetCollection.h"
0048
0049 #include "DataFormats/ParticleFlowCandidate/interface/PFCandidate.h"
0050
0051 #include "DataFormats/HeavyIonEvent/interface/VoronoiBackground.h"
0052 #include "RecoHI/HiJetAlgos/interface/UEParameters.h"
0053
0054 #include "DataFormats/HeavyIonEvent/interface/Centrality.h"
0055
0056 #include "RecoJets/JetProducers/interface/JetIDHelper.h"
0057 #include "DQMOffline/JetMET/interface/JetMETDQMDCSFilter.h"
0058 #include "DataFormats/VertexReco/interface/Vertex.h"
0059 #include "DataFormats/VertexReco/interface/VertexFwd.h"
0060 #include "DataFormats/DetId/interface/DetId.h"
0061
0062 #include "DataFormats/Scalers/interface/DcsStatus.h"
0063 #include "PhysicsTools/SelectorUtils/interface/JetIDSelectionFunctor.h"
0064 #include "PhysicsTools/SelectorUtils/interface/PFJetIDSelectionFunctor.h"
0065 #include "DQMServices/Core/interface/DQMEDAnalyzer.h"
0066 #include <map>
0067 #include <string>
0068
0069 const Int_t MAXPARTICLE = 10000;
0070 const Double_t BarrelEta = 2.0;
0071 const Double_t EndcapEta = 3.0;
0072 const Double_t ForwardEta = 5.0;
0073
0074 class JetAnalyzer_HeavyIons : public DQMEDAnalyzer {
0075 public:
0076 explicit JetAnalyzer_HeavyIons(const edm::ParameterSet&);
0077 ~JetAnalyzer_HeavyIons() override;
0078
0079 void analyze(const edm::Event&, const edm::EventSetup&) override;
0080 void bookHistograms(DQMStore::IBooker&, edm::Run const&, edm::EventSetup const&) override;
0081
0082 private:
0083 static constexpr int fourierOrder_ = 5;
0084 static constexpr int etaBins_ = 7;
0085 static constexpr int ptBins_ = 7;
0086
0087
0088 const double edge_pseudorapidity[etaBins_ + 1] = {-5, -3, -2.1, -1.3, 1.3, 2.1, 3, 5};
0089 const int ptBin[ptBins_ + 1] = {0, 20, 40, 60, 100, 150, 300, 99999};
0090
0091 static constexpr int nedge_pseudorapidity = etaBins_ + 1;
0092
0093 edm::InputTag mInputCollection;
0094 edm::InputTag mInputVtxCollection;
0095 edm::InputTag mInputPFCandCollection;
0096 edm::InputTag mInputCsCandCollection;
0097
0098 std::string mOutputFile;
0099 std::string JetType;
0100 std::string UEAlgo;
0101 edm::InputTag Background;
0102 double mRecoJetPtThreshold;
0103 double mReverseEnergyFractionThreshold;
0104 double mRThreshold;
0105 std::string JetCorrectionService;
0106
0107 edm::InputTag centralityTag_;
0108 edm::EDGetTokenT<reco::Centrality> centralityToken;
0109 edm::Handle<reco::Centrality> centrality_;
0110
0111 edm::InputTag centralityBinTag_;
0112 edm::EDGetTokenT<int> centralityBinToken;
0113 edm::Handle<int> centralityBin_;
0114
0115
0116 edm::EDGetTokenT<std::vector<reco::Vertex>> pvToken_;
0117 edm::EDGetTokenT<CaloTowerCollection> caloTowersToken_;
0118 edm::EDGetTokenT<reco::CaloJetCollection> caloJetsToken_;
0119 edm::EDGetTokenT<reco::PFJetCollection> pfJetsToken_;
0120 edm::EDGetTokenT<reco::BasicJetCollection> basicJetsToken_;
0121 edm::EDGetTokenT<reco::JPTJetCollection> jptJetsToken_;
0122 edm::EDGetTokenT<reco::PFCandidateCollection> pfCandToken_;
0123 edm::EDGetTokenT<reco::PFCandidateCollection> csCandToken_;
0124 edm::EDGetTokenT<reco::CandidateView> pfCandViewToken_;
0125 edm::EDGetTokenT<reco::CandidateView> caloCandViewToken_;
0126
0127 edm::EDGetTokenT<std::vector<reco::Vertex>> hiVertexToken_;
0128
0129 edm::EDGetTokenT<std::vector<double>> etaToken_;
0130 edm::EDGetTokenT<std::vector<double>> rhoToken_;
0131 edm::EDGetTokenT<std::vector<double>> rhomToken_;
0132
0133 MonitorElement* mNPFpart;
0134 MonitorElement* mPFPt;
0135 MonitorElement* mPFEta;
0136 MonitorElement* mPFPhi;
0137
0138 MonitorElement* mPFArea;
0139 MonitorElement* mPFDeltaR;
0140 MonitorElement* mPFDeltaR_Scaled_R;
0141
0142 MonitorElement* mNCalopart;
0143 MonitorElement* mCaloPt;
0144 MonitorElement* mCaloEta;
0145 MonitorElement* mCaloPhi;
0146 MonitorElement* mCaloArea;
0147 MonitorElement* mSumpt;
0148 MonitorElement* mSumPFPt;
0149 MonitorElement* mSumPFPt_eta;
0150
0151 MonitorElement* mSumCaloPt;
0152 MonitorElement* mSumCaloPt_eta;
0153
0154 MonitorElement* mSumSquaredPFPt;
0155 MonitorElement* mSumSquaredPFPt_eta;
0156
0157 MonitorElement* mSumSquaredCaloPt;
0158 MonitorElement* mSumSquaredCaloPt_eta;
0159
0160
0161 MonitorElement* mNvtx;
0162 MonitorElement* mHF;
0163
0164
0165 MonitorElement* mSumPFPt_HF;
0166 MonitorElement* mSumCaloPt_HF;
0167
0168 MonitorElement* mSumPFPtEtaDep[etaBins_];
0169 MonitorElement* mSumCaloPtEtaDep[etaBins_];
0170
0171
0172 MonitorElement* mEta;
0173 MonitorElement* mPhi;
0174 MonitorElement* mPt;
0175 MonitorElement* mP;
0176 MonitorElement* mEnergy;
0177 MonitorElement* mMass;
0178 MonitorElement* mConstituents;
0179 MonitorElement* mJetArea;
0180 MonitorElement* mjetpileup;
0181 MonitorElement* mNJets;
0182 MonitorElement* mNJets_40;
0183
0184 MonitorElement* mRhoDist_vsEta;
0185 MonitorElement* mRhoMDist_vsEta;
0186 MonitorElement* mRhoDist_vsPt;
0187 MonitorElement* mRhoMDist_vsPt;
0188 MonitorElement* mRhoDist_vsCent[etaBins_];
0189 MonitorElement* mRhoMDist_vsCent[etaBins_];
0190 MonitorElement* rhoEtaRange;
0191 MonitorElement* mCSCandpT_vsPt[etaBins_];
0192 MonitorElement* mCSCand_corrPFcand[etaBins_];
0193 MonitorElement* mSubtractedEFrac[ptBins_][etaBins_];
0194 MonitorElement* mSubtractedE[ptBins_][etaBins_];
0195
0196 MonitorElement* mPFCandpT_vs_eta_Unknown;
0197 MonitorElement* mPFCandpT_vs_eta_ChargedHadron;
0198 MonitorElement* mPFCandpT_vs_eta_electron;
0199 MonitorElement* mPFCandpT_vs_eta_muon;
0200 MonitorElement* mPFCandpT_vs_eta_photon;
0201 MonitorElement* mPFCandpT_vs_eta_NeutralHadron;
0202 MonitorElement* mPFCandpT_vs_eta_HadE_inHF;
0203 MonitorElement* mPFCandpT_vs_eta_EME_inHF;
0204
0205 MonitorElement* mPFCandpT_Barrel_Unknown;
0206 MonitorElement* mPFCandpT_Barrel_ChargedHadron;
0207 MonitorElement* mPFCandpT_Barrel_electron;
0208 MonitorElement* mPFCandpT_Barrel_muon;
0209 MonitorElement* mPFCandpT_Barrel_photon;
0210 MonitorElement* mPFCandpT_Barrel_NeutralHadron;
0211 MonitorElement* mPFCandpT_Barrel_HadE_inHF;
0212 MonitorElement* mPFCandpT_Barrel_EME_inHF;
0213
0214 MonitorElement* mPFCandpT_Endcap_Unknown;
0215 MonitorElement* mPFCandpT_Endcap_ChargedHadron;
0216 MonitorElement* mPFCandpT_Endcap_electron;
0217 MonitorElement* mPFCandpT_Endcap_muon;
0218 MonitorElement* mPFCandpT_Endcap_photon;
0219 MonitorElement* mPFCandpT_Endcap_NeutralHadron;
0220 MonitorElement* mPFCandpT_Endcap_HadE_inHF;
0221 MonitorElement* mPFCandpT_Endcap_EME_inHF;
0222
0223 MonitorElement* mPFCandpT_Forward_Unknown;
0224 MonitorElement* mPFCandpT_Forward_ChargedHadron;
0225 MonitorElement* mPFCandpT_Forward_electron;
0226 MonitorElement* mPFCandpT_Forward_muon;
0227 MonitorElement* mPFCandpT_Forward_photon;
0228 MonitorElement* mPFCandpT_Forward_NeutralHadron;
0229 MonitorElement* mPFCandpT_Forward_HadE_inHF;
0230 MonitorElement* mPFCandpT_Forward_EME_inHF;
0231
0232
0233
0234 bool isCaloJet;
0235 bool isJPTJet;
0236 bool isPFJet;
0237 };
0238
0239 #endif