00001 #ifndef ValidationRecoJetsCaloJetTester_h 00002 #define ValidationRecoJetsCaloJetTester_h 00003 00004 // Producer for validation histograms for CaloJet objects 00005 // F. Ratnikov, Sept. 7, 2006 00006 // Modified by J F Novak July 10, 2008 00007 // $Id: CaloJetTester.h,v 1.17 2009/12/18 20:45:13 wmtan 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 CaloJet; 00016 class GenJet; 00017 } 00018 00019 class MonitorElement; 00020 00021 class CaloJetTester : public edm::EDAnalyzer { 00022 public: 00023 00024 CaloJetTester (const edm::ParameterSet&); 00025 ~CaloJetTester(); 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::CaloJet& fCaloJet); 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 // CaloJet specific 00096 MonitorElement* mMaxEInEmTowers; 00097 MonitorElement* mMaxEInHadTowers; 00098 MonitorElement* mHadEnergyInHO; 00099 MonitorElement* mHadEnergyInHB; 00100 MonitorElement* mHadEnergyInHF; 00101 MonitorElement* mHadEnergyInHE; 00102 MonitorElement* mHadEnergyInHO_80; 00103 MonitorElement* mHadEnergyInHB_80; 00104 MonitorElement* mHadEnergyInHE_80; 00105 MonitorElement* mHadEnergyInHO_3000; 00106 MonitorElement* mHadEnergyInHB_3000; 00107 MonitorElement* mHadEnergyInHE_3000; 00108 MonitorElement* mEmEnergyInEB; 00109 MonitorElement* mEmEnergyInEE; 00110 MonitorElement* mEmEnergyInHF; 00111 MonitorElement* mEmEnergyInEB_80; 00112 MonitorElement* mEmEnergyInEE_80; 00113 MonitorElement* mEmEnergyInEB_3000; 00114 MonitorElement* mEmEnergyInEE_3000; 00115 MonitorElement* mEnergyFractionHadronic; 00116 MonitorElement* mEnergyFractionEm; 00117 MonitorElement* mHFTotal; 00118 MonitorElement* mHFTotal_80; 00119 MonitorElement* mHFTotal_3000; 00120 MonitorElement* mHFLong; 00121 MonitorElement* mHFLong_80; 00122 MonitorElement* mHFLong_3000; 00123 MonitorElement* mHFShort; 00124 MonitorElement* mHFShort_80; 00125 MonitorElement* mHFShort_3000; 00126 MonitorElement* mN90; 00127 00128 // pthat 00129 MonitorElement* mPthat_80; 00130 MonitorElement* mPthat_3000; 00131 00132 // GenJet Generic Jet Parameters 00133 MonitorElement* mGenEta; 00134 MonitorElement* mGenPhi; 00135 MonitorElement* mGenPt; 00136 MonitorElement* mGenPt_80; 00137 MonitorElement* mGenPt_3000; 00138 00139 // GenJet Leading Jet Parameters 00140 MonitorElement* mGenEtaFirst; 00141 MonitorElement* mGenPhiFirst; 00142 00143 // CaloJet<->GenJet matching 00144 MonitorElement* mAllGenJetsPt; 00145 MonitorElement* mMatchedGenJetsPt; 00146 MonitorElement* mAllGenJetsEta; 00147 MonitorElement* mMatchedGenJetsEta; 00148 MonitorElement* mGenJetMatchEnergyFraction; 00149 MonitorElement* mReverseMatchEnergyFraction; 00150 MonitorElement* mRMatch; 00151 MonitorElement* mDeltaEta; 00152 MonitorElement* mDeltaPhi; 00153 MonitorElement* mEScale; 00154 MonitorElement* mlinEScale; //new 00155 MonitorElement* mDeltaE; 00156 00157 MonitorElement* mEScale_pt10; //new 00158 MonitorElement* mEScaleFineBin; //new 00159 00160 MonitorElement* mpTScaleB_s; 00161 MonitorElement* mpTScaleE_s; 00162 MonitorElement* mpTScaleF_s; 00163 MonitorElement* mpTScaleB_d; 00164 MonitorElement* mpTScaleE_d; 00165 MonitorElement* mpTScaleF_d; 00166 00167 MonitorElement* mpTScale_60_120_s; 00168 MonitorElement* mpTScale_200_300_s; 00169 MonitorElement* mpTScale_600_900_s; 00170 MonitorElement* mpTScale_2700_3500_s; 00171 00172 MonitorElement* mpTScale_60_120_d; 00173 MonitorElement* mpTScale_200_300_d; 00174 MonitorElement* mpTScale_600_900_d; 00175 MonitorElement* mpTScale_2700_3500_d; 00176 00177 MonitorElement* mpTScale1DB_60_120; 00178 MonitorElement* mpTScale1DE_60_120; 00179 MonitorElement* mpTScale1DF_60_120; 00180 MonitorElement* mpTScale1DB_200_300; 00181 MonitorElement* mpTScale1DE_200_300; 00182 MonitorElement* mpTScale1DF_200_300; 00183 MonitorElement* mpTScale1DB_600_900; 00184 MonitorElement* mpTScale1DE_600_900; 00185 MonitorElement* mpTScale1DF_600_900; 00186 MonitorElement* mpTScale1DB_2700_3500; 00187 MonitorElement* mpTScale1DE_2700_3500; 00188 MonitorElement* mpTScale1DF_2700_3500; 00189 MonitorElement* mpTScale1D_60_120; 00190 MonitorElement* mpTScale1D_200_300; 00191 MonitorElement* mpTScale1D_600_900; 00192 MonitorElement* mpTScale1D_2700_3500; 00193 00194 MonitorElement* mDelEta; 00195 MonitorElement* mDelPhi; 00196 MonitorElement* mDelPt; 00197 00198 // Matching parameters 00199 double mMatchGenPtThreshold; 00200 double mGenEnergyFractionThreshold; 00201 double mReverseEnergyFractionThreshold; 00202 double mRThreshold; 00203 00204 // Switch on/off unimportant histogram 00205 std::string mTurnOnEverything; 00206 00207 // Energy Profiles 00208 MonitorElement* mHadEnergyProfile; 00209 MonitorElement* mEmEnergyProfile; 00210 MonitorElement* mJetEnergyProfile; 00211 MonitorElement* mHadJetEnergyProfile; 00212 MonitorElement* mEMJetEnergyProfile; 00213 00214 // CaloMET 00215 MonitorElement* mCaloMEx; 00216 MonitorElement* mCaloMEx_3000; 00217 MonitorElement* mCaloMEy; 00218 MonitorElement* mCaloMEy_3000; 00219 MonitorElement* mCaloMET; 00220 MonitorElement* mCaloMET_3000; 00221 MonitorElement* mCaloMETPhi; 00222 MonitorElement* mCaloSumET; 00223 MonitorElement* mCaloSumET_3000; 00224 MonitorElement* mCaloMETSig; 00225 MonitorElement* mCaloMETSig_3000; 00226 00227 // RecHits 00228 MonitorElement* mHBEne; 00229 MonitorElement* mHBTime; 00230 MonitorElement* mHEEne; 00231 MonitorElement* mHETime; 00232 MonitorElement* mHOEne; 00233 MonitorElement* mHOTime; 00234 MonitorElement* mHFEne; 00235 MonitorElement* mHFTime; 00236 MonitorElement* mEBEne; 00237 MonitorElement* mEBTime; 00238 MonitorElement* mEEEne; 00239 MonitorElement* mEETime; 00240 00241 00242 }; 00243 #endif