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