CMS 3D CMS Logo

ResolutionHistograms.cc

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 //
00003 // Package:     L1Analyzer
00004 // Class  :     ResolutionHistograms
00005 // 
00006 // Implementation:
00007 //     <Notes on implementation>
00008 //
00009 // Original Author:  Alex Tapper
00010 //         Created:  Tue Dec  5 14:02:34 CET 2006
00011 // $Id: ResolutionHistograms.cc,v 1.4 2008/07/21 20:37:26 llista Exp $
00012 //
00013 
00014 #include "L1TriggerOffline/L1Analyzer/interface/ResolutionHistograms.h"
00015 #include "PhysicsTools/Utilities/interface/deltaR.h"
00016 
00017 ResolutionHistograms::ResolutionHistograms(const std::string name, const edm::ParameterSet & cfg): 
00018   m_dirName(name),
00019   // Get all the damn bins for the 1D resolutions
00020   m_etNBins(cfg.getUntrackedParameter<int>("etResNBins")),
00021   m_etaNBins(cfg.getUntrackedParameter<int>("etaResNBins")),
00022   m_phiNBins(cfg.getUntrackedParameter<int>("phiResNBins")),
00023   m_delRNBins(cfg.getUntrackedParameter<int>("delRNBins")),
00024   m_etMin(cfg.getUntrackedParameter<double>("etResMin")),
00025   m_etaMin(cfg.getUntrackedParameter<double>("etaResMin")),
00026   m_phiMin(cfg.getUntrackedParameter<double>("phiResMin")),
00027   m_delRMin(cfg.getUntrackedParameter<double>("delRMin")),
00028   m_etMax(cfg.getUntrackedParameter<double>("etResMax")),
00029   m_etaMax(cfg.getUntrackedParameter<double>("etaResMax")),
00030   m_phiMax(cfg.getUntrackedParameter<double>("phiResMax")),
00031   m_delRMax(cfg.getUntrackedParameter<double>("delRMax")),
00032   // Get the bins for the 2D correlations
00033   m_etN2DBins(cfg.getUntrackedParameter<int>("etCorNBins")),
00034   m_etaN2DBins(cfg.getUntrackedParameter<int>("etaCorNBins")),
00035   m_phiN2DBins(cfg.getUntrackedParameter<int>("phiCorNBins")),
00036   m_et2DMin(cfg.getUntrackedParameter<double>("etCorMin")),
00037   m_eta2DMin(cfg.getUntrackedParameter<double>("etaCorMin")),
00038   m_phi2DMin(cfg.getUntrackedParameter<double>("phiCorMin")),
00039   m_et2DMax(cfg.getUntrackedParameter<double>("etCorMax")),
00040   m_eta2DMax(cfg.getUntrackedParameter<double>("etaCorMax")),
00041   m_phi2DMax(cfg.getUntrackedParameter<double>("phiCorMax")),
00042   // Get the bins for the profiles
00043   m_etProfNBins(cfg.getUntrackedParameter<int>("etProfNBins")),
00044   m_etaProfNBins(cfg.getUntrackedParameter<int>("etaProfNBins")),
00045   m_phiProfNBins(cfg.getUntrackedParameter<int>("phiProfNBins")),
00046   m_etProfMin(cfg.getUntrackedParameter<double>("etProfMin")),
00047   m_etaProfMin(cfg.getUntrackedParameter<double>("etaProfMin")),
00048   m_phiProfMin(cfg.getUntrackedParameter<double>("phiProfMin")),
00049   m_etProfMax(cfg.getUntrackedParameter<double>("etProfMax")),
00050   m_etaProfMax(cfg.getUntrackedParameter<double>("etaProfMax")),
00051   m_phiProfMax(cfg.getUntrackedParameter<double>("phiProfMax"))
00052 {
00053   
00054   edm::Service<TFileService> fs;
00055 
00056   TFileDirectory dir = fs->mkdir(m_dirName);
00057 
00058   m_EtRes  = dir.make<TH1F>("EtRes", "E_{T} Resolution",m_etNBins,m_etMin,m_etMax); 
00059   m_EtaRes = dir.make<TH1F>("EtaRes","#eta Resolution", m_etaNBins,m_etaMin,m_etaMax); 
00060   m_PhiRes = dir.make<TH1F>("PhiRes","#phi Resolution", m_phiNBins,m_phiMin,m_phiMax); 
00061   m_DeltaR = dir.make<TH1F>("DeltaR","#Delta R",m_delRNBins,m_delRMin,m_delRMax);
00062 
00063   m_EtCor  = dir.make<TH2F>("EtCor", "E_{T} Correlation",m_etN2DBins,m_et2DMin,m_et2DMax,m_etN2DBins,m_et2DMin,m_et2DMax);
00064   m_EtaCor = dir.make<TH2F>("EtaCor","#eta Correlation", m_etaN2DBins,m_eta2DMin,m_eta2DMax,m_etaN2DBins,m_eta2DMin,m_eta2DMax);
00065   m_PhiCor = dir.make<TH2F>("PhiCor","#phi Correlation", m_phiN2DBins,m_phi2DMin,m_phi2DMax,m_phiN2DBins,m_phi2DMin,m_phi2DMax);
00066 
00067   m_EtProf  = dir.make<TProfile>("EtProf", "E_{T} Profile",m_etProfNBins,m_etProfMin,m_etProfMax,"S"); 
00068   m_EtaProf = dir.make<TProfile>("EtaProf","#eta Profile", m_etaProfNBins,m_etaProfMin,m_etaProfMax,"S"); 
00069   m_PhiProf = dir.make<TProfile>("PhiProf","#phi Profile", m_phiProfNBins,m_phiProfMin,m_phiProfMax,"S"); 
00070 
00071 }
00072 
00073 ResolutionHistograms::~ResolutionHistograms()
00074 {
00075 }
00076 
00077 void ResolutionHistograms::Fill(const reco::CandidateRef &l1, const reco::CandidateRef &ref)
00078 {
00079 
00080   float d_et =(l1->et()-ref->et())/ref->et();
00081 //   float d_eta=(l1->eta()-ref->eta())/ref->eta();
00082 //   float d_phi=(l1->phi()-ref->phi())/ref->phi();
00083   float d_eta=l1->eta()-ref->eta();
00084   float d_phi=l1->phi()-ref->phi();
00085   
00086   m_EtRes->Fill(d_et);
00087   m_EtaRes->Fill(d_eta);
00088   m_PhiRes->Fill(d_phi);
00089   m_DeltaR->Fill(ROOT::Math::VectorUtil::DeltaR(l1->p4(),ref->p4()));
00090 
00091   m_EtCor->Fill(ref->et(),l1->et());
00092   m_EtaCor->Fill(ref->eta(),l1->eta());
00093   m_PhiCor->Fill(ref->phi(),l1->phi());
00094 
00095   m_EtProf->Fill(ref->et(),d_et);
00096   m_EtaProf->Fill(ref->eta(),d_eta);
00097   m_PhiProf->Fill(ref->phi(),d_phi);  
00098 
00099 }
00100 
00101 

Generated on Tue Jun 9 17:40:30 2009 for CMSSW by  doxygen 1.5.4