CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
HLTJetCollectionsForLeptonPlusJets< jetType > Class Template Reference

#include <HLTJetCollectionsForLeptonPlusJets.h>

Inheritance diagram for HLTJetCollectionsForLeptonPlusJets< jetType >:
edm::EDProducer edm::ProducerBase edm::ProductRegistryHelper

Public Member Functions

 HLTJetCollectionsForLeptonPlusJets (const edm::ParameterSet &)
 
 ~HLTJetCollectionsForLeptonPlusJets ()
 
- Public Member Functions inherited from edm::EDProducer
 EDProducer ()
 
virtual ~EDProducer ()
 
- Public Member Functions inherited from edm::ProducerBase
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
boost::function< void(const
BranchDescription &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from edm::EDProducer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Private Member Functions

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

Private Attributes

edm::InputTag hltLeptonTag
 
double minDeltaR_
 
edm::InputTag sourceJetTag
 

Additional Inherited Members

- Public Types inherited from edm::EDProducer
typedef EDProducer ModuleType
 
typedef WorkerT< EDProducerWorkerType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Protected Member Functions inherited from edm::EDProducer
CurrentProcessingContext const * currentContext () const
 
- Protected Member Functions inherited from edm::ProducerBase
template<class TProducer , class TMethod >
void callWhenNewProductsRegistered (TProducer *iProd, TMethod iMethod)
 

Detailed Description

template<typename jetType>
class HLTJetCollectionsForLeptonPlusJets< jetType >

This class is an EDProducer implementing an HLT trigger for lepton and jet objects, cutting on variables relating to the jet 4-momentum representation. The producer checks for overlaps between leptons and jets and if a combination of one lepton + jets cleaned against this leptons satisfy the cuts. These jets are then added to a cleaned jet collection which is put into the event.

Date:
2012/02/06 15:09:21
Revision:
1.4
Author
Lukasz Kreczko

Definition at line 39 of file HLTJetCollectionsForLeptonPlusJets.h.

Constructor & Destructor Documentation

template<typename jetType >
HLTJetCollectionsForLeptonPlusJets< jetType >::HLTJetCollectionsForLeptonPlusJets ( const edm::ParameterSet iConfig)
explicit

Definition at line 25 of file HLTJetCollectionsForLeptonPlusJets.cc.

25  :
26  hltLeptonTag(iConfig.getParameter< edm::InputTag > ("HltLeptonTag")),
27  sourceJetTag(iConfig.getParameter< edm::InputTag > ("SourceJetTag")),
28  minDeltaR_(iConfig.getParameter< double > ("minDeltaR"))
29 {
30  using namespace edm;
31  using namespace std;
32  typedef vector<RefVector<vector<jetType>,jetType,refhelper::FindUsingAdvance<vector<jetType>,jetType> > > JetCollectionVector;
33  produces<JetCollectionVector> ();
34 }
T getParameter(std::string const &) const
template<typename jetType >
HLTJetCollectionsForLeptonPlusJets< jetType >::~HLTJetCollectionsForLeptonPlusJets ( )

Definition at line 37 of file HLTJetCollectionsForLeptonPlusJets.cc.

38 {
39  // do anything here that needs to be done at desctruction time
40  // (e.g. close files, deallocate resources etc.)
41 
42 }

Member Function Documentation

template<typename jetType >
void HLTJetCollectionsForLeptonPlusJets< jetType >::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 46 of file HLTJetCollectionsForLeptonPlusJets.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), and mergeVDriftHistosByStation::name.

46  {
48  desc.add<edm::InputTag> ("HltLeptonTag", edm::InputTag("triggerFilterObjectWithRefs"));
49  desc.add<edm::InputTag> ("SourceJetTag", edm::InputTag("caloJetCollection"));
50  desc.add<double> ("minDeltaR", 0.5);
51  descriptions.add(std::string("hlt")+std::string(typeid(HLTJetCollectionsForLeptonPlusJets<jetType>).name()),desc);
52 }
ParameterDescriptionBase * add(U const &iLabel, T const &value)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
template<typename jetType >
void HLTJetCollectionsForLeptonPlusJets< jetType >::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
privatevirtual

Implements edm::EDProducer.

Definition at line 63 of file HLTJetCollectionsForLeptonPlusJets.cc.

References deltaR(), edm::Event::getByLabel(), HLTJetCollectionsForLeptonPlusJets< jetType >::hltLeptonTag, j, HLTJetCollectionsForLeptonPlusJets< jetType >::minDeltaR_, p4, position, edm::Event::put(), HLTJetCollectionsForLeptonPlusJets< jetType >::sourceJetTag, trigger::TriggerCluster, trigger::TriggerElectron, and trigger::TriggerMuon.

64 {
65  using namespace edm;
66  using namespace std;
67 
68  typedef vector<RefVector<vector<jetType>,jetType,refhelper::FindUsingAdvance<vector<jetType>,jetType> > > JetCollectionVector;
69  typedef vector<jetType> JetCollection;
72 
74  iEvent.getByLabel(hltLeptonTag,PrevFilterOutput);
75 
76  //its easier on the if statement flow if I try everything at once, shouldnt add to timing
77  vector<Ref<reco::RecoEcalCandidateCollection> > clusCands;
78  PrevFilterOutput->getObjects(trigger::TriggerCluster,clusCands);
79 
80  vector<Ref<reco::ElectronCollection> > eleCands;
81  PrevFilterOutput->getObjects(trigger::TriggerElectron,eleCands);
82 
83  vector<reco::RecoChargedCandidateRef> muonCands;
84  PrevFilterOutput->getObjects(trigger::TriggerMuon,muonCands);
85 
86  Handle<JetCollection> theJetCollectionHandle;
87  iEvent.getByLabel(sourceJetTag, theJetCollectionHandle);
88 
89  const JetCollection & theJetCollection = *theJetCollectionHandle;
90 
91  auto_ptr < JetCollectionVector > allSelections(new JetCollectionVector());
92 
93  if(!clusCands.empty()){ //try trigger cluster
94  for(size_t candNr=0;candNr<clusCands.size();candNr++){
95  JetRefVector refVector;
96  for (unsigned int j = 0; j < theJetCollection.size(); j++) {
97  if (deltaR(clusCands[candNr]->superCluster()->position(),theJetCollection[j]) > minDeltaR_) refVector.push_back(JetRef(theJetCollectionHandle, j));
98  }
99  allSelections->push_back(refVector);
100  }
101  }
102 
103  if(!eleCands.empty()){ //try trigger cluster
104  for(size_t candNr=0;candNr<eleCands.size();candNr++){
105  JetRefVector refVector;
106  for (unsigned int j = 0; j < theJetCollection.size(); j++) {
107  if (deltaR(eleCands[candNr]->superCluster()->position(),theJetCollection[j]) > minDeltaR_) refVector.push_back(JetRef(theJetCollectionHandle, j));
108  }
109  allSelections->push_back(refVector);
110  }
111  }
112 
113  if(!muonCands.empty()){ //try trigger cluster
114  for(size_t candNr=0;candNr<muonCands.size();candNr++){
115  JetRefVector refVector;
116  for (unsigned int j = 0; j < theJetCollection.size(); j++) {
117  if (deltaR(muonCands[candNr]->p4(),theJetCollection[j]) > minDeltaR_) refVector.push_back(JetRef(theJetCollectionHandle, j));
118  }
119  allSelections->push_back(refVector);
120  }
121  }
122 
123 
124 
125 
126  iEvent.put(allSelections);
127 
128  return;
129 
130 }
std::vector< Jet > JetCollection
Definition: Jet.h:49
edm::Ref< JetCollection > JetRef
Definition: Jet.h:51
static int position[TOTALCHAMBERS][3]
Definition: ReadPGInfo.cc:509
edm::RefVector< JetCollection > JetRefVector
Definition: Jet.h:52
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:85
double p4[4]
Definition: TauolaWrapper.h:92
int j
Definition: DBlmapReader.cc:9
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:356
double deltaR(double eta1, double eta2, double phi1, double phi2)
Definition: TreeUtility.cc:17

Member Data Documentation

template<typename jetType >
edm::InputTag HLTJetCollectionsForLeptonPlusJets< jetType >::hltLeptonTag
private
template<typename jetType >
double HLTJetCollectionsForLeptonPlusJets< jetType >::minDeltaR_
private
template<typename jetType >
edm::InputTag HLTJetCollectionsForLeptonPlusJets< jetType >::sourceJetTag
private