CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch9/src/DQMOffline/JetMET/src/PFJetAnalyzer.cc

Go to the documentation of this file.
00001 /*
00002  *  See header file for a description of this class.
00003  *
00004  *  $Date: 2010/10/15 13:49:55 $
00005  *  $Revision: 1.15 $
00006  *  \author F. Chlebana - Fermilab
00007  */
00008 
00009 #include "DQMOffline/JetMET/interface/PFJetAnalyzer.h"
00010 #include "DataFormats/Common/interface/Handle.h"
00011 
00012 #include "DataFormats/JetReco/interface/PFJet.h"
00013 
00014 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00015 
00016 #include <string>
00017 using namespace edm;
00018 
00019 
00020 PFJetAnalyzer::PFJetAnalyzer(const edm::ParameterSet& pSet) {
00021 
00022   parameters = pSet;
00023   _leadJetFlag = 0;
00024   _JetLoPass   = 0;
00025   _JetHiPass   = 0;
00026   _ptThreshold = 5.;
00027   _LooseCHFMin = -999.;
00028   _LooseNHFMax = -999.;
00029   _LooseCEFMax = -999.;
00030   _LooseNEFMax = -999.;
00031   _TightCHFMin = -999.;
00032   _TightNHFMax = -999.;
00033   _TightCEFMax = -999.;
00034   _TightNEFMax = -999.;
00035   _ThisCHFMin = -999.;
00036   _ThisNHFMax = -999.;
00037   _ThisCEFMax = -999.;
00038   _ThisNEFMax = -999.;
00039 
00040 }
00041 
00042 
00043 PFJetAnalyzer::~PFJetAnalyzer() { }
00044 
00045 
00046 void PFJetAnalyzer::beginJob(DQMStore * dbe) {
00047 
00048   metname = "pFJetAnalyzer";
00049 
00050   LogTrace(metname)<<"[PFJetAnalyzer] Parameters initialization";
00051   //dbe->setCurrentFolder("JetMET/Jet/PFJets");//old version, now name set to source, which 
00052   //can be set for each instance of PFJetAnalyzer called inside JetMETAnalyzer. Useful, e.g., to 
00053   //name differently the dir for all jets and cleaned jets 
00054   dbe->setCurrentFolder("JetMET/Jet/"+_source);
00055   // dbe->setCurrentFolder("JetMET/Jet/PFJets");
00056                         
00057   jetME = dbe->book1D("jetReco", "jetReco", 3, 1, 4);
00058   jetME->setBinLabel(2,"PFJets",1);
00059 
00060   // monitoring of eta parameter
00061   etaBin = parameters.getParameter<int>("etaBin");
00062   etaMin = parameters.getParameter<double>("etaMin");
00063   etaMax = parameters.getParameter<double>("etaMax");
00064 
00065   // monitoring of phi paramater
00066   phiBin = parameters.getParameter<int>("phiBin");
00067   phiMin = parameters.getParameter<double>("phiMin");
00068   phiMax = parameters.getParameter<double>("phiMax");
00069 
00070   // monitoring of the transverse momentum
00071   ptBin = parameters.getParameter<int>("ptBin");
00072   ptMin = parameters.getParameter<double>("ptMin");
00073   ptMax = parameters.getParameter<double>("ptMax");
00074 
00075   // 
00076   eBin = parameters.getParameter<int>("eBin");
00077   eMin = parameters.getParameter<double>("eMin");
00078   eMax = parameters.getParameter<double>("eMax");
00079 
00080   // 
00081   pBin = parameters.getParameter<int>("pBin");
00082   pMin = parameters.getParameter<double>("pMin");
00083   pMax = parameters.getParameter<double>("pMax");
00084 
00085   _ptThreshold = parameters.getParameter<double>("ptThreshold");
00086 
00087   _TightCHFMin = parameters.getParameter<double>("TightCHFMin");
00088   _TightNHFMax = parameters.getParameter<double>("TightNHFMax");
00089   _TightCEFMax = parameters.getParameter<double>("TightCEFMax");
00090   _TightNEFMax = parameters.getParameter<double>("TightNEFMax");
00091   _LooseCHFMin = parameters.getParameter<double>("LooseCHFMin");
00092   _LooseNHFMax = parameters.getParameter<double>("LooseNHFMax");
00093   _LooseCEFMax = parameters.getParameter<double>("LooseCEFMax");
00094   _LooseNEFMax = parameters.getParameter<double>("LooseNEFMax");
00095 
00096   fillpfJIDPassFrac = parameters.getParameter<int>("fillpfJIDPassFrac");
00097 
00098   _ThisCHFMin = parameters.getParameter<double>("ThisCHFMin");
00099   _ThisNHFMax = parameters.getParameter<double>("ThisNHFMax");
00100   _ThisCEFMax = parameters.getParameter<double>("ThisCEFMax");
00101   _ThisNEFMax = parameters.getParameter<double>("ThisNEFMax");
00102 
00103   // Generic Jet Parameters
00104   mPt                      = dbe->book1D("Pt",  "Pt", ptBin, ptMin, ptMax);
00105   mPt_1                    = dbe->book1D("Pt1", "Pt1", 100, 0, 100);
00106   mPt_2                    = dbe->book1D("Pt2", "Pt2", 100, 0, 300);
00107   mPt_3                    = dbe->book1D("Pt3", "Pt3", 100, 0, 5000);
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   mPhiVSEta                     = dbe->book2D("PhiVSEta", "PhiVSEta", 50, etaMin, etaMax, 24, phiMin, phiMax);
00115 
00116   // Low and high pt trigger paths
00117   mPt_Lo                  = dbe->book1D("Pt_Lo", "Pt (Pass Low Pt Jet Trigger)", 100, 0, 100);
00118   mEta_Lo                 = dbe->book1D("Eta_Lo", "Eta (Pass Low Pt Jet Trigger)", etaBin, etaMin, etaMax);
00119   mPhi_Lo                 = dbe->book1D("Phi_Lo", "Phi (Pass Low Pt Jet Trigger)", phiBin, phiMin, phiMax);
00120 
00121   mPt_Hi                  = dbe->book1D("Pt_Hi", "Pt (Pass Hi Pt Jet Trigger)", 100, 0, 300);
00122   mEta_Hi                 = dbe->book1D("Eta_Hi", "Eta (Pass Hi Pt Jet Trigger)", etaBin, etaMin, etaMax);
00123   mPhi_Hi                 = dbe->book1D("Phi_Hi", "Phi (Pass Hi Pt Jet Trigger)", phiBin, phiMin, phiMax);
00124 
00125   mE                       = dbe->book1D("E", "E", eBin, eMin, eMax);
00126   mP                       = dbe->book1D("P", "P", pBin, pMin, pMax);
00127   mMass                    = dbe->book1D("Mass", "Mass", 100, 0, 25);
00128   mNJets                   = dbe->book1D("NJets", "Number of Jets", 100, 0, 100);
00129 
00130   mPt_Barrel_Lo            = dbe->book1D("Pt_Barrel_Lo", "Pt Barrel (Pass Low Pt Jet Trigger)", 100, 0, 100);
00131   mPhi_Barrel_Lo           = dbe->book1D("Phi_Barrel_Lo", "Phi Barrel (Pass Low Pt Jet Trigger)", phiBin, phiMin, phiMax);
00132   mConstituents_Barrel_Lo  = dbe->book1D("Constituents_Barrel_Lo", "Constituents Barrel (Pass Low Pt Jet Trigger)", 100, 0, 100);
00133   mHFrac_Barrel_Lo         = dbe->book1D("HFrac_Barrel_Lo", "HFrac Barrel (Pass Low Pt Jet Trigger)", 100, 0, 1);
00134 
00135   mPt_EndCap_Lo            = dbe->book1D("Pt_EndCap_Lo", "Pt EndCap (Pass Low Pt Jet Trigger)", 100, 0, 100);
00136   mPhi_EndCap_Lo           = dbe->book1D("Phi_EndCap_Lo", "Phi EndCap (Pass Low Pt Jet Trigger)", phiBin, phiMin, phiMax);
00137   mConstituents_EndCap_Lo  = dbe->book1D("Constituents_EndCap_Lo", "Constituents EndCap (Pass Low Pt Jet Trigger)", 100, 0, 100);
00138   mHFrac_EndCap_Lo         = dbe->book1D("HFrac_Endcap_Lo", "HFrac EndCap (Pass Low Pt Jet Trigger)", 100, 0, 1);
00139 
00140   mPt_Forward_Lo           = dbe->book1D("Pt_Forward_Lo", "Pt Forward (Pass Low Pt Jet Trigger)", 100, 0, 100);
00141   mPhi_Forward_Lo          = dbe->book1D("Phi_Forward_Lo", "Phi Forward (Pass Low Pt Jet Trigger)", phiBin, phiMin, phiMax);
00142   mConstituents_Forward_Lo = dbe->book1D("Constituents_Forward_Lo", "Constituents Forward (Pass Low Pt Jet Trigger)", 100, 0, 100);
00143   mHFrac_Forward_Lo        = dbe->book1D("HFrac_Forward_Lo", "HFrac Forward (Pass Low Pt Jet Trigger)", 100, 0, 1);
00144 
00145   mPt_Barrel_Hi            = dbe->book1D("Pt_Barrel_Hi", "Pt Barrel (Pass Hi Pt Jet Trigger)", 100, 0, 300);
00146   mPhi_Barrel_Hi           = dbe->book1D("Phi_Barrel_Hi", "Phi Barrel (Pass Hi Pt Jet Trigger)", phiBin, phiMin, phiMax);
00147   mConstituents_Barrel_Hi  = dbe->book1D("Constituents_Barrel_Hi", "Constituents Barrel (Pass Hi Pt Jet Trigger)", 100, 0, 100);
00148   mHFrac_Barrel_Hi         = dbe->book1D("HFrac_Barrel_Hi", "HFrac Barrel (Pass Hi Pt Jet Trigger)", 100, 0, 1);
00149 
00150   mPt_EndCap_Hi            = dbe->book1D("Pt_EndCap_Hi", "Pt EndCap (Pass Hi Pt Jet Trigger)", 100, 0, 300);
00151   mPhi_EndCap_Hi           = dbe->book1D("Phi_EndCap_Hi", "Phi EndCap (Pass Hi Pt Jet Trigger)", phiBin, phiMin, phiMax);
00152   mConstituents_EndCap_Hi  = dbe->book1D("Constituents_EndCap_Hi", "Constituents EndCap (Pass Hi Pt Jet Trigger)", 100, 0, 100);
00153   mHFrac_EndCap_Hi         = dbe->book1D("HFrac_EndCap_Hi", "HFrac EndCap (Pass Hi Pt Jet Trigger)", 100, 0, 1);
00154 
00155   mPt_Forward_Hi           = dbe->book1D("Pt_Forward_Hi", "Pt Forward (Pass Hi Pt Jet Trigger)", 100, 0, 300);
00156   mPhi_Forward_Hi          = dbe->book1D("Phi_Forward_Hi", "Phi Forward (Pass Hi Pt Jet Trigger)", phiBin, phiMin, phiMax);
00157   mConstituents_Forward_Hi = dbe->book1D("Constituents_Forward_Hi", "Constituents Forward (Pass Hi Pt Jet Trigger)", 100, 0, 100);
00158   mHFrac_Forward_Hi        = dbe->book1D("HFrac_Forward_Hi", "HFrac Forward (Pass Hi Pt Jet Trigger)", 100, 0, 1);
00159 
00160   mPhi_Barrel              = dbe->book1D("Phi_Barrel", "Phi_Barrel", phiBin, phiMin, phiMax);
00161   mE_Barrel                = dbe->book1D("E_Barrel", "E_Barrel", eBin, eMin, eMax);
00162   mPt_Barrel               = dbe->book1D("Pt_Barrel", "Pt_Barrel", ptBin, ptMin, ptMax);
00163 
00164   mPhi_EndCap              = dbe->book1D("Phi_EndCap", "Phi_EndCap", phiBin, phiMin, phiMax);
00165   mE_EndCap                = dbe->book1D("E_EndCap", "E_EndCap", eBin, eMin, eMax);
00166   mPt_EndCap               = dbe->book1D("Pt_EndCap", "Pt_EndCap", ptBin, ptMin, ptMax);
00167 
00168   mPhi_Forward             = dbe->book1D("Phi_Forward", "Phi_Forward", phiBin, phiMin, phiMax);
00169   mE_Forward               = dbe->book1D("E_Forward", "E_Forward", eBin, eMin, eMax);
00170   mPt_Forward              = dbe->book1D("Pt_Forward", "Pt_Forward", ptBin, ptMin, ptMax);
00171 
00172   // Leading Jet Parameters
00173   mEtaFirst                = dbe->book1D("EtaFirst", "EtaFirst", 100, -5, 5);
00174   mPhiFirst                = dbe->book1D("PhiFirst", "PhiFirst", 70, -3.5, 3.5);
00175   mEFirst                  = dbe->book1D("EFirst", "EFirst", 100, 0, 1000);
00176   mPtFirst                 = dbe->book1D("PtFirst", "PtFirst", 100, 0, 500);
00177 
00178   mDPhi                   = dbe->book1D("DPhi", "dPhi btw the two leading jets", 100, 0., acos(-1.));
00179 
00180   //
00181   mChargedHadronEnergy = dbe->book1D("mChargedHadronEnergy", "mChargedHadronEnergy", 100, 0, 100);
00182   mNeutralHadronEnergy = dbe->book1D("mNeutralHadronEnergy", "mNeutralHadronEnergy", 100, 0, 100);
00183   mChargedEmEnergy= dbe->book1D("mChargedEmEnergy ", "mChargedEmEnergy ", 100, 0, 100);
00184   mChargedMuEnergy = dbe->book1D("mChargedMuEnergy", "mChargedMuEnergy", 100, 0, 100);
00185   mNeutralEmEnergy= dbe->book1D("mNeutralEmEnergy", "mNeutralEmEnergy", 100, 0, 100);
00186   mChargedMultiplicity= dbe->book1D("mChargedMultiplicity ", "mChargedMultiplicity ", 100, 0, 100);
00187   mNeutralMultiplicity = dbe->book1D(" mNeutralMultiplicity", "mNeutralMultiplicity", 100, 0, 100);
00188   mMuonMultiplicity= dbe->book1D("mMuonMultiplicity", "mMuonMultiplicity", 100, 0, 100);
00189   //__________________________________________________
00190   mNeutralFraction = dbe->book1D("NeutralFraction","Neutral Fraction",100,0,1);
00191   if(fillpfJIDPassFrac==1) {
00192     mLooseJIDPassFractionVSeta= dbe->bookProfile("LooseJIDPassFractionVSeta","LooseJIDPassFractionVSeta",etaBin, etaMin, etaMax,0.,1.2);
00193     mLooseJIDPassFractionVSpt= dbe->bookProfile("LooseJIDPassFractionVSpt","LooseJIDPassFractionVSpt",ptBin, ptMin, ptMax,0.,1.2);
00194     mTightJIDPassFractionVSeta= dbe->bookProfile("TightJIDPassFractionVSeta","TightJIDPassFractionVSeta",etaBin, etaMin, etaMax,0.,1.2);
00195     mTightJIDPassFractionVSpt= dbe->bookProfile("TightJIDPassFractionVSpt","TightJIDPassFractionVSpt",ptBin, ptMin, ptMax,0.,1.2);
00196   }
00197 
00198   
00199 }
00200 
00201 void PFJetAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup, const reco::PFJetCollection& pfJets) {
00202 
00203   int numofjets=0;
00204   double  fstPhi=0.;
00205   double  sndPhi=0.;
00206   double  diff = 0.;
00207   double  corr = 0.;
00208   double  dphi = -999. ;
00209 
00210   bool Thiscleaned=false; 
00211   bool Loosecleaned=false; 
00212   bool Tightcleaned=false; 
00213   bool ThisCHFcleaned=false;
00214   bool LooseCHFcleaned=false;
00215   bool TightCHFcleaned=false;
00216 
00217   for (reco::PFJetCollection::const_iterator jet = pfJets.begin(); jet!=pfJets.end(); ++jet){
00218     LogTrace(metname)<<"[JetAnalyzer] Analyze PFJet";
00219  
00220     Thiscleaned=false;
00221     Loosecleaned=false;
00222     Tightcleaned=false;
00223 
00224     if (jet == pfJets.begin()) {
00225       fstPhi = jet->phi();
00226       _leadJetFlag = 1;
00227     } else {
00228       _leadJetFlag = 0;
00229     }
00230 
00231     if (jet == (pfJets.begin()+1)) sndPhi = jet->phi();
00232     //  if (jet->pt() < _ptThreshold) return;
00233     if (jet->pt() > _ptThreshold) {
00234       numofjets++ ;
00235       jetME->Fill(2);
00236             
00237       //calculate the jetID
00238       ThisCHFcleaned=true;
00239       LooseCHFcleaned=true;
00240       TightCHFcleaned=true;
00241       if((jet->chargedHadronEnergy()/jet->energy())<=_ThisCHFMin && fabs(jet->eta())<2.4) ThisCHFcleaned=false; //apply CHF>0 only if |eta|<2.4
00242       if((jet->chargedHadronEnergy()/jet->energy())<=_LooseCHFMin && fabs(jet->eta())<2.4) LooseCHFcleaned=false; //apply CHF>0 only if |eta|<2.4
00243       if((jet->chargedHadronEnergy()/jet->energy())<=_TightCHFMin && fabs(jet->eta())<2.4) TightCHFcleaned=false; //apply CHF>0 only if |eta|<2.4
00244       if(ThisCHFcleaned && (jet->neutralHadronEnergy()/jet->energy())<_ThisNHFMax && (jet->chargedEmEnergy()/jet->energy())<_ThisCEFMax && (jet->neutralEmEnergy()/jet->energy())<_ThisNEFMax) Thiscleaned=true;
00245       if(LooseCHFcleaned && (jet->neutralHadronEnergy()/jet->energy())<_LooseNHFMax && (jet->chargedEmEnergy()/jet->energy())<_LooseCEFMax && (jet->neutralEmEnergy()/jet->energy())<_LooseNEFMax) Loosecleaned=true;
00246       if(TightCHFcleaned && (jet->neutralHadronEnergy()/jet->energy())<_TightNHFMax && (jet->chargedEmEnergy()/jet->energy())<_TightCEFMax && (jet->neutralEmEnergy()/jet->energy())<_TightNEFMax) Tightcleaned=true;
00247       
00248       if(fillpfJIDPassFrac==1) {
00249         //fill the profile for jid efficiency 
00250         if(Loosecleaned) {
00251           mLooseJIDPassFractionVSeta->Fill(jet->eta(),1.);
00252           mLooseJIDPassFractionVSpt->Fill(jet->pt(),1.);
00253         } else {
00254           mLooseJIDPassFractionVSeta->Fill(jet->eta(),0.);
00255           mLooseJIDPassFractionVSpt->Fill(jet->pt(),0.);
00256         }
00257         if(Tightcleaned) {
00258           mTightJIDPassFractionVSeta->Fill(jet->eta(),1.);
00259           mTightJIDPassFractionVSpt->Fill(jet->pt(),1.);
00260         } else {
00261           mTightJIDPassFractionVSeta->Fill(jet->eta(),0.);
00262           mTightJIDPassFractionVSpt->Fill(jet->pt(),0.);
00263         }
00264       }
00265       
00266       if(!Thiscleaned) continue;
00267       
00268       // Leading jet
00269       // Histograms are filled once per event
00270       if (_leadJetFlag == 1) { 
00271         
00272         if (mEtaFirst) mEtaFirst->Fill (jet->eta());
00273         if (mPhiFirst) mPhiFirst->Fill (jet->phi());
00274         if (mEFirst)   mEFirst->Fill (jet->energy());
00275         if (mPtFirst)  mPtFirst->Fill (jet->pt());
00276       }
00277       
00278       // --- Passed the low pt jet trigger
00279       if (_JetLoPass == 1) {
00280         if (fabs(jet->eta()) <= 1.3) {
00281           if (mPt_Barrel_Lo)           mPt_Barrel_Lo->Fill(jet->pt());
00282           if (mEta_Lo)          mEta_Lo->Fill(jet->eta());
00283           if (mPhi_Barrel_Lo)          mPhi_Barrel_Lo->Fill(jet->phi());
00284           if (mConstituents_Barrel_Lo) mConstituents_Barrel_Lo->Fill(jet->nConstituents());     
00285           if (mHFrac_Barrel_Lo)        mHFrac_Barrel_Lo->Fill(jet->chargedHadronEnergyFraction()+jet->neutralHadronEnergyFraction() );  
00286         }
00287         if ( (fabs(jet->eta()) > 1.3) && (fabs(jet->eta()) <= 3) ) {
00288           if (mPt_EndCap_Lo)           mPt_EndCap_Lo->Fill(jet->pt());
00289           if (mEta_Lo)          mEta_Lo->Fill(jet->eta());
00290           if (mPhi_EndCap_Lo)          mPhi_EndCap_Lo->Fill(jet->phi());
00291           if (mConstituents_EndCap_Lo) mConstituents_EndCap_Lo->Fill(jet->nConstituents());     
00292           if (mHFrac_EndCap_Lo)        mHFrac_EndCap_Lo->Fill(jet->chargedHadronEnergyFraction()+jet->neutralHadronEnergyFraction());   
00293         }
00294         if (fabs(jet->eta()) > 3.0) {
00295           if (mPt_Forward_Lo)           mPt_Forward_Lo->Fill(jet->pt());
00296           if (mEta_Lo)          mEta_Lo->Fill(jet->eta());
00297           if (mPhi_Forward_Lo)          mPhi_Forward_Lo->Fill(jet->phi());
00298           if (mConstituents_Forward_Lo) mConstituents_Forward_Lo->Fill(jet->nConstituents());   
00299           if (mHFrac_Forward_Lo)        mHFrac_Forward_Lo->Fill(jet->chargedHadronEnergyFraction()+jet->neutralHadronEnergyFraction()); 
00300         }
00301         if (mEta_Lo) mEta_Lo->Fill (jet->eta());
00302         if (mPhi_Lo) mPhi_Lo->Fill (jet->phi());
00303         if (mPt_Lo)  mPt_Lo->Fill (jet->pt());
00304       }
00305       
00306       // --- Passed the high pt jet trigger
00307       if (_JetHiPass == 1) {
00308         if (fabs(jet->eta()) <= 1.3) {
00309           if (mPt_Barrel_Hi)           mPt_Barrel_Hi->Fill(jet->pt());
00310           if (mEta_Hi)          mEta_Hi->Fill(jet->eta());
00311           if (mPhi_Barrel_Hi)          mPhi_Barrel_Hi->Fill(jet->phi());
00312           if (mConstituents_Barrel_Hi) mConstituents_Barrel_Hi->Fill(jet->nConstituents());     
00313           if (mHFrac_Barrel_Hi)        mHFrac_Barrel_Hi->Fill(jet->chargedHadronEnergyFraction()+jet->neutralHadronEnergyFraction());   
00314         }
00315         if ( (fabs(jet->eta()) > 1.3) && (fabs(jet->eta()) <= 3) ) {
00316           if (mPt_EndCap_Hi)           mPt_EndCap_Hi->Fill(jet->pt());
00317           if (mEta_Hi)          mEta_Hi->Fill(jet->eta());
00318           if (mPhi_EndCap_Hi)          mPhi_EndCap_Hi->Fill(jet->phi());
00319           if (mConstituents_EndCap_Hi) mConstituents_EndCap_Hi->Fill(jet->nConstituents());     
00320           if (mHFrac_EndCap_Hi)        mHFrac_EndCap_Hi->Fill(jet->chargedHadronEnergyFraction()+jet->neutralHadronEnergyFraction());   
00321         }
00322         if (fabs(jet->eta()) > 3.0) {
00323           if (mPt_Forward_Hi)           mPt_Forward_Hi->Fill(jet->pt());
00324           if (mEta_Hi)          mEta_Hi->Fill(jet->eta());
00325           if (mPhi_Forward_Hi)          mPhi_Forward_Hi->Fill(jet->phi());
00326           if (mConstituents_Forward_Hi) mConstituents_Forward_Hi->Fill(jet->nConstituents());   
00327           if (mHFrac_Forward_Hi)        mHFrac_Forward_Hi->Fill(jet->chargedHadronEnergyFraction()+jet->neutralHadronEnergyFraction()); 
00328         }
00329         
00330         if (mEta_Hi) mEta_Hi->Fill (jet->eta());
00331         if (mPhi_Hi) mPhi_Hi->Fill (jet->phi());
00332         if (mPt_Hi)  mPt_Hi->Fill (jet->pt());
00333       }
00334       
00335       if (mPt)   mPt->Fill (jet->pt());
00336       if (mPt_1) mPt_1->Fill (jet->pt());
00337       if (mPt_2) mPt_2->Fill (jet->pt());
00338       if (mPt_3) mPt_3->Fill (jet->pt());
00339       if (mEta)  mEta->Fill (jet->eta());
00340       if (mPhi)  mPhi->Fill (jet->phi());
00341       if (mPhiVSEta) mPhiVSEta->Fill(jet->eta(),jet->phi());
00342       
00343       if (mConstituents) mConstituents->Fill (jet->nConstituents());
00344       if (mHFrac)        mHFrac->Fill (jet->chargedHadronEnergyFraction()+jet->neutralHadronEnergyFraction());
00345       if (mEFrac)        mEFrac->Fill (jet->chargedEmEnergyFraction() +jet->neutralEmEnergyFraction());
00346       
00347       if (fabs(jet->eta()) <= 1.3) {
00348         if (mPt_Barrel)   mPt_Barrel->Fill (jet->pt());
00349         if (mPhi_Barrel)  mPhi_Barrel->Fill (jet->phi());
00350         if (mE_Barrel)    mE_Barrel->Fill (jet->energy());
00351       }
00352       if ( (fabs(jet->eta()) > 1.3) && (fabs(jet->eta()) <= 3) ) {
00353         if (mPt_EndCap)   mPt_EndCap->Fill (jet->pt());
00354         if (mPhi_EndCap)  mPhi_EndCap->Fill (jet->phi());
00355         if (mE_EndCap)    mE_EndCap->Fill (jet->energy());
00356       }
00357       if (fabs(jet->eta()) > 3.0) {
00358         if (mPt_Forward)   mPt_Forward->Fill (jet->pt());
00359         if (mPhi_Forward)  mPhi_Forward->Fill (jet->phi());
00360         if (mE_Forward)    mE_Forward->Fill (jet->energy());
00361       }
00362       
00363       if (mE)    mE->Fill (jet->energy());
00364       if (mP)    mP->Fill (jet->p());
00365       if (mMass) mMass->Fill (jet->mass());
00366       
00367       
00368       if (mChargedHadronEnergy)  mChargedHadronEnergy->Fill (jet->chargedHadronEnergy());
00369       if (mNeutralHadronEnergy)  mNeutralHadronEnergy->Fill (jet->neutralHadronEnergy());
00370       if (mChargedEmEnergy) mChargedEmEnergy->Fill(jet->chargedEmEnergy());
00371       if (mChargedMuEnergy) mChargedMuEnergy->Fill (jet->chargedMuEnergy ());
00372       if (mNeutralEmEnergy) mNeutralEmEnergy->Fill(jet->neutralEmEnergy());
00373       if (mChargedMultiplicity ) mChargedMultiplicity->Fill(jet->chargedMultiplicity());
00374       if (mNeutralMultiplicity ) mNeutralMultiplicity->Fill(jet->neutralMultiplicity());
00375       if (mMuonMultiplicity )mMuonMultiplicity->Fill (jet-> muonMultiplicity());
00376       //_______________________________________________________
00377       if (mNeutralFraction) mNeutralFraction->Fill (jet->neutralMultiplicity()/jet->nConstituents());
00378       
00379       //calculate correctly the dphi
00380       if(numofjets>1) {
00381         diff = fabs(fstPhi - sndPhi);
00382         corr = 2*acos(-1.) - diff;
00383         if(diff < acos(-1.)) { 
00384           dphi = diff; 
00385         } else { 
00386           dphi = corr;
00387         }
00388       } // numofjets>1
00389     } // JetPt>_ptThreshold
00390   } // PF jet loop
00391   if (mNJets)    mNJets->Fill (numofjets);
00392   if (mDPhi)    mDPhi->Fill (dphi);
00393 }