CMS 3D CMS Logo

Public Member Functions | Private Member Functions | Private Attributes

CaloTriggerAnalyzer Class Reference

#include <CaloTriggerAnalyzer.h>

Inheritance diagram for CaloTriggerAnalyzer:
edm::EDAnalyzer

List of all members.

Public Member Functions

 CaloTriggerAnalyzer (const edm::ParameterSet &)
 ~CaloTriggerAnalyzer ()

Private Member Functions

virtual void analyze (const edm::Event &, const edm::EventSetup &)

Private Attributes

TH1F * absEta
TH1F * dEta
TH1F * dPhi
TH1F * dPt
TH1F * dR
double DR_
TH1F * eta
TH1F * etaDenom
TH1F * etaNum
float highestGenPt
TH1F * highestPt
TH1F * highestPtGen
float highPt
double maxEta_
TH1F * pt
TH1F * ptDenom
TH1F * ptNum
edm::InputTag ref_
TH1F * RPt
TProfile * RPtEta
TProfile * RPtEtaFull
float secondGenPt
TH1F * secondPt
float secondPtf
TH1F * secondPtGen
edm::InputTag src_
double threshold_

Detailed Description

Definition at line 24 of file CaloTriggerAnalyzer.h.


Constructor & Destructor Documentation

CaloTriggerAnalyzer::CaloTriggerAnalyzer ( const edm::ParameterSet iConfig) [explicit]

Definition at line 8 of file CaloTriggerAnalyzer.cc.

References absEta, dEta, dPhi, dPt, dR, etaDenom, etaNum, highestPt, highestPtGen, pt, ptDenom, ptNum, RPt, RPtEta, RPtEtaFull, secondPt, and secondPtGen.

                                                                      :
  src_(iConfig.getParameter<edm::InputTag>("src")),
  ref_(iConfig.getParameter<edm::InputTag>("ref")),
  DR_(iConfig.getParameter<double>("deltaR")),
  threshold_(iConfig.getParameter<double>("threshold")),
  maxEta_(iConfig.getUntrackedParameter<double>("maxEta",2.5))
{
   //now do what ever initialization is needed

  edm::Service<TFileService> fs;

  ptNum    = fs->make<TH1F>( "ptNum"   , "ptNum"   , 20  ,  0., 100. );
  ptDenom  = fs->make<TH1F>( "ptDenom" , "ptDenom" , 20  ,  0., 100. );
  etaNum   = fs->make<TH1F>( "etaNum"  , "etaNum"  , 20  ,  -2.5, 2.5 );
  etaDenom = fs->make<TH1F>( "etaDenom", "etaDenom", 20  ,  -2.5, 2.5 );
  pt       = fs->make<TH1F>( "pt"      , "pt", 20  ,  0. , 100. );
  highestPt= fs->make<TH1F>( "highestPt"      , "highestPt", 50  ,  0. , 100. );
  secondPt = fs->make<TH1F>( "secondHighestPt", "secondHighestPt", 50  ,  0. , 100. );
  highestPtGen=fs->make<TH1F>("highestPtGen","highestPtGen",100, 0., 200.);
  secondPtGen=fs->make<TH1F>("secondPtGen","secondPtGen",100, 0., 200.);
  dPt      = fs->make<TH1F>( "dPt"      , "dPt", 50  , -1  , 1 );
  dEta     = fs->make<TH1F>( "dEta"      , "dEta", 50  , -0.5  , 0.5 );
  dPhi     = fs->make<TH1F>( "dPhi"      , "dPhi", 50  , -0.5  , 0.5 );
  RPt = fs->make<TH1F>("RPt", "Pt_Ratio", 10, 0, 2.);
  RPtEta = fs->make<TProfile>("RPtEta","Pt_Ratio as fcn of abs(eta)",13,0.0,2.6,0,2);
  RPtEtaFull = fs->make<TProfile>("RPtEtaFull","Pt_Ratio as fcn of eta",26,-2.6,2.6,0,2);
  absEta = fs->make<TH1F>("abseta","abs(eta)",13,0.,2.6); 
  dR = fs->make<TH1F>("dR","delta(R)",50,0,2);
}
CaloTriggerAnalyzer::~CaloTriggerAnalyzer ( )

Definition at line 39 of file CaloTriggerAnalyzer.cc.

{

   // do anything here that needs to be done at desctruction time
   // (e.g. close files, deallocate resources etc.)

}

Member Function Documentation

void CaloTriggerAnalyzer::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
) [private, virtual]

Implements edm::EDAnalyzer.

Definition at line 54 of file CaloTriggerAnalyzer.cc.

References absEta, dEta, dPhi, dPt, dR, DR_, etaDenom, etaNum, edm::Event::getByLabel(), highestGenPt, highestPt, highestPtGen, highPt, i, j, maxEta_, pt, ptDenom, ptNum, ref_, RPt, RPtEta, RPtEtaFull, secondGenPt, secondPt, secondPtf, secondPtGen, alcazmumu_cfi::src, src_, and threshold_.

{
  //  std::cout << src_ << std::endl;
  edm::Handle<edm::View<reco::Candidate> > ref;
  edm::Handle<edm::View<reco::Candidate> > src;

  bool gotRef = iEvent.getByLabel(ref_,ref);
  bool gotSrc = iEvent.getByLabel(src_,src);

  if(gotSrc) {
    highPt=0;
    secondPtf=0;
    for(edm::View<reco::Candidate>::const_iterator i = src->begin(); i!= src->end();++i)
      {
        pt->Fill(i->pt());
        if (i->pt()>highPt){
          secondPtf=highPt;
          highPt=i->pt();
        } else if (i->pt()>secondPtf){
          secondPtf=i->pt();
        }
      }

    if(src->size()>0)
      highestPt->Fill(highPt);
    else
      highestPt->Fill(0.0);


    if(src->size()>1)
      secondPt->Fill(secondPtf);
    else
      secondPt->Fill(0.0);
  }

  if(gotRef) {
    //get highest Pt gen object--loop over all to make sure it's the highest!
    highestGenPt=-1.0;
    secondGenPt=-1.0;
    for(edm::View<reco::Candidate>::const_iterator i = ref->begin(); i!= ref->end();++i){

      if (i->pt()>highestGenPt){
        highestGenPt=i->pt();
        highestPtGen->Fill(i->pt());
      } else if (i->pt()>secondGenPt){
        secondGenPt=i->pt();
        secondPtGen->Fill(i->pt());
      }
      
      if(fabs(i->eta())<maxEta_&&i->pt()>threshold_/2.)
        {
          ptDenom->Fill(i->pt());
          etaDenom->Fill(i->eta());
          
          //      printf("ref pt = %f  eta = %f phi = %f\n",i->pt(),i->eta(),i->phi());
          
          if(gotSrc)
            {
              bool matched=false;
              math::XYZTLorentzVector highestV(0.0001,0.,0.,0.0002);
              for(edm::View<reco::Candidate>::const_iterator j = src->begin(); j!= src->end();++j)
                {
                  dR->Fill(ROOT::Math::VectorUtil::DeltaR(i->p4(),j->p4()));
                  if(j->pt()>threshold_)
                    {
                      if(ROOT::Math::VectorUtil::DeltaR(i->p4(),j->p4())<DR_) {
                        //      printf("matched pt = %f  eta = %f phi = %f\n",j->pt(),j->eta(),j->phi());
                        
                        if(j->pt()>highestV.pt())
                          highestV = j->p4();
                        
                        matched=true;
                      }
                      
                    }
                }
            if(matched)
              {
                RPt->Fill(i->pt()/highestV.pt());
                RPtEtaFull->Fill(highestV.eta(), i->pt()/highestV.pt());
                RPtEta->Fill(fabs(highestV.eta()), i->pt()/highestV.pt());

                //              printf("matched abs(eta) = %f \n", fabs(highestV.eta()) );
                absEta->Fill(fabs(highestV.eta()));
                dPt->Fill((highestV.pt()-i->pt())/i->pt());
                dEta->Fill(highestV.eta()-i->eta());
                dPhi->Fill(highestV.phi()-i->phi());
                
                ptNum->Fill(i->pt());
                etaNum->Fill(i->eta());
              }
            }
        }
    }
  }
}

Member Data Documentation

TH1F* CaloTriggerAnalyzer::absEta [private]

Definition at line 58 of file CaloTriggerAnalyzer.h.

Referenced by analyze(), and CaloTriggerAnalyzer().

TH1F* CaloTriggerAnalyzer::dEta [private]

Definition at line 51 of file CaloTriggerAnalyzer.h.

Referenced by analyze(), and CaloTriggerAnalyzer().

TH1F* CaloTriggerAnalyzer::dPhi [private]

Definition at line 52 of file CaloTriggerAnalyzer.h.

Referenced by analyze(), and CaloTriggerAnalyzer().

TH1F* CaloTriggerAnalyzer::dPt [private]

Definition at line 50 of file CaloTriggerAnalyzer.h.

Referenced by analyze(), and CaloTriggerAnalyzer().

TH1F* CaloTriggerAnalyzer::dR [private]

Definition at line 59 of file CaloTriggerAnalyzer.h.

Referenced by analyze(), and CaloTriggerAnalyzer().

double CaloTriggerAnalyzer::DR_ [private]

Definition at line 35 of file CaloTriggerAnalyzer.h.

Referenced by analyze().

TH1F* CaloTriggerAnalyzer::eta [private]

Definition at line 43 of file CaloTriggerAnalyzer.h.

Definition at line 48 of file CaloTriggerAnalyzer.h.

Referenced by analyze(), and CaloTriggerAnalyzer().

TH1F* CaloTriggerAnalyzer::etaNum [private]

Definition at line 47 of file CaloTriggerAnalyzer.h.

Referenced by analyze(), and CaloTriggerAnalyzer().

Definition at line 39 of file CaloTriggerAnalyzer.h.

Referenced by analyze().

Definition at line 53 of file CaloTriggerAnalyzer.h.

Referenced by analyze(), and CaloTriggerAnalyzer().

Definition at line 55 of file CaloTriggerAnalyzer.h.

Referenced by analyze(), and CaloTriggerAnalyzer().

float CaloTriggerAnalyzer::highPt [private]

Definition at line 41 of file CaloTriggerAnalyzer.h.

Referenced by analyze().

double CaloTriggerAnalyzer::maxEta_ [private]

Definition at line 37 of file CaloTriggerAnalyzer.h.

Referenced by analyze().

TH1F* CaloTriggerAnalyzer::pt [private]

Definition at line 49 of file CaloTriggerAnalyzer.h.

Referenced by analyze(), and CaloTriggerAnalyzer().

Definition at line 46 of file CaloTriggerAnalyzer.h.

Referenced by analyze(), and CaloTriggerAnalyzer().

TH1F* CaloTriggerAnalyzer::ptNum [private]

Definition at line 45 of file CaloTriggerAnalyzer.h.

Referenced by analyze(), and CaloTriggerAnalyzer().

Definition at line 34 of file CaloTriggerAnalyzer.h.

Referenced by analyze().

TH1F* CaloTriggerAnalyzer::RPt [private]

Definition at line 57 of file CaloTriggerAnalyzer.h.

Referenced by analyze(), and CaloTriggerAnalyzer().

TProfile* CaloTriggerAnalyzer::RPtEta [private]

Definition at line 60 of file CaloTriggerAnalyzer.h.

Referenced by analyze(), and CaloTriggerAnalyzer().

TProfile* CaloTriggerAnalyzer::RPtEtaFull [private]

Definition at line 61 of file CaloTriggerAnalyzer.h.

Referenced by analyze(), and CaloTriggerAnalyzer().

Definition at line 40 of file CaloTriggerAnalyzer.h.

Referenced by analyze().

Definition at line 54 of file CaloTriggerAnalyzer.h.

Referenced by analyze(), and CaloTriggerAnalyzer().

Definition at line 42 of file CaloTriggerAnalyzer.h.

Referenced by analyze().

Definition at line 56 of file CaloTriggerAnalyzer.h.

Referenced by analyze(), and CaloTriggerAnalyzer().

Definition at line 33 of file CaloTriggerAnalyzer.h.

Referenced by analyze().

Definition at line 36 of file CaloTriggerAnalyzer.h.

Referenced by analyze().