00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
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
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
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
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
00082
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