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 = 5.;
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", 100, 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 mE = dbe->book1D("E", "E", eBin, eMin, eMax);
00115 mP = dbe->book1D("P", "P", pBin, pMin, pMax);
00116 mMass = dbe->book1D("Mass", "Mass", 100, 0, 25);
00117
00118 mPhiVSEta = dbe->book2D("PhiVSEta", "PhiVSEta", 50, etaMin, etaMax, 24, phiMin, phiMax);
00119 if(makedijetselection!=1){
00120 mPt_1 = dbe->book1D("Pt1", "Pt1", 100, 0, 100);
00121 mPt_2 = dbe->book1D("Pt2", "Pt2", 100, 0, 300);
00122 mPt_3 = dbe->book1D("Pt3", "Pt3", 100, 0, 5000);
00123
00124 mPt_Lo = dbe->book1D("Pt_Lo", "Pt (Pass Low Pt Jet Trigger)", 100, 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, 300);
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 mPt_Barrel_Lo = dbe->book1D("Pt_Barrel_Lo", "Pt Barrel (Pass Low Pt Jet Trigger)", 100, 0, 100);
00133 mPhi_Barrel_Lo = dbe->book1D("Phi_Barrel_Lo", "Phi Barrel (Pass Low Pt Jet Trigger)", phiBin, phiMin, phiMax);
00134 mConstituents_Barrel_Lo = dbe->book1D("Constituents_Barrel_Lo", "Constituents Barrel (Pass Low Pt Jet Trigger)", 100, 0, 100);
00135 mHFrac_Barrel_Lo = dbe->book1D("HFrac_Barrel_Lo", "HFrac Barrel (Pass Low Pt Jet Trigger)", 100, 0, 1);
00136
00137 mPt_EndCap_Lo = dbe->book1D("Pt_EndCap_Lo", "Pt EndCap (Pass Low Pt Jet Trigger)", 100, 0, 100);
00138 mPhi_EndCap_Lo = dbe->book1D("Phi_EndCap_Lo", "Phi EndCap (Pass Low Pt Jet Trigger)", phiBin, phiMin, phiMax);
00139 mConstituents_EndCap_Lo = dbe->book1D("Constituents_EndCap_Lo", "Constituents EndCap (Pass Low Pt Jet Trigger)", 100, 0, 100);
00140 mHFrac_EndCap_Lo = dbe->book1D("HFrac_Endcap_Lo", "HFrac EndCap (Pass Low Pt Jet Trigger)", 100, 0, 1);
00141
00142 mPt_Forward_Lo = dbe->book1D("Pt_Forward_Lo", "Pt Forward (Pass Low Pt Jet Trigger)", 100, 0, 100);
00143 mPhi_Forward_Lo = dbe->book1D("Phi_Forward_Lo", "Phi Forward (Pass Low Pt Jet Trigger)", phiBin, phiMin, phiMax);
00144 mConstituents_Forward_Lo = dbe->book1D("Constituents_Forward_Lo", "Constituents Forward (Pass Low Pt Jet Trigger)", 100, 0, 100);
00145 mHFrac_Forward_Lo = dbe->book1D("HFrac_Forward_Lo", "HFrac Forward (Pass Low Pt Jet Trigger)", 100, 0, 1);
00146
00147 mPt_Barrel_Hi = dbe->book1D("Pt_Barrel_Hi", "Pt Barrel (Pass Hi Pt Jet Trigger)", 100, 0, 300);
00148 mPhi_Barrel_Hi = dbe->book1D("Phi_Barrel_Hi", "Phi Barrel (Pass Hi Pt Jet Trigger)", phiBin, phiMin, phiMax);
00149 mConstituents_Barrel_Hi = dbe->book1D("Constituents_Barrel_Hi", "Constituents Barrel (Pass Hi Pt Jet Trigger)", 100, 0, 100);
00150 mHFrac_Barrel_Hi = dbe->book1D("HFrac_Barrel_Hi", "HFrac Barrel (Pass Hi Pt Jet Trigger)", 100, 0, 1);
00151
00152 mPt_EndCap_Hi = dbe->book1D("Pt_EndCap_Hi", "Pt EndCap (Pass Hi Pt Jet Trigger)", 100, 0, 300);
00153 mPhi_EndCap_Hi = dbe->book1D("Phi_EndCap_Hi", "Phi EndCap (Pass Hi Pt Jet Trigger)", phiBin, phiMin, phiMax);
00154 mConstituents_EndCap_Hi = dbe->book1D("Constituents_EndCap_Hi", "Constituents EndCap (Pass Hi Pt Jet Trigger)", 100, 0, 100);
00155 mHFrac_EndCap_Hi = dbe->book1D("HFrac_EndCap_Hi", "HFrac EndCap (Pass Hi Pt Jet Trigger)", 100, 0, 1);
00156
00157 mPt_Forward_Hi = dbe->book1D("Pt_Forward_Hi", "Pt Forward (Pass Hi Pt Jet Trigger)", 100, 0, 300);
00158 mPhi_Forward_Hi = dbe->book1D("Phi_Forward_Hi", "Phi Forward (Pass Hi Pt Jet Trigger)", phiBin, phiMin, phiMax);
00159 mConstituents_Forward_Hi = dbe->book1D("Constituents_Forward_Hi", "Constituents Forward (Pass Hi Pt Jet Trigger)", 100, 0, 100);
00160 mHFrac_Forward_Hi = dbe->book1D("HFrac_Forward_Hi", "HFrac Forward (Pass Hi Pt Jet Trigger)", 100, 0, 1);
00161
00162 mPhi_Barrel = dbe->book1D("Phi_Barrel", "Phi_Barrel", phiBin, phiMin, phiMax);
00163 mE_Barrel = dbe->book1D("E_Barrel", "E_Barrel", eBin, eMin, eMax);
00164 mPt_Barrel = dbe->book1D("Pt_Barrel", "Pt_Barrel", ptBin, ptMin, ptMax);
00165
00166 mPhi_EndCap = dbe->book1D("Phi_EndCap", "Phi_EndCap", phiBin, phiMin, phiMax);
00167 mE_EndCap = dbe->book1D("E_EndCap", "E_EndCap", eBin, eMin, 2*eMax);
00168 mPt_EndCap = dbe->book1D("Pt_EndCap", "Pt_EndCap", ptBin, ptMin, ptMax);
00169
00170 mPhi_Forward = dbe->book1D("Phi_Forward", "Phi_Forward", phiBin, phiMin, phiMax);
00171 mE_Forward = dbe->book1D("E_Forward", "E_Forward", eBin, eMin, 4*eMax);
00172 mPt_Forward = dbe->book1D("Pt_Forward", "Pt_Forward", ptBin, ptMin, ptMax);
00173
00174
00175 mEtaFirst = dbe->book1D("EtaFirst", "EtaFirst", 100, -5, 5);
00176 mPhiFirst = dbe->book1D("PhiFirst", "PhiFirst", 70, -3.5, 3.5);
00177 mEFirst = dbe->book1D("EFirst", "EFirst", 100, 0, 1000);
00178 mPtFirst = dbe->book1D("PtFirst", "PtFirst", 100, 0, 500);
00179 if(fillJIDPassFrac==1){
00180 mLooseJIDPassFractionVSeta = dbe->bookProfile("LooseJIDPassFractionVSeta","LooseJIDPassFractionVSeta",etaBin, etaMin, etaMax,0.,1.2);
00181 mLooseJIDPassFractionVSpt = dbe->bookProfile("LooseJIDPassFractionVSpt","LooseJIDPassFractionVSpt",ptBin, ptMin, ptMax,0.,1.2);
00182 mTightJIDPassFractionVSeta = dbe->bookProfile("TightJIDPassFractionVSeta","TightJIDPassFractionVSeta",etaBin, etaMin, etaMax,0.,1.2);
00183 mTightJIDPassFractionVSpt = dbe->bookProfile("TightJIDPassFractionVSpt","TightJIDPassFractionVSpt",ptBin, ptMin, ptMax,0.,1.2);
00184
00185
00186 }
00187 }
00188
00189 mMaxEInEmTowers = dbe->book1D("MaxEInEmTowers", "MaxEInEmTowers", 100, 0, 100);
00190 mMaxEInHadTowers = dbe->book1D("MaxEInHadTowers", "MaxEInHadTowers", 100, 0, 100);
00191 if(makedijetselection!=1) {
00192 mHadEnergyInHO = dbe->book1D("HadEnergyInHO", "HadEnergyInHO", 100, 0, 10);
00193 mHadEnergyInHB = dbe->book1D("HadEnergyInHB", "HadEnergyInHB", 100, 0, 50);
00194 mHadEnergyInHF = dbe->book1D("HadEnergyInHF", "HadEnergyInHF", 100, 0, 50);
00195 mHadEnergyInHE = dbe->book1D("HadEnergyInHE", "HadEnergyInHE", 100, 0, 100);
00196 mEmEnergyInEB = dbe->book1D("EmEnergyInEB", "EmEnergyInEB", 100, 0, 50);
00197 mEmEnergyInEE = dbe->book1D("EmEnergyInEE", "EmEnergyInEE", 100, 0, 50);
00198 mEmEnergyInHF = dbe->book1D("EmEnergyInHF", "EmEnergyInHF", 120, -20, 100);
00199 }
00200 mDPhi = dbe->book1D("DPhi", "dPhi btw the two leading jets", 100, 0., acos(-1.));
00201
00202
00203
00204 mresEMF = dbe->book1D("resEMF", "resEMF", 50, 0., 1.);
00205 mN90Hits = dbe->book1D("N90Hits", "N90Hits", 50, 0., 50);
00206 mfHPD = dbe->book1D("fHPD", "fHPD", 50, 0., 1.);
00207 mfRBX = dbe->book1D("fRBX", "fRBX", 50, 0., 1.);
00208
00209 msigmaEta = dbe->book1D("sigmaEta", "sigmaEta", 50, 0., 0.5);
00210 msigmaPhi = dbe->book1D("sigmaPhi", "sigmaPhi", 50, 0., 0.5);
00211
00212 if(makedijetselection==1 && fillJIDPassFrac==1) {
00213 mLooseJIDPassFractionVSeta = dbe->bookProfile("LooseJIDPassFractionVSeta","LooseJIDPassFractionVSeta",50, -3., 3.,0.,1.2);
00214 mLooseJIDPassFractionVSpt = dbe->bookProfile("LooseJIDPassFractionVSpt","LooseJIDPassFractionVSpt",ptBin, ptMin, ptMax,0.,1.2);
00215 mTightJIDPassFractionVSeta = dbe->bookProfile("TightJIDPassFractionVSeta","TightJIDPassFractionVSeta",50, -3., 3.,0.,1.2);
00216 mTightJIDPassFractionVSpt = dbe->bookProfile("TightJIDPassFractionVSpt","TightJIDPassFractionVSpt",ptBin, ptMin, ptMax,0.,1.2);
00217
00218 }
00219 }
00220
00221
00222
00223
00224
00225
00226
00227
00228 void JetAnalyzer::endJob() {
00229 delete jetID;
00230 }
00231
00232
00233
00234 void JetAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup,
00235 const reco::CaloJetCollection& caloJets) {
00236 int numofjets=0;
00237 double fstPhi=0.;
00238 double sndPhi=0.;
00239 double diff = 0.;
00240 double corr = 0.;
00241 double dphi = -999. ;
00242 bool thiscleaned=false;
00243 bool Loosecleaned=false;
00244 bool Tightcleaned=false;
00245 bool thisemfclean=true;
00246 bool emfcleanLoose=true;
00247 bool emfcleanTight=true;
00248 if(makedijetselection==1){
00249
00250 if(makedijetselection==1 && caloJets.size()>=2){
00251 double dphiDJ = -999. ;
00252 bool emfcleanLooseFirstJet=true;
00253 bool emfcleanLooseSecondJet=true;
00254 bool emfcleanTightFirstJet=true;
00255 bool emfcleanTightSecondJet=true;
00256 bool LoosecleanedFirstJet = false;
00257 bool LoosecleanedSecondJet = false;
00258 bool TightcleanedFirstJet = false;
00259 bool TightcleanedSecondJet = false;
00260
00261 if ((caloJets.at(0)).pt() > _ptThreshold && (caloJets.at(1)).pt() > _ptThreshold ) {
00262 if(fabs((caloJets.at(0)).eta())<3. && fabs((caloJets.at(1)).eta())<3. ){
00263
00264 dphiDJ = fabs((caloJets.at(0)).phi()-(caloJets.at(1)).phi());
00265 if (dphiDJ > 3.14) dphiDJ=fabs(dphiDJ -6.28 );
00266
00267 if (mDPhi) mDPhi->Fill (dphiDJ);
00268
00269 if(fabs(dphiDJ)>2.1){
00270
00271 emfcleanLooseFirstJet=true;
00272 emfcleanTightFirstJet=true;
00273 emfcleanLooseSecondJet=true;
00274 emfcleanTightSecondJet=true;
00275 jetID->calculate(iEvent, (caloJets.at(0)));
00276 if(jetID->restrictedEMF()<_resEMFMinLoose && fabs((caloJets.at(0)).eta())<2.6) emfcleanLooseFirstJet=false;
00277 if(jetID->restrictedEMF()<_resEMFMinTight && fabs((caloJets.at(0)).eta())<2.6) emfcleanTightFirstJet=false;
00278 if(jetID->n90Hits()>=_n90HitsMinLoose && jetID->fHPD()<_fHPDMaxLoose && emfcleanLooseFirstJet) LoosecleanedFirstJet=true;
00279 if(jetID->n90Hits()>=_n90HitsMinTight && jetID->fHPD()<_fHPDMaxTight && sqrt((caloJets.at(0)).etaetaMoment())>_sigmaEtaMinTight && sqrt((caloJets.at(0)).phiphiMoment())>_sigmaPhiMinTight && emfcleanTightFirstJet) TightcleanedFirstJet=true;
00280
00281 if (mN90Hits) mN90Hits->Fill (jetID->n90Hits());
00282 if (mfHPD) mfHPD->Fill (jetID->fHPD());
00283 if (mresEMF) mresEMF->Fill (jetID->restrictedEMF());
00284 if (mfRBX) mfRBX->Fill (jetID->fRBX());
00285 jetID->calculate(iEvent, (caloJets.at(1)));
00286 if(jetID->restrictedEMF()<_resEMFMinLoose && fabs((caloJets.at(1)).eta())<2.6) emfcleanLooseSecondJet=false;
00287 if(jetID->restrictedEMF()<_resEMFMinTight && fabs((caloJets.at(1)).eta())<2.6) emfcleanTightSecondJet=false;
00288 if(jetID->n90Hits()>=_n90HitsMinLoose && jetID->fHPD()<_fHPDMaxLoose && emfcleanLooseSecondJet) LoosecleanedSecondJet=true;
00289 if(jetID->n90Hits()>=_n90HitsMinTight && jetID->fHPD()<_fHPDMaxTight && sqrt((caloJets.at(1)).etaetaMoment())>_sigmaEtaMinTight && sqrt((caloJets.at(1)).phiphiMoment())>_sigmaPhiMinTight && emfcleanTightSecondJet) TightcleanedSecondJet=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 if(LoosecleanedFirstJet && LoosecleanedSecondJet) {
00296
00297 if (mPt) mPt->Fill ((caloJets.at(0)).pt());
00298 if (mEta) mEta->Fill ((caloJets.at(0)).eta());
00299 if (mPhi) mPhi->Fill ((caloJets.at(0)).phi());
00300 if (mPhiVSEta) mPhiVSEta->Fill((caloJets.at(0)).eta(),(caloJets.at(0)).phi());
00301 if (mConstituents) mConstituents->Fill ((caloJets.at(0)).nConstituents());
00302 if (mHFrac) mHFrac->Fill ((caloJets.at(0)).energyFractionHadronic());
00303 if (mEFrac) mEFrac->Fill ((caloJets.at(0)).emEnergyFraction());
00304 if (mE) mE->Fill ((caloJets.at(0)).energy());
00305 if (mP) mP->Fill ((caloJets.at(0)).p());
00306 if (mMass) mMass->Fill ((caloJets.at(0)).mass());
00307 if (mMaxEInEmTowers) mMaxEInEmTowers->Fill ((caloJets.at(0)).maxEInEmTowers());
00308 if (mMaxEInHadTowers) mMaxEInHadTowers->Fill ((caloJets.at(0)).maxEInHadTowers());
00309 if (mN90Hits) mN90Hits->Fill (jetID->n90Hits());
00310 if (mfHPD) mfHPD->Fill (jetID->fHPD());
00311 if (mresEMF) mresEMF->Fill (jetID->restrictedEMF());
00312 if (mfRBX) mfRBX->Fill (jetID->fRBX());
00313
00314
00315 if (msigmaEta) msigmaEta->Fill(sqrt((caloJets.at(0)).etaetaMoment()));
00316 if (msigmaPhi) msigmaPhi->Fill(sqrt((caloJets.at(0)).phiphiMoment()));
00317
00318 if (mPt) mPt->Fill ((caloJets.at(1)).pt());
00319 if (mEta) mEta->Fill ((caloJets.at(1)).eta());
00320 if (mPhi) mPhi->Fill ((caloJets.at(1)).phi());
00321 if (mPhiVSEta) mPhiVSEta->Fill((caloJets.at(1)).eta(),(caloJets.at(1)).phi());
00322 if (mConstituents) mConstituents->Fill ((caloJets.at(1)).nConstituents());
00323 if (mHFrac) mHFrac->Fill ((caloJets.at(1)).energyFractionHadronic());
00324 if (mEFrac) mEFrac->Fill ((caloJets.at(1)).emEnergyFraction());
00325 if (mE) mE->Fill ((caloJets.at(1)).energy());
00326 if (mP) mP->Fill ((caloJets.at(1)).p());
00327 if (mMass) mMass->Fill ((caloJets.at(1)).mass());
00328 if (mMaxEInEmTowers) mMaxEInEmTowers->Fill ((caloJets.at(1)).maxEInEmTowers());
00329 if (mMaxEInHadTowers) mMaxEInHadTowers->Fill ((caloJets.at(1)).maxEInHadTowers());
00330
00331
00332 if (msigmaEta) msigmaEta->Fill(sqrt((caloJets.at(1)).etaetaMoment()));
00333 if (msigmaPhi) msigmaPhi->Fill(sqrt((caloJets.at(1)).phiphiMoment()));
00334
00335 }
00336
00337 if(fillJIDPassFrac==1) {
00338 if(LoosecleanedFirstJet) {
00339 mLooseJIDPassFractionVSeta->Fill((caloJets.at(0)).eta(),1.);
00340 mLooseJIDPassFractionVSpt->Fill((caloJets.at(0)).pt(),1.);
00341 } else {
00342 mLooseJIDPassFractionVSeta->Fill((caloJets.at(0)).eta(),0.);
00343 mLooseJIDPassFractionVSpt->Fill((caloJets.at(0)).pt(),0.);
00344 }
00345 if(LoosecleanedSecondJet) {
00346 mLooseJIDPassFractionVSeta->Fill((caloJets.at(1)).eta(),1.);
00347 mLooseJIDPassFractionVSpt->Fill((caloJets.at(1)).pt(),1.);
00348 } else {
00349 mLooseJIDPassFractionVSeta->Fill((caloJets.at(1)).eta(),0.);
00350 mLooseJIDPassFractionVSpt->Fill((caloJets.at(1)).pt(),0.);
00351 }
00352
00353 if(TightcleanedFirstJet) {
00354 mTightJIDPassFractionVSeta->Fill((caloJets.at(0)).eta(),1.);
00355 mTightJIDPassFractionVSpt->Fill((caloJets.at(0)).pt(),1.);
00356 } else {
00357 mTightJIDPassFractionVSeta->Fill((caloJets.at(0)).eta(),0.);
00358 mTightJIDPassFractionVSpt->Fill((caloJets.at(0)).pt(),0.);
00359 }
00360 if(TightcleanedSecondJet) {
00361 mTightJIDPassFractionVSeta->Fill((caloJets.at(1)).eta(),1.);
00362 mTightJIDPassFractionVSpt->Fill((caloJets.at(1)).pt(),1.);
00363 } else {
00364 mTightJIDPassFractionVSeta->Fill((caloJets.at(1)).eta(),0.);
00365 mTightJIDPassFractionVSpt->Fill((caloJets.at(1)).pt(),0.);
00366 }
00367
00368 }
00369 }
00370 }
00371 }
00372 }
00373 } else {
00374 for (reco::CaloJetCollection::const_iterator jet = caloJets.begin(); jet!=caloJets.end(); ++jet) {
00375 LogTrace(jetname)<<"[JetAnalyzer] Analyze Calo Jet";
00376 Loosecleaned=false;
00377 Tightcleaned=false;
00378 if (jet == caloJets.begin()) {
00379 fstPhi = jet->phi();
00380 _leadJetFlag = 1;
00381 } else {
00382 _leadJetFlag = 0;
00383 }
00384 if (jet == (caloJets.begin()+1)) sndPhi = jet->phi();
00385
00386 jetID->calculate(iEvent, *jet);
00387
00388 if (jet->pt() > _ptThreshold) {
00389 if (msigmaEta) msigmaEta->Fill(sqrt(jet->etaetaMoment()));
00390 if (msigmaPhi) msigmaPhi->Fill(sqrt(jet->phiphiMoment()));
00391
00392 thisemfclean=true;
00393 if(jetID->restrictedEMF()<_resEMFMin && fabs(jet->eta())<2.6) thisemfclean=false;
00394 if(jetID->n90Hits()>=_n90HitsMin && jetID->fHPD()<_fHPDMax && thisemfclean) thiscleaned=true;
00395
00396 if(jetID->n90Hits()>=_n90HitsMinLoose && jetID->fHPD()<_fHPDMaxLoose && emfcleanLoose) Loosecleaned=true;
00397 if(jetID->n90Hits()>=_n90HitsMinTight && jetID->fHPD()<_fHPDMaxTight && sqrt(jet->etaetaMoment())>_sigmaEtaMinTight && sqrt(jet->phiphiMoment())>_sigmaPhiMinTight && emfcleanTight) Tightcleaned=true;
00398
00399 if(fillJIDPassFrac==1) {
00400 if(Loosecleaned) {
00401 mLooseJIDPassFractionVSeta->Fill(jet->eta(),1.);
00402 mLooseJIDPassFractionVSpt->Fill(jet->pt(),1.);
00403 } else {
00404 mLooseJIDPassFractionVSeta->Fill(jet->eta(),0.);
00405 mLooseJIDPassFractionVSpt->Fill(jet->pt(),0.);
00406 }
00407
00408 if(Tightcleaned) {
00409 mTightJIDPassFractionVSeta->Fill(jet->eta(),1.);
00410 mTightJIDPassFractionVSpt->Fill(jet->pt(),1.);
00411 } else {
00412 mTightJIDPassFractionVSeta->Fill(jet->eta(),0.);
00413 mTightJIDPassFractionVSpt->Fill(jet->pt(),0.);
00414 }
00415 }
00416
00417 if(thiscleaned) {
00418 numofjets++ ;
00419 jetME->Fill(1);
00420
00421
00422
00423 if (_leadJetFlag == 1) {
00424 if (mEtaFirst) mEtaFirst->Fill (jet->eta());
00425 if (mPhiFirst) mPhiFirst->Fill (jet->phi());
00426 if (mEFirst) mEFirst->Fill (jet->energy());
00427 if (mPtFirst) mPtFirst->Fill (jet->pt());
00428 }
00429
00430 if (_JetLoPass == 1) {
00431 if (fabs(jet->eta()) <= 1.3) {
00432 if (mPt_Barrel_Lo) mPt_Barrel_Lo->Fill(jet->pt());
00433 if (mEta_Lo) mEta_Lo->Fill(jet->eta());
00434 if (mPhi_Barrel_Lo) mPhi_Barrel_Lo->Fill(jet->phi());
00435 if (mConstituents_Barrel_Lo) mConstituents_Barrel_Lo->Fill(jet->nConstituents());
00436 if (mHFrac_Barrel_Lo) mHFrac_Barrel_Lo->Fill(jet->energyFractionHadronic());
00437 }
00438 if ( (fabs(jet->eta()) > 1.3) && (fabs(jet->eta()) <= 3) ) {
00439 if (mPt_EndCap_Lo) mPt_EndCap_Lo->Fill(jet->pt());
00440 if (mEta_Lo) mEta_Lo->Fill(jet->eta());
00441 if (mPhi_EndCap_Lo) mPhi_EndCap_Lo->Fill(jet->phi());
00442 if (mConstituents_EndCap_Lo) mConstituents_EndCap_Lo->Fill(jet->nConstituents());
00443 if (mHFrac_EndCap_Lo) mHFrac_EndCap_Lo->Fill(jet->energyFractionHadronic());
00444 }
00445 if (fabs(jet->eta()) > 3.0) {
00446 if (mPt_Forward_Lo) mPt_Forward_Lo->Fill(jet->pt());
00447 if (mEta_Lo) mEta_Lo->Fill(jet->eta());
00448 if (mPhi_Forward_Lo) mPhi_Forward_Lo->Fill(jet->phi());
00449 if (mConstituents_Forward_Lo) mConstituents_Forward_Lo->Fill(jet->nConstituents());
00450 if (mHFrac_Forward_Lo) mHFrac_Forward_Lo->Fill(jet->energyFractionHadronic());
00451 }
00452 if (mEta_Lo) mEta_Lo->Fill (jet->eta());
00453 if (mPhi_Lo) mPhi_Lo->Fill (jet->phi());
00454 if (mPt_Lo) mPt_Lo->Fill (jet->pt());
00455 }
00456
00457
00458 if (_JetHiPass == 1) {
00459 if (fabs(jet->eta()) <= 1.3) {
00460 if (mPt_Barrel_Hi) mPt_Barrel_Hi->Fill(jet->pt());
00461 if (mEta_Hi) mEta_Hi->Fill(jet->eta());
00462 if (mPhi_Barrel_Hi) mPhi_Barrel_Hi->Fill(jet->phi());
00463 if (mConstituents_Barrel_Hi) mConstituents_Barrel_Hi->Fill(jet->nConstituents());
00464 if (mHFrac_Barrel_Hi) mHFrac_Barrel_Hi->Fill(jet->energyFractionHadronic());
00465 }
00466 if ( (fabs(jet->eta()) > 1.3) && (fabs(jet->eta()) <= 3) ) {
00467 if (mPt_EndCap_Hi) mPt_EndCap_Hi->Fill(jet->pt());
00468 if (mEta_Hi) mEta_Hi->Fill(jet->eta());
00469 if (mPhi_EndCap_Hi) mPhi_EndCap_Hi->Fill(jet->phi());
00470 if (mConstituents_EndCap_Hi) mConstituents_EndCap_Hi->Fill(jet->nConstituents());
00471 if (mHFrac_EndCap_Hi) mHFrac_EndCap_Hi->Fill(jet->energyFractionHadronic());
00472 }
00473 if (fabs(jet->eta()) > 3.0) {
00474 if (mPt_Forward_Hi) mPt_Forward_Hi->Fill(jet->pt());
00475 if (mEta_Hi) mEta_Hi->Fill(jet->eta());
00476 if (mPhi_Forward_Hi) mPhi_Forward_Hi->Fill(jet->phi());
00477 if (mConstituents_Forward_Hi) mConstituents_Forward_Hi->Fill(jet->nConstituents());
00478 if (mHFrac_Forward_Hi) mHFrac_Forward_Hi->Fill(jet->energyFractionHadronic());
00479 }
00480
00481 if (mEta_Hi) mEta_Hi->Fill (jet->eta());
00482 if (mPhi_Hi) mPhi_Hi->Fill (jet->phi());
00483 if (mPt_Hi) mPt_Hi->Fill (jet->pt());
00484 }
00485
00486 if (mPt) mPt->Fill (jet->pt());
00487 if (mPt_1) mPt_1->Fill (jet->pt());
00488 if (mPt_2) mPt_2->Fill (jet->pt());
00489 if (mPt_3) mPt_3->Fill (jet->pt());
00490 if (mEta) mEta->Fill (jet->eta());
00491 if (mPhi) mPhi->Fill (jet->phi());
00492
00493 if (mPhiVSEta) mPhiVSEta->Fill(jet->eta(),jet->phi());
00494
00495 if (mConstituents) mConstituents->Fill (jet->nConstituents());
00496 if (mHFrac) mHFrac->Fill (jet->energyFractionHadronic());
00497 if (mEFrac) mEFrac->Fill (jet->emEnergyFraction());
00498
00499 if (fabs(jet->eta()) <= 1.3) {
00500 if (mPt_Barrel) mPt_Barrel->Fill (jet->pt());
00501 if (mPhi_Barrel) mPhi_Barrel->Fill (jet->phi());
00502 if (mE_Barrel) mE_Barrel->Fill (jet->energy());
00503 }
00504 if ( (fabs(jet->eta()) > 1.3) && (fabs(jet->eta()) <= 3) ) {
00505 if (mPt_EndCap) mPt_EndCap->Fill (jet->pt());
00506 if (mPhi_EndCap) mPhi_EndCap->Fill (jet->phi());
00507 if (mE_EndCap) mE_EndCap->Fill (jet->energy());
00508 }
00509 if (fabs(jet->eta()) > 3.0) {
00510 if (mPt_Forward) mPt_Forward->Fill (jet->pt());
00511 if (mPhi_Forward) mPhi_Forward->Fill (jet->phi());
00512 if (mE_Forward) mE_Forward->Fill (jet->energy());
00513 }
00514
00515 if (mE) mE->Fill (jet->energy());
00516 if (mP) mP->Fill (jet->p());
00517 if (mMass) mMass->Fill (jet->mass());
00518
00519 if (mMaxEInEmTowers) mMaxEInEmTowers->Fill (jet->maxEInEmTowers());
00520 if (mMaxEInHadTowers) mMaxEInHadTowers->Fill (jet->maxEInHadTowers());
00521
00522 if (mHadEnergyInHO) mHadEnergyInHO->Fill (jet->hadEnergyInHO());
00523 if (mHadEnergyInHB) mHadEnergyInHB->Fill (jet->hadEnergyInHB());
00524 if (mHadEnergyInHF) mHadEnergyInHF->Fill (jet->hadEnergyInHF());
00525 if (mHadEnergyInHE) mHadEnergyInHE->Fill (jet->hadEnergyInHE());
00526 if (mEmEnergyInEB) mEmEnergyInEB->Fill (jet->emEnergyInEB());
00527 if (mEmEnergyInEE) mEmEnergyInEE->Fill (jet->emEnergyInEE());
00528 if (mEmEnergyInHF) mEmEnergyInHF->Fill (jet->emEnergyInHF());
00529
00530 if (mN90Hits) mN90Hits->Fill (jetID->n90Hits());
00531 if (mfHPD) mfHPD->Fill (jetID->fHPD());
00532 if (mresEMF) mresEMF->Fill (jetID->restrictedEMF());
00533 if (mfRBX) mfRBX->Fill (jetID->fRBX());
00534
00535
00536 if(numofjets>1) {
00537 diff = fabs(fstPhi - sndPhi);
00538 corr = 2*acos(-1.) - diff;
00539 if(diff < acos(-1.)) {
00540 dphi = diff;
00541 } else {
00542 dphi = corr;
00543 }
00544 }
00545 }
00546 }
00547 }
00548 if (mNJets) mNJets->Fill (numofjets);
00549 if (mDPhi && dphi>-998.) mDPhi->Fill (dphi);
00550 }
00551 }
00552