CMS 3D CMS Logo

L2TauJetsMerger Class Reference

#include <RecoTauTag/HLTProducers/interface/L2TauJetsMerger.h>

Inheritance diagram for L2TauJetsMerger:

edm::EDProducer edm::ProducerBase edm::ProductRegistryHelper

List of all members.

Public Member Functions

 L2TauJetsMerger (const edm::ParameterSet &)
virtual void produce (edm::Event &, const edm::EventSetup &)
 ~L2TauJetsMerger ()

Private Types

typedef std::vector
< edm::InputTag
vtag

Private Attributes

vtag jetSrc
double mEt_Min
std::map< int, const
reco::CaloJet
myL2L1JetsMap


Detailed Description

Definition at line 19 of file L2TauJetsMerger.h.


Member Typedef Documentation

typedef std::vector<edm::InputTag> L2TauJetsMerger::vtag [private]

Definition at line 27 of file L2TauJetsMerger.h.


Constructor & Destructor Documentation

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

Definition at line 15 of file L2TauJetsMerger.cc.

References edm::ParameterSet::getParameter(), jetSrc, and mEt_Min.

00016 {
00017   jetSrc = iConfig.getParameter<vtag>("JetSrc");
00018   //l1ParticlesTau = iConfig.getParameter<InputTag>("L1ParticlesTau");
00019   //l1ParticlesJet = iConfig.getParameter<InputTag>("L1ParticlesJet");
00020   //tauTrigger = iConfig.getParameter<InputTag>("L1TauTrigger");
00021   mEt_Min = iConfig.getParameter<double>("EtMin");
00022   
00023   produces<CaloJetCollection>();
00024 }

L2TauJetsMerger::~L2TauJetsMerger (  ) 

Definition at line 26 of file L2TauJetsMerger.cc.

00026 { }


Member Function Documentation

void L2TauJetsMerger::produce ( edm::Event iEvent,
const edm::EventSetup iES 
) [virtual]

Implements edm::EDProducer.

Definition at line 28 of file L2TauJetsMerger.cc.

References deltaR(), edm::Event::getByLabel(), jetSrc, mEt_Min, myL2L1JetsMap, reco::Particle::p4(), edm::Event::put(), HcalSimpleRecAlgoImpl::reco(), s, and std.

00029 {
00030 
00031  using namespace edm;
00032  using namespace std;
00033  using namespace reco;
00034 
00035  //Getting all the L1Seeds
00036 
00037  
00038  //Getting the Collections of L2ReconstructedJets from L1Seeds
00039  //and removing the collinear jets
00040  myL2L1JetsMap.clear();
00041  int iL1Jet = 0;
00042  for( vtag::const_iterator s = jetSrc.begin(); s != jetSrc.end(); ++ s ) {
00043    edm::Handle<CaloJetCollection> tauJets;
00044    iEvent.getByLabel( * s, tauJets );
00045    CaloJetCollection::const_iterator iTau = tauJets->begin();
00046    if(iTau != tauJets->end()){
00047      //Create a Map to associate to every Jet its L1SeedId, i.e. 0,1,2 or 3
00048      if(iTau->et() > mEt_Min)
00049        myL2L1JetsMap.insert(pair<int, const CaloJet>(iL1Jet, *(iTau)));
00050    }
00051    iL1Jet++;
00052  }
00053 
00054  auto_ptr<CaloJetCollection> tauL2jets(new CaloJetCollection); 
00055  //Removing the collinear jets
00056  for(int iJet =0;iJet<iL1Jet;iJet++)
00057    {
00058      map<int, const reco::CaloJet>::const_iterator myL2itr = myL2L1JetsMap.find(iJet);
00059      if(myL2itr!=myL2L1JetsMap.end()){
00060        
00061        const CaloJet my1stJet = myL2itr->second;
00062        for(int i2Jet = iJet+1;i2Jet<iL1Jet;i2Jet++)
00063          {
00064            map<int, const reco::CaloJet>::const_iterator my2L2itr = myL2L1JetsMap.find(i2Jet);
00065            if(my2L2itr!=myL2L1JetsMap.end()){
00066              const CaloJet my2ndJet = my2L2itr->second;
00067              
00068              double deltaR = ROOT::Math::VectorUtil::DeltaR(my1stJet.p4().Vect(), my2ndJet.p4().Vect());
00069              if(deltaR < 0.1) 
00070                {
00071                  //              cout <<"Collinear jets "<<deltaR<<endl;
00072                  myL2L1JetsMap.erase(my2L2itr->first);
00073                }
00074            }
00075          }
00076      }
00077    }
00078   for(int iJet =0;iJet<iL1Jet;iJet++)
00079    {
00080      map<int, const reco::CaloJet>::const_iterator myL2itr = myL2L1JetsMap.find(iJet);
00081      if(myL2itr!=myL2L1JetsMap.end()){
00082        
00083        const CaloJet my1stJet = myL2itr->second;
00084        tauL2jets->push_back(my1stJet);
00085      }
00086    }
00087 
00088   
00089   //  cout <<"Size of L2 jets "<<tauL2jets->size()<<endl;
00090 
00091   iEvent.put(tauL2jets);
00092 
00093 }


Member Data Documentation

vtag L2TauJetsMerger::jetSrc [private]

Definition at line 28 of file L2TauJetsMerger.h.

Referenced by L2TauJetsMerger(), and produce().

double L2TauJetsMerger::mEt_Min [private]

Definition at line 29 of file L2TauJetsMerger.h.

Referenced by L2TauJetsMerger(), and produce().

std::map<int, const reco::CaloJet> L2TauJetsMerger::myL2L1JetsMap [private]

Definition at line 30 of file L2TauJetsMerger.h.

Referenced by produce().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:27:11 2009 for CMSSW by  doxygen 1.5.4