CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
JetCollectionForEleHT Class Reference

#include <HLTrigger/JetCollectionForEleHT/src/JetCollectionForEleHT.cc>

Inheritance diagram for JetCollectionForEleHT:
edm::EDProducer edm::ProducerBase edm::ProductRegistryHelper

Public Member Functions

 JetCollectionForEleHT (const edm::ParameterSet &)
 
 ~JetCollectionForEleHT ()
 
- 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 ()
 

Private Member Functions

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

Private Attributes

edm::InputTag hltElectronTag
 
float 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
 
- Static Public Member Functions inherited from edm::EDProducer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
- 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

Description: [one line class summary]

Implementation: [Notes on implementation]

Definition at line 47 of file JetCollectionForEleHT.h.

Constructor & Destructor Documentation

JetCollectionForEleHT::JetCollectionForEleHT ( const edm::ParameterSet iConfig)
explicit

Definition at line 48 of file JetCollectionForEleHT.cc.

48  :
49  hltElectronTag(iConfig.getParameter< edm::InputTag > ("HltElectronTag")),
50  sourceJetTag(iConfig.getParameter< edm::InputTag > ("SourceJetTag")),
51  minDeltaR_(iConfig.getParameter< double > ("minDeltaR"))
52 {
53  produces<reco::CaloJetCollection>();
54 }
T getParameter(std::string const &) const
JetCollectionForEleHT::~JetCollectionForEleHT ( )

Definition at line 58 of file JetCollectionForEleHT.cc.

59 {
60 
61  // do anything here that needs to be done at desctruction time
62  // (e.g. close files, deallocate resources etc.)
63 
64 }

Member Function Documentation

void JetCollectionForEleHT::beginJob ( void  )
privatevirtual

Reimplemented from edm::EDProducer.

Definition at line 144 of file JetCollectionForEleHT.cc.

145 {
146 }
void JetCollectionForEleHT::endJob ( void  )
privatevirtual

Reimplemented from edm::EDProducer.

Definition at line 150 of file JetCollectionForEleHT.cc.

150  {
151 }
void JetCollectionForEleHT::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
privatevirtual

Implements edm::EDProducer.

Definition at line 75 of file JetCollectionForEleHT.cc.

References edm::Event::getByLabel(), hltElectronTag, i, j, minDeltaR_, position, edm::Event::put(), sourceJetTag, trigger::TriggerCluster, trigger::TriggerElectron, ExpressReco_HICollisions_FallBack::x, ExpressReco_HICollisions_FallBack::y, and z.

76 {
77  using namespace edm;
78 
80  iEvent.getByLabel(hltElectronTag,PrevFilterOutput);
81 
82  //its easier on the if statement flow if I try everything at once, shouldnt add to timing
83  std::vector<edm::Ref<reco::RecoEcalCandidateCollection> > clusCands;
84  PrevFilterOutput->getObjects(trigger::TriggerCluster,clusCands);
85  std::vector<edm::Ref<reco::ElectronCollection> > eleCands;
86  PrevFilterOutput->getObjects(trigger::TriggerElectron,eleCands);
87 
88  //prepare the collection of 3-D vector for electron momenta
89  std::vector<TVector3> ElePs;
90 
91  if(!clusCands.empty()){ //try trigger cluster
92  for(size_t candNr=0;candNr<clusCands.size();candNr++){
93  TVector3 positionVector(
94  clusCands[candNr]->superCluster()->position().x(),
95  clusCands[candNr]->superCluster()->position().y(),
96  clusCands[candNr]->superCluster()->position().z());
97  ElePs.push_back(positionVector);
98  }
99  }else if(!eleCands.empty()){ // try trigger electrons
100  for(size_t candNr=0;candNr<eleCands.size();candNr++){
101  TVector3 positionVector(
102  eleCands[candNr]->superCluster()->position().x(),
103  eleCands[candNr]->superCluster()->position().y(),
104  eleCands[candNr]->superCluster()->position().z());
105  ElePs.push_back(positionVector);
106  }
107  }
108 
109  edm::Handle<reco::CaloJetCollection> theCaloJetCollectionHandle;
110  iEvent.getByLabel(sourceJetTag, theCaloJetCollectionHandle);
111  const reco::CaloJetCollection* theCaloJetCollection = theCaloJetCollectionHandle.product();
112 
113  std::auto_ptr< reco::CaloJetCollection > theFilteredCaloJetCollection(new reco::CaloJetCollection);
114 
115  bool isOverlapping;
116 
117  for(unsigned int j=0; j<theCaloJetCollection->size(); j++) {
118 
119  isOverlapping = false;
120  for(unsigned int i=0; i<ElePs.size(); i++) {
121 
122  TVector3 JetP((*theCaloJetCollection)[j].px(), (*theCaloJetCollection)[j].py(), (*theCaloJetCollection)[j].pz());
123  double DR = ElePs[i].DeltaR(JetP);
124 
125  if(DR<minDeltaR_) {
126  isOverlapping = true;
127  break;
128  }
129  }
130 
131  if(!isOverlapping) theFilteredCaloJetCollection->push_back((*theCaloJetCollection)[j]);
132  }
133 
134  //do the filtering
135 
136  iEvent.put(theFilteredCaloJetCollection);
137 
138  return;
139 
140 }
int i
Definition: DBlmapReader.cc:9
static int position[TOTALCHAMBERS][3]
Definition: ReadPGInfo.cc:509
Definition: DDAxes.h:10
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:84
int j
Definition: DBlmapReader.cc:9
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:359
std::vector< CaloJet > CaloJetCollection
collection of CaloJet objects

Member Data Documentation

edm::InputTag JetCollectionForEleHT::hltElectronTag
private

Definition at line 58 of file JetCollectionForEleHT.h.

Referenced by produce().

float JetCollectionForEleHT::minDeltaR_
private

Definition at line 61 of file JetCollectionForEleHT.h.

Referenced by produce().

edm::InputTag JetCollectionForEleHT::sourceJetTag
private

Definition at line 59 of file JetCollectionForEleHT.h.

Referenced by produce().