00001 #ifndef ValidationRecoJetsPFJetTester_h 00002 #define ValidationRecoJetsPFJetTester_h 00003 00004 // Producer for validation histograms for PFJet objects 00005 // F. Ratnikov, Sept. 7, 2006 00006 // Modified by Chiyoung.Jeong Feb 2, 2010 00007 // $Id: PFJetTester.h,v 1.6 2010/02/03 16:39:53 chjeong Exp $ 00008 00009 #include <string> 00010 00011 #include "FWCore/Framework/interface/EDAnalyzer.h" 00012 #include "DQMServices/Core/interface/MonitorElement.h" 00013 00014 namespace reco { 00015 class PFJet; 00016 class GenJet; 00017 } 00018 00019 class MonitorElement; 00020 00021 class PFJetTester : public edm::EDAnalyzer { 00022 public: 00023 00024 PFJetTester (const edm::ParameterSet&); 00025 ~PFJetTester(); 00026 00027 virtual void analyze(const edm::Event&, const edm::EventSetup&); 00028 virtual void beginJob() ; 00029 virtual void endJob() ; 00030 00031 private: 00032 00033 void fillMatchHists (const reco::GenJet& fGenJet, const reco::PFJet& fPFJet); 00034 00035 edm::InputTag mInputCollection; 00036 edm::InputTag mInputGenCollection; 00037 std::string mOutputFile; 00038 edm::InputTag inputMETLabel_; 00039 std::string METType_; 00040 std::string inputGenMETLabel_; 00041 std::string inputCaloMETLabel_; 00042 00043 // count number of events 00044 MonitorElement* numberofevents; 00045 00046 // Generic Jet Parameters 00047 MonitorElement* mEta; 00048 MonitorElement* mEtaFineBin; 00049 MonitorElement* mEtaFineBin1p; 00050 MonitorElement* mEtaFineBin2p; 00051 MonitorElement* mEtaFineBin3p; 00052 MonitorElement* mEtaFineBin1m; 00053 MonitorElement* mEtaFineBin2m; 00054 MonitorElement* mEtaFineBin3m; 00055 MonitorElement* mPhi; 00056 MonitorElement* mPhiFineBin; 00057 MonitorElement* mE; 00058 MonitorElement* mE_80; 00059 MonitorElement* mE_3000; 00060 MonitorElement* mP; 00061 MonitorElement* mP_80; 00062 MonitorElement* mP_3000; 00063 MonitorElement* mPt; 00064 MonitorElement* mPt_80; 00065 MonitorElement* mPt_3000; 00066 MonitorElement* mMass; 00067 MonitorElement* mMass_80; 00068 MonitorElement* mMass_3000; 00069 MonitorElement* mConstituents; 00070 MonitorElement* mConstituents_80; 00071 MonitorElement* mConstituents_3000; 00072 MonitorElement* mHadTiming; 00073 MonitorElement* mEmTiming; 00074 00075 // Leading Jet Parameters 00076 MonitorElement* mEtaFirst; 00077 MonitorElement* mPhiFirst; 00078 MonitorElement* mEFirst; 00079 MonitorElement* mEFirst_80; 00080 MonitorElement* mEFirst_3000; 00081 MonitorElement* mPtFirst; 00082 MonitorElement* mPtFirst_80; 00083 MonitorElement* mPtFirst_3000; 00084 00085 MonitorElement* mNJetsEtaC; 00086 MonitorElement* mNJetsEtaF; 00087 00088 MonitorElement* mNJets1; 00089 MonitorElement* mNJets2; 00090 00091 // DiJet Parameters 00092 MonitorElement* mMjj; 00093 MonitorElement* mMjj_3000; 00094 00095 // PFJet specific 00096 MonitorElement* mChargedEmEnergy_80; 00097 MonitorElement* mChargedHadronEnergy_80; 00098 MonitorElement* mNeutralEmEnergy_80; 00099 MonitorElement* mNeutralHadronEnergy_80; 00100 00101 MonitorElement* mChargedEmEnergy_3000; 00102 MonitorElement* mChargedHadronEnergy_3000; 00103 MonitorElement* mNeutralEmEnergy_3000; 00104 MonitorElement* mNeutralHadronEnergy_3000; 00105 00106 MonitorElement* mChargedEmEnergyFraction; 00107 MonitorElement* mChargedHadronEnergyFraction; 00108 MonitorElement* mNeutralEmEnergyFraction; 00109 MonitorElement* mNeutralHadronEnergyFraction; 00110 00111 // MonitorElement* mMaxEInEmTowers; 00112 // MonitorElement* mMaxEInHadTowers; 00113 // MonitorElement* mHadEnergyInHO; 00114 // MonitorElement* mHadEnergyInHB; 00115 // MonitorElement* mHadEnergyInHF; 00116 // MonitorElement* mHadEnergyInHE; 00117 // MonitorElement* mHadEnergyInHO_80; 00118 // MonitorElement* mHadEnergyInHB_80; 00119 // MonitorElement* mHadEnergyInHE_80; 00120 // MonitorElement* mHadEnergyInHO_3000; 00121 // MonitorElement* mHadEnergyInHB_3000; 00122 // MonitorElement* mHadEnergyInHE_3000; 00123 // MonitorElement* mEmEnergyInEB; 00124 // MonitorElement* mEmEnergyInEE; 00125 // MonitorElement* mEmEnergyInHF; 00126 // MonitorElement* mEmEnergyInEB_80; 00127 // MonitorElement* mEmEnergyInEE_80; 00128 // MonitorElement* mEmEnergyInEB_3000; 00129 // MonitorElement* mEmEnergyInEE_3000; 00130 // MonitorElement* mEnergyFractionHadronic; 00131 // MonitorElement* mEnergyFractionEm; 00132 // MonitorElement* mHFTotal; 00133 // MonitorElement* mHFTotal_80; 00134 // MonitorElement* mHFTotal_3000; 00135 // MonitorElement* mHFLong; 00136 // MonitorElement* mHFLong_80; 00137 // MonitorElement* mHFLong_3000; 00138 // MonitorElement* mHFShort; 00139 // MonitorElement* mHFShort_80; 00140 // MonitorElement* mHFShort_3000; 00141 // MonitorElement* mN90; 00142 00143 // pthat 00144 MonitorElement* mPthat_80; 00145 MonitorElement* mPthat_3000; 00146 00147 // GenJet Generic Jet Parameters 00148 MonitorElement* mGenEta; 00149 MonitorElement* mGenPhi; 00150 MonitorElement* mGenPt; 00151 MonitorElement* mGenPt_80; 00152 MonitorElement* mGenPt_3000; 00153 00154 // GenJet Leading Jet Parameters 00155 MonitorElement* mGenEtaFirst; 00156 MonitorElement* mGenPhiFirst; 00157 00158 // PFJet<->GenJet matching 00159 MonitorElement* mAllGenJetsPt; 00160 MonitorElement* mMatchedGenJetsPt; 00161 MonitorElement* mAllGenJetsEta; 00162 MonitorElement* mMatchedGenJetsEta; 00163 MonitorElement* mGenJetMatchEnergyFraction; 00164 MonitorElement* mReverseMatchEnergyFraction; 00165 MonitorElement* mRMatch; 00166 MonitorElement* mDeltaEta; 00167 MonitorElement* mDeltaPhi; 00168 MonitorElement* mEScale; 00169 MonitorElement* mlinEScale; //new 00170 MonitorElement* mDeltaE; 00171 00172 MonitorElement* mEScale_pt10; //new 00173 MonitorElement* mEScaleFineBin; //new 00174 00175 MonitorElement* mpTScaleB_s; 00176 MonitorElement* mpTScaleE_s; 00177 MonitorElement* mpTScaleF_s; 00178 MonitorElement* mpTScaleB_d; 00179 MonitorElement* mpTScaleE_d; 00180 MonitorElement* mpTScaleF_d; 00181 00182 MonitorElement* mpTScale_60_120_s; 00183 MonitorElement* mpTScale_200_300_s; 00184 MonitorElement* mpTScale_600_900_s; 00185 MonitorElement* mpTScale_2700_3500_s; 00186 00187 MonitorElement* mpTScale_60_120_d; 00188 MonitorElement* mpTScale_200_300_d; 00189 MonitorElement* mpTScale_600_900_d; 00190 MonitorElement* mpTScale_2700_3500_d; 00191 00192 MonitorElement* mpTScale1DB_60_120; 00193 MonitorElement* mpTScale1DE_60_120; 00194 MonitorElement* mpTScale1DF_60_120; 00195 MonitorElement* mpTScale1DB_200_300; 00196 MonitorElement* mpTScale1DE_200_300; 00197 MonitorElement* mpTScale1DF_200_300; 00198 MonitorElement* mpTScale1DB_600_900; 00199 MonitorElement* mpTScale1DE_600_900; 00200 MonitorElement* mpTScale1DF_600_900; 00201 MonitorElement* mpTScale1DB_2700_3500; 00202 MonitorElement* mpTScale1DE_2700_3500; 00203 MonitorElement* mpTScale1DF_2700_3500; 00204 MonitorElement* mpTScale1D_60_120; 00205 MonitorElement* mpTScale1D_200_300; 00206 MonitorElement* mpTScale1D_600_900; 00207 MonitorElement* mpTScale1D_2700_3500; 00208 00209 MonitorElement* mDelEta; 00210 MonitorElement* mDelPhi; 00211 MonitorElement* mDelPt; 00212 00213 // Matching parameters 00214 double mMatchGenPtThreshold; 00215 double mGenEnergyFractionThreshold; 00216 double mReverseEnergyFractionThreshold; 00217 double mRThreshold; 00218 00219 // Switch on/off unimportant histogram 00220 std::string mTurnOnEverything; 00221 00222 // Energy Profiles 00223 MonitorElement* mHadEnergyProfile; 00224 MonitorElement* mEmEnergyProfile; 00225 MonitorElement* mJetEnergyProfile; 00226 // MonitorElement* mHadJetEnergyProfile; 00227 // MonitorElement* mEMJetEnergyProfile; 00228 00229 // CaloMET 00230 MonitorElement* mCaloMEx; 00231 MonitorElement* mCaloMEx_3000; 00232 MonitorElement* mCaloMEy; 00233 MonitorElement* mCaloMEy_3000; 00234 MonitorElement* mCaloMET; 00235 MonitorElement* mCaloMET_3000; 00236 MonitorElement* mCaloMETPhi; 00237 MonitorElement* mCaloSumET; 00238 MonitorElement* mCaloSumET_3000; 00239 MonitorElement* mCaloMETSig; 00240 MonitorElement* mCaloMETSig_3000; 00241 00242 // RecHits 00243 MonitorElement* mHBEne; 00244 MonitorElement* mHBTime; 00245 MonitorElement* mHEEne; 00246 MonitorElement* mHETime; 00247 MonitorElement* mHOEne; 00248 MonitorElement* mHOTime; 00249 MonitorElement* mHFEne; 00250 MonitorElement* mHFTime; 00251 MonitorElement* mEBEne; 00252 MonitorElement* mEBTime; 00253 MonitorElement* mEEEne; 00254 MonitorElement* mEETime; 00255 00256 00257 }; 00258 #endif