00001
00002
00003
00004
00005
00006
00007
00008
00009 #include "DQMOffline/JetMET/interface/JetAnalyzer.h"
00010 #include "DataFormats/Common/interface/Handle.h"
00011
00012 #include "DataFormats/JetReco/interface/CaloJetCollection.h"
00013 #include "DataFormats/JetReco/interface/CaloJet.h"
00014
00015 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00016
00017
00018 #include <string>
00019 using namespace edm;
00020
00021
00022 JetAnalyzer::JetAnalyzer(const edm::ParameterSet& pSet) {
00023
00024 parameters = pSet;
00025 _leadJetFlag = 0;
00026 _JetLoPass = 0;
00027 _JetHiPass = 0;
00028 _ptThreshold = 20.;
00029 _n90HitsMin =0;
00030 _fHPDMax=1.;
00031 _resEMFMin=0.;
00032 _n90HitsMinLoose =0;
00033 _fHPDMaxLoose=1.;
00034 _resEMFMinLoose=0.;
00035 _n90HitsMinTight =0;
00036 _fHPDMaxTight=1.;
00037 _resEMFMinTight=0.;
00038 _sigmaEtaMinTight=-999.;
00039 _sigmaPhiMinTight=-999.;
00040
00041 }
00042
00043
00044 JetAnalyzer::~JetAnalyzer() { }
00045
00046
00047
00048 void JetAnalyzer::beginJob(DQMStore * dbe) {
00049
00050 jetname = "jetAnalyzer";
00051
00052 LogTrace(jetname)<<"[JetAnalyzer] Parameters initialization";
00053 dbe->setCurrentFolder("JetMET/Jet/"+_source);
00054
00055 jetME = dbe->book1D("jetReco", "jetReco", 3, 1, 4);
00056 jetME->setBinLabel(1,"CaloJets",1);
00057
00058
00059 jetID = new reco::helper::JetIDHelper(parameters.getParameter<ParameterSet>("JetIDParams"));
00060
00061
00062 fillJIDPassFrac = parameters.getParameter<int>("fillJIDPassFrac");
00063 makedijetselection = parameters.getParameter<int>("makedijetselection");
00064
00065
00066 etaBin = parameters.getParameter<int>("etaBin");
00067 etaMin = parameters.getParameter<double>("etaMin");
00068 etaMax = parameters.getParameter<double>("etaMax");
00069
00070
00071 phiBin = parameters.getParameter<int>("phiBin");
00072 phiMin = parameters.getParameter<double>("phiMin");
00073 phiMax = parameters.getParameter<double>("phiMax");
00074
00075
00076 ptBin = parameters.getParameter<int>("ptBin");
00077 ptMin = parameters.getParameter<double>("ptMin");
00078 ptMax = parameters.getParameter<double>("ptMax");
00079
00080
00081 eBin = parameters.getParameter<int>("eBin");
00082 eMin = parameters.getParameter<double>("eMin");
00083 eMax = parameters.getParameter<double>("eMax");
00084
00085
00086 pBin = parameters.getParameter<int>("pBin");
00087 pMin = parameters.getParameter<double>("pMin");
00088 pMax = parameters.getParameter<double>("pMax");
00089
00090
00091 _ptThreshold = parameters.getParameter<double>("ptThreshold");
00092 _n90HitsMin = parameters.getParameter<int>("n90HitsMin");
00093 _fHPDMax = parameters.getParameter<double>("fHPDMax");
00094 _resEMFMin = parameters.getParameter<double>("resEMFMin");
00095 _sigmaEtaMinTight = parameters.getParameter<double>("sigmaEtaMinTight");
00096 _sigmaPhiMinTight = parameters.getParameter<double>("sigmaPhiMinTight");
00097
00098 _n90HitsMinLoose = parameters.getParameter<int>("n90HitsMinLoose");
00099 _fHPDMaxLoose = parameters.getParameter<double>("fHPDMaxLoose");
00100 _resEMFMinLoose = parameters.getParameter<double>("resEMFMinLoose");
00101 _n90HitsMinTight = parameters.getParameter<int>("n90HitsMinTight");
00102 _fHPDMaxTight = parameters.getParameter<double>("fHPDMaxTight");
00103 _resEMFMinTight = parameters.getParameter<double>("resEMFMinTight");
00104
00105
00106
00107 mPt = dbe->book1D("Pt", "Pt", ptBin, ptMin, ptMax);
00108 mEta = dbe->book1D("Eta", "Eta", etaBin, etaMin, etaMax);
00109 mPhi = dbe->book1D("Phi", "Phi", phiBin, phiMin, phiMax);
00110 mConstituents = dbe->book1D("Constituents", "# of Constituents", 50, 0, 100);
00111 mHFrac = dbe->book1D("HFrac", "HFrac", 120, -0.1, 1.1);
00112 mEFrac = dbe->book1D("EFrac", "EFrac", 120, -0.1, 1.1);
00113
00114
00115
00116
00117
00118 mPhiVSEta = dbe->book2D("PhiVSEta", "PhiVSEta", 50, etaMin, etaMax, 24, phiMin, phiMax);
00119 if(makedijetselection!=1){
00120 mPt_1 = dbe->book1D("Pt1", "Pt1", 20, 0, 100);
00121 mPt_2 = dbe->book1D("Pt2", "Pt2", 100, 0, 500);
00122 mPt_3 = dbe->book1D("Pt3", "Pt3", 100, 0, 5000);
00123
00124 mPt_Lo = dbe->book1D("Pt_Lo", "Pt (Pass Low Pt Jet Trigger)", 20, 0, 100);
00125 mEta_Lo = dbe->book1D("Eta_Lo", "Eta (Pass Low Pt Jet Trigger)", etaBin, etaMin, etaMax);
00126 mPhi_Lo = dbe->book1D("Phi_Lo", "Phi (Pass Low Pt Jet Trigger)", phiBin, phiMin, phiMax);
00127
00128 mPt_Hi = dbe->book1D("Pt_Hi", "Pt (Pass Hi Pt Jet Trigger)", 100, 0, 500);
00129 mEta_Hi = dbe->book1D("Eta_Hi", "Eta (Pass Hi Pt Jet Trigger)", etaBin, etaMin, etaMax);
00130 mPhi_Hi = dbe->book1D("Phi_Hi", "Phi (Pass Hi Pt Jet Trigger)", phiBin, phiMin, phiMax);
00131 mNJets = dbe->book1D("NJets", "Number of Jets", 100, 0, 100);
00132
00133 mConstituents_Barrel = dbe->book1D("Constituents_Barrel", "Constituents Barrel above", 50, 0, 100);
00134 mHFrac_Barrel = dbe->book1D("HFrac_Barrel", "HFrac Barrel", 100, 0, 1);
00135 mEFrac_Barrel = dbe->book1D("EFrac_Barrel", "EFrac Barrel", 110, -0.05, 1.05);
00136
00137
00138
00139
00140
00141 mConstituents_EndCap = dbe->book1D("Constituents_EndCap", "Constituents EndCap above", 50, 0, 100);
00142 mHFrac_EndCap = dbe->book1D("HFrac_EndCap", "HFrac EndCap", 100, 0, 1);
00143 mEFrac_EndCap = dbe->book1D("EFrac_EndCap", "EFrac EndCap", 110, -0.05, 1.05);
00144
00145
00146
00147
00148
00149 mConstituents_Forward = dbe->book1D("Constituents_Forward", "Constituents Forward above", 50, 0, 100);
00150 mHFrac_Forward = dbe->book1D("HFrac_Forward", "HFrac Forward", 100, 0, 1);
00151 mEFrac_Forward = dbe->book1D("EFrac_Forward", "EFrac Forward", 110, -0.05, 1.05);
00152
00153
00154
00155
00156
00157 mPt_Barrel_Hi = dbe->book1D("Pt_Barrel_Hi", "Pt Barrel (Pass Hi Pt Jet Trigger)", 100, 0, 500);
00158 mPhi_Barrel_Hi = dbe->book1D("Phi_Barrel_Hi", "Phi Barrel (Pass Hi Pt Jet Trigger)", phiBin, phiMin, phiMax);
00159
00160
00161
00162 mPt_EndCap_Hi = dbe->book1D("Pt_EndCap_Hi", "Pt EndCap (Pass Hi Pt Jet Trigger)", 100, 0, 500);
00163 mPhi_EndCap_Hi = dbe->book1D("Phi_EndCap_Hi", "Phi EndCap (Pass Hi Pt Jet Trigger)", phiBin, phiMin, phiMax);
00164
00165
00166
00167 mPt_Forward_Hi = dbe->book1D("Pt_Forward_Hi", "Pt Forward (Pass Hi Pt Jet Trigger)", 100, 0, 500);
00168 mPhi_Forward_Hi = dbe->book1D("Phi_Forward_Hi", "Phi Forward (Pass Hi Pt Jet Trigger)", phiBin, phiMin, phiMax);
00169
00170
00171
00172 mPhi_Barrel = dbe->book1D("Phi_Barrel", "Phi_Barrel", phiBin, phiMin, phiMax);
00173
00174 mPt_Barrel = dbe->book1D("Pt_Barrel", "Pt_Barrel", ptBin, ptMin, ptMax);
00175
00176 mPhi_EndCap = dbe->book1D("Phi_EndCap", "Phi_EndCap", phiBin, phiMin, phiMax);
00177
00178 mPt_EndCap = dbe->book1D("Pt_EndCap", "Pt_EndCap", ptBin, ptMin, ptMax);
00179
00180 mPhi_Forward = dbe->book1D("Phi_Forward", "Phi_Forward", phiBin, phiMin, phiMax);
00181
00182 mPt_Forward = dbe->book1D("Pt_Forward", "Pt_Forward", ptBin, ptMin, ptMax);
00183
00184
00185 mEtaFirst = dbe->book1D("EtaFirst", "EtaFirst", 100, -5, 5);
00186 mPhiFirst = dbe->book1D("PhiFirst", "PhiFirst", 70, -3.5, 3.5);
00187
00188 mPtFirst = dbe->book1D("PtFirst", "PtFirst", 100, 0, 500);
00189 if(fillJIDPassFrac==1){
00190 mLooseJIDPassFractionVSeta = dbe->bookProfile("LooseJIDPassFractionVSeta","LooseJIDPassFractionVSeta",etaBin, etaMin, etaMax,0.,1.2);
00191 mLooseJIDPassFractionVSpt = dbe->bookProfile("LooseJIDPassFractionVSpt","LooseJIDPassFractionVSpt",ptBin, ptMin, ptMax,0.,1.2);
00192 mTightJIDPassFractionVSeta = dbe->bookProfile("TightJIDPassFractionVSeta","TightJIDPassFractionVSeta",etaBin, etaMin, etaMax,0.,1.2);
00193 mTightJIDPassFractionVSpt = dbe->bookProfile("TightJIDPassFractionVSpt","TightJIDPassFractionVSpt",ptBin, ptMin, ptMax,0.,1.2);
00194
00195
00196 }
00197 }
00198
00199 mMaxEInEmTowers = dbe->book1D("MaxEInEmTowers", "MaxEInEmTowers", 100, 0, 100);
00200 mMaxEInHadTowers = dbe->book1D("MaxEInHadTowers", "MaxEInHadTowers", 100, 0, 100);
00201 if(makedijetselection!=1) {
00202 mHadEnergyInHO = dbe->book1D("HadEnergyInHO", "HadEnergyInHO", 100, 0, 10);
00203 mHadEnergyInHB = dbe->book1D("HadEnergyInHB", "HadEnergyInHB", 100, 0, 50);
00204 mHadEnergyInHF = dbe->book1D("HadEnergyInHF", "HadEnergyInHF", 100, 0, 50);
00205 mHadEnergyInHE = dbe->book1D("HadEnergyInHE", "HadEnergyInHE", 100, 0, 100);
00206 mEmEnergyInEB = dbe->book1D("EmEnergyInEB", "EmEnergyInEB", 100, 0, 50);
00207 mEmEnergyInEE = dbe->book1D("EmEnergyInEE", "EmEnergyInEE", 100, 0, 50);
00208 mEmEnergyInHF = dbe->book1D("EmEnergyInHF", "EmEnergyInHF", 120, -20, 100);
00209 }
00210 mDPhi = dbe->book1D("DPhi", "dPhi btw the two leading jets", 100, 0., acos(-1.));
00211
00212
00213
00214 mresEMF = dbe->book1D("resEMF", "resEMF", 50, 0., 1.);
00215 mN90Hits = dbe->book1D("N90Hits", "N90Hits", 50, 0., 50);
00216 mfHPD = dbe->book1D("fHPD", "fHPD", 50, 0., 1.);
00217 mfRBX = dbe->book1D("fRBX", "fRBX", 50, 0., 1.);
00218
00219
00220
00221
00222 if(makedijetselection==1 && fillJIDPassFrac==1) {
00223 mLooseJIDPassFractionVSeta = dbe->bookProfile("LooseJIDPassFractionVSeta","LooseJIDPassFractionVSeta",50, -3., 3.,0.,1.2);
00224 mLooseJIDPassFractionVSpt = dbe->bookProfile("LooseJIDPassFractionVSpt","LooseJIDPassFractionVSpt",ptBin, ptMin, ptMax,0.,1.2);
00225 mTightJIDPassFractionVSeta = dbe->bookProfile("TightJIDPassFractionVSeta","TightJIDPassFractionVSeta",50, -3., 3.,0.,1.2);
00226 mTightJIDPassFractionVSpt = dbe->bookProfile("TightJIDPassFractionVSpt","TightJIDPassFractionVSpt",ptBin, ptMin, ptMax,0.,1.2);
00227
00228 }
00229 }
00230
00231
00232
00233
00234
00235
00236
00237
00238 void JetAnalyzer::endJob() {
00239 delete jetID;
00240 }
00241
00242
00243
00244 void JetAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup,
00245 const reco::CaloJetCollection& caloJets) {
00246 int numofjets=0;
00247 double fstPhi=0.;
00248 double sndPhi=0.;
00249 double diff = 0.;
00250 double corr = 0.;
00251 double dphi = -999. ;
00252 bool thiscleaned=false;
00253 bool Loosecleaned=false;
00254 bool Tightcleaned=false;
00255 bool thisemfclean=true;
00256 bool emfcleanLoose=true;
00257 bool emfcleanTight=true;
00258 if(makedijetselection==1){
00259
00260 if(makedijetselection==1 && caloJets.size()>=2){
00261 double dphiDJ = -999. ;
00262 bool emfcleanLooseFirstJet=true;
00263 bool emfcleanLooseSecondJet=true;
00264 bool emfcleanTightFirstJet=true;
00265 bool emfcleanTightSecondJet=true;
00266 bool LoosecleanedFirstJet = false;
00267 bool LoosecleanedSecondJet = false;
00268 bool TightcleanedFirstJet = false;
00269 bool TightcleanedSecondJet = false;
00270
00271 if ((caloJets.at(0)).pt() > _ptThreshold && (caloJets.at(1)).pt() > _ptThreshold ) {
00272 if(fabs((caloJets.at(0)).eta())<3. && fabs((caloJets.at(1)).eta())<3. ){
00273
00274 dphiDJ = fabs((caloJets.at(0)).phi()-(caloJets.at(1)).phi());
00275 if (dphiDJ > 3.14) dphiDJ=fabs(dphiDJ -6.28 );
00276
00277 if (mDPhi) mDPhi->Fill (dphiDJ);
00278
00279 if(fabs(dphiDJ)>2.1){
00280
00281 emfcleanLooseFirstJet=true;
00282 emfcleanTightFirstJet=true;
00283 emfcleanLooseSecondJet=true;
00284 emfcleanTightSecondJet=true;
00285 jetID->calculate(iEvent, (caloJets.at(0)));
00286 if(jetID->restrictedEMF()<_resEMFMinLoose && fabs((caloJets.at(0)).eta())<2.6) emfcleanLooseFirstJet=false;
00287 if(jetID->restrictedEMF()<_resEMFMinTight && fabs((caloJets.at(0)).eta())<2.6) emfcleanTightFirstJet=false;
00288 if(jetID->n90Hits()>=_n90HitsMinLoose && jetID->fHPD()<_fHPDMaxLoose && emfcleanLooseFirstJet) LoosecleanedFirstJet=true;
00289 if(jetID->n90Hits()>=_n90HitsMinTight && jetID->fHPD()<_fHPDMaxTight && sqrt((caloJets.at(0)).etaetaMoment())>_sigmaEtaMinTight && sqrt((caloJets.at(0)).phiphiMoment())>_sigmaPhiMinTight && emfcleanTightFirstJet) TightcleanedFirstJet=true;
00290
00291 if (mN90Hits) mN90Hits->Fill (jetID->n90Hits());
00292 if (mfHPD) mfHPD->Fill (jetID->fHPD());
00293 if (mresEMF) mresEMF->Fill (jetID->restrictedEMF());
00294 if (mfRBX) mfRBX->Fill (jetID->fRBX());
00295 jetID->calculate(iEvent, (caloJets.at(1)));
00296 if(jetID->restrictedEMF()<_resEMFMinLoose && fabs((caloJets.at(1)).eta())<2.6) emfcleanLooseSecondJet=false;
00297 if(jetID->restrictedEMF()<_resEMFMinTight && fabs((caloJets.at(1)).eta())<2.6) emfcleanTightSecondJet=false;
00298 if(jetID->n90Hits()>=_n90HitsMinLoose && jetID->fHPD()<_fHPDMaxLoose && emfcleanLooseSecondJet) LoosecleanedSecondJet=true;
00299 if(jetID->n90Hits()>=_n90HitsMinTight && jetID->fHPD()<_fHPDMaxTight && sqrt((caloJets.at(1)).etaetaMoment())>_sigmaEtaMinTight && sqrt((caloJets.at(1)).phiphiMoment())>_sigmaPhiMinTight && emfcleanTightSecondJet) TightcleanedSecondJet=true;
00300
00301 if (mN90Hits) mN90Hits->Fill (jetID->n90Hits());
00302 if (mfHPD) mfHPD->Fill (jetID->fHPD());
00303 if (mresEMF) mresEMF->Fill (jetID->restrictedEMF());
00304 if (mfRBX) mfRBX->Fill (jetID->fRBX());
00305 if(LoosecleanedFirstJet && LoosecleanedSecondJet) {
00306
00307 if (mPt) mPt->Fill ((caloJets.at(0)).pt());
00308 if (mEta) mEta->Fill ((caloJets.at(0)).eta());
00309 if (mPhi) mPhi->Fill ((caloJets.at(0)).phi());
00310 if (mPhiVSEta) mPhiVSEta->Fill((caloJets.at(0)).eta(),(caloJets.at(0)).phi());
00311 if (mConstituents) mConstituents->Fill ((caloJets.at(0)).nConstituents());
00312 if (mHFrac) mHFrac->Fill ((caloJets.at(0)).energyFractionHadronic());
00313 if (mEFrac) mEFrac->Fill ((caloJets.at(0)).emEnergyFraction());
00314
00315
00316
00317 if (mMaxEInEmTowers) mMaxEInEmTowers->Fill ((caloJets.at(0)).maxEInEmTowers());
00318 if (mMaxEInHadTowers) mMaxEInHadTowers->Fill ((caloJets.at(0)).maxEInHadTowers());
00319 if (mN90Hits) mN90Hits->Fill (jetID->n90Hits());
00320 if (mfHPD) mfHPD->Fill (jetID->fHPD());
00321 if (mresEMF) mresEMF->Fill (jetID->restrictedEMF());
00322 if (mfRBX) mfRBX->Fill (jetID->fRBX());
00323
00324
00325
00326
00327
00328 if (mPt) mPt->Fill ((caloJets.at(1)).pt());
00329 if (mEta) mEta->Fill ((caloJets.at(1)).eta());
00330 if (mPhi) mPhi->Fill ((caloJets.at(1)).phi());
00331 if (mPhiVSEta) mPhiVSEta->Fill((caloJets.at(1)).eta(),(caloJets.at(1)).phi());
00332 if (mConstituents) mConstituents->Fill ((caloJets.at(1)).nConstituents());
00333 if (mHFrac) mHFrac->Fill ((caloJets.at(1)).energyFractionHadronic());
00334 if (mEFrac) mEFrac->Fill ((caloJets.at(1)).emEnergyFraction());
00335
00336
00337
00338 if (mMaxEInEmTowers) mMaxEInEmTowers->Fill ((caloJets.at(1)).maxEInEmTowers());
00339 if (mMaxEInHadTowers) mMaxEInHadTowers->Fill ((caloJets.at(1)).maxEInHadTowers());
00340
00341
00342
00343
00344
00345 }
00346
00347 if(fillJIDPassFrac==1) {
00348 if(LoosecleanedFirstJet) {
00349 mLooseJIDPassFractionVSeta->Fill((caloJets.at(0)).eta(),1.);
00350 mLooseJIDPassFractionVSpt->Fill((caloJets.at(0)).pt(),1.);
00351 } else {
00352 mLooseJIDPassFractionVSeta->Fill((caloJets.at(0)).eta(),0.);
00353 mLooseJIDPassFractionVSpt->Fill((caloJets.at(0)).pt(),0.);
00354 }
00355 if(LoosecleanedSecondJet) {
00356 mLooseJIDPassFractionVSeta->Fill((caloJets.at(1)).eta(),1.);
00357 mLooseJIDPassFractionVSpt->Fill((caloJets.at(1)).pt(),1.);
00358 } else {
00359 mLooseJIDPassFractionVSeta->Fill((caloJets.at(1)).eta(),0.);
00360 mLooseJIDPassFractionVSpt->Fill((caloJets.at(1)).pt(),0.);
00361 }
00362
00363 if(TightcleanedFirstJet) {
00364 mTightJIDPassFractionVSeta->Fill((caloJets.at(0)).eta(),1.);
00365 mTightJIDPassFractionVSpt->Fill((caloJets.at(0)).pt(),1.);
00366 } else {
00367 mTightJIDPassFractionVSeta->Fill((caloJets.at(0)).eta(),0.);
00368 mTightJIDPassFractionVSpt->Fill((caloJets.at(0)).pt(),0.);
00369 }
00370 if(TightcleanedSecondJet) {
00371 mTightJIDPassFractionVSeta->Fill((caloJets.at(1)).eta(),1.);
00372 mTightJIDPassFractionVSpt->Fill((caloJets.at(1)).pt(),1.);
00373 } else {
00374 mTightJIDPassFractionVSeta->Fill((caloJets.at(1)).eta(),0.);
00375 mTightJIDPassFractionVSpt->Fill((caloJets.at(1)).pt(),0.);
00376 }
00377
00378 }
00379 }
00380 }
00381 }
00382 }
00383 } else {
00384 for (reco::CaloJetCollection::const_iterator jet = caloJets.begin(); jet!=caloJets.end(); ++jet) {
00385 LogTrace(jetname)<<"[JetAnalyzer] Analyze Calo Jet";
00386 Loosecleaned=false;
00387 Tightcleaned=false;
00388 if (jet == caloJets.begin()) {
00389 fstPhi = jet->phi();
00390 _leadJetFlag = 1;
00391 } else {
00392 _leadJetFlag = 0;
00393 }
00394 if (jet == (caloJets.begin()+1)) sndPhi = jet->phi();
00395
00396 jetID->calculate(iEvent, *jet);
00397
00398 if (jet->pt() > _ptThreshold) {
00399
00400
00401
00402 thisemfclean=true;
00403 if(jetID->restrictedEMF()<_resEMFMin && fabs(jet->eta())<2.6) thisemfclean=false;
00404 if(jetID->n90Hits()>=_n90HitsMin && jetID->fHPD()<_fHPDMax && thisemfclean) thiscleaned=true;
00405
00406 if(jetID->n90Hits()>=_n90HitsMinLoose && jetID->fHPD()<_fHPDMaxLoose && emfcleanLoose) Loosecleaned=true;
00407 if(jetID->n90Hits()>=_n90HitsMinTight && jetID->fHPD()<_fHPDMaxTight && sqrt(jet->etaetaMoment())>_sigmaEtaMinTight && sqrt(jet->phiphiMoment())>_sigmaPhiMinTight && emfcleanTight) Tightcleaned=true;
00408
00409 if(fillJIDPassFrac==1) {
00410 if(Loosecleaned) {
00411 mLooseJIDPassFractionVSeta->Fill(jet->eta(),1.);
00412 mLooseJIDPassFractionVSpt->Fill(jet->pt(),1.);
00413 } else {
00414 mLooseJIDPassFractionVSeta->Fill(jet->eta(),0.);
00415 mLooseJIDPassFractionVSpt->Fill(jet->pt(),0.);
00416 }
00417
00418 if(Tightcleaned) {
00419 mTightJIDPassFractionVSeta->Fill(jet->eta(),1.);
00420 mTightJIDPassFractionVSpt->Fill(jet->pt(),1.);
00421 } else {
00422 mTightJIDPassFractionVSeta->Fill(jet->eta(),0.);
00423 mTightJIDPassFractionVSpt->Fill(jet->pt(),0.);
00424 }
00425 }
00426
00427 if(thiscleaned) {
00428 numofjets++ ;
00429 jetME->Fill(1);
00430
00431
00432
00433 if (_leadJetFlag == 1) {
00434 if (mEtaFirst) mEtaFirst->Fill (jet->eta());
00435 if (mPhiFirst) mPhiFirst->Fill (jet->phi());
00436
00437 if (mPtFirst) mPtFirst->Fill (jet->pt());
00438 }
00439
00440 if (_JetLoPass == 1) {
00441
00442
00443
00444
00445
00446
00447
00448
00449
00450
00451
00452
00453
00454
00455
00456
00457
00458
00459
00460
00461
00462 if (mEta_Lo) mEta_Lo->Fill (jet->eta());
00463 if (mPhi_Lo) mPhi_Lo->Fill (jet->phi());
00464 if (mPt_Lo) mPt_Lo->Fill (jet->pt());
00465 }
00466
00467
00468 if (_JetHiPass == 1) {
00469 if (fabs(jet->eta()) <= 1.3) {
00470 if (mPt_Barrel_Hi) mPt_Barrel_Hi->Fill(jet->pt());
00471
00472 if (mPhi_Barrel_Hi) mPhi_Barrel_Hi->Fill(jet->phi());
00473
00474
00475 }
00476 if ( (fabs(jet->eta()) > 1.3) && (fabs(jet->eta()) <= 3) ) {
00477 if (mPt_EndCap_Hi) mPt_EndCap_Hi->Fill(jet->pt());
00478
00479 if (mPhi_EndCap_Hi) mPhi_EndCap_Hi->Fill(jet->phi());
00480
00481
00482 }
00483 if (fabs(jet->eta()) > 3.0) {
00484 if (mPt_Forward_Hi) mPt_Forward_Hi->Fill(jet->pt());
00485
00486 if (mPhi_Forward_Hi) mPhi_Forward_Hi->Fill(jet->phi());
00487
00488
00489 }
00490
00491 if (mEta_Hi) mEta_Hi->Fill (jet->eta());
00492 if (mPhi_Hi) mPhi_Hi->Fill (jet->phi());
00493 if (mPt_Hi) mPt_Hi->Fill (jet->pt());
00494 }
00495
00496 if (mPt) mPt->Fill (jet->pt());
00497 if (mPt_1) mPt_1->Fill (jet->pt());
00498 if (mPt_2) mPt_2->Fill (jet->pt());
00499 if (mPt_3) mPt_3->Fill (jet->pt());
00500 if (mEta) mEta->Fill (jet->eta());
00501 if (mPhi) mPhi->Fill (jet->phi());
00502
00503 if (mPhiVSEta) mPhiVSEta->Fill(jet->eta(),jet->phi());
00504
00505 if (mConstituents) mConstituents->Fill (jet->nConstituents());
00506 if (mHFrac) mHFrac->Fill (jet->energyFractionHadronic());
00507 if (mEFrac) mEFrac->Fill (jet->emEnergyFraction());
00508
00509 if (fabs(jet->eta()) <= 1.3) {
00510 if (mPt_Barrel) mPt_Barrel->Fill (jet->pt());
00511 if (mPhi_Barrel) mPhi_Barrel->Fill (jet->phi());
00512
00513 if (mConstituents_Barrel) mConstituents_Barrel->Fill(jet->nConstituents());
00514 if (mHFrac_Barrel) mHFrac_Barrel->Fill(jet->energyFractionHadronic());
00515 if (mEFrac_Barrel) mEFrac_Barrel->Fill(jet->emEnergyFraction());
00516 }
00517 if ( (fabs(jet->eta()) > 1.3) && (fabs(jet->eta()) <= 3) ) {
00518 if (mPt_EndCap) mPt_EndCap->Fill (jet->pt());
00519 if (mPhi_EndCap) mPhi_EndCap->Fill (jet->phi());
00520
00521 if (mConstituents_EndCap) mConstituents_EndCap->Fill(jet->nConstituents());
00522 if (mHFrac_EndCap) mHFrac_EndCap->Fill(jet->energyFractionHadronic());
00523 if (mEFrac_EndCap) mEFrac_EndCap->Fill(jet->emEnergyFraction());
00524 }
00525 if (fabs(jet->eta()) > 3.0) {
00526 if (mPt_Forward) mPt_Forward->Fill (jet->pt());
00527 if (mPhi_Forward) mPhi_Forward->Fill (jet->phi());
00528
00529 if (mConstituents_Forward) mConstituents_Forward->Fill(jet->nConstituents());
00530 if (mHFrac_Forward) mHFrac_Forward->Fill(jet->energyFractionHadronic());
00531 if (mEFrac_Forward) mEFrac_Forward->Fill(jet->emEnergyFraction());
00532 }
00533
00534
00535
00536
00537
00538 if (mMaxEInEmTowers) mMaxEInEmTowers->Fill (jet->maxEInEmTowers());
00539 if (mMaxEInHadTowers) mMaxEInHadTowers->Fill (jet->maxEInHadTowers());
00540
00541 if (mHadEnergyInHO) mHadEnergyInHO->Fill (jet->hadEnergyInHO());
00542 if (mHadEnergyInHB) mHadEnergyInHB->Fill (jet->hadEnergyInHB());
00543 if (mHadEnergyInHF) mHadEnergyInHF->Fill (jet->hadEnergyInHF());
00544 if (mHadEnergyInHE) mHadEnergyInHE->Fill (jet->hadEnergyInHE());
00545 if (mEmEnergyInEB) mEmEnergyInEB->Fill (jet->emEnergyInEB());
00546 if (mEmEnergyInEE) mEmEnergyInEE->Fill (jet->emEnergyInEE());
00547 if (mEmEnergyInHF) mEmEnergyInHF->Fill (jet->emEnergyInHF());
00548
00549 if (mN90Hits) mN90Hits->Fill (jetID->n90Hits());
00550 if (mfHPD) mfHPD->Fill (jetID->fHPD());
00551 if (mresEMF) mresEMF->Fill (jetID->restrictedEMF());
00552 if (mfRBX) mfRBX->Fill (jetID->fRBX());
00553
00554
00555 if(numofjets>1) {
00556 diff = fabs(fstPhi - sndPhi);
00557 corr = 2*acos(-1.) - diff;
00558 if(diff < acos(-1.)) {
00559 dphi = diff;
00560 } else {
00561 dphi = corr;
00562 }
00563 }
00564 }
00565 }
00566 }
00567 if (mNJets) mNJets->Fill (numofjets);
00568 if (mDPhi && dphi>-998.) mDPhi->Fill (dphi);
00569 }
00570 }
00571