#include <EgammaHLTRecoEcalCandidateProducers.h>
Classes | |
class | h |
Public Member Functions | |
virtual void | beginJob (void) |
EgammaHLTRecoEcalCandidateProducers (const edm::ParameterSet &ps) | |
virtual void | produce (edm::Event &evt, const edm::EventSetup &es) |
~EgammaHLTRecoEcalCandidateProducers () | |
Private Attributes | |
edm::ParameterSet | conf_ |
std::string | recoEcalCandidateCollection_ |
edm::InputTag | scHybridBarrelProducer_ |
edm::InputTag | scIslandEndcapProducer_ |
$Id:
Definition at line 26 of file EgammaHLTRecoEcalCandidateProducers.h.
EgammaHLTRecoEcalCandidateProducers::EgammaHLTRecoEcalCandidateProducers | ( | const edm::ParameterSet & | ps | ) |
Definition at line 29 of file EgammaHLTRecoEcalCandidateProducers.cc.
References conf_, edm::ParameterSet::getParameter(), recoEcalCandidateCollection_, scHybridBarrelProducer_, and scIslandEndcapProducer_.
: conf_(config) { // use onfiguration file to setup input/output collection names scHybridBarrelProducer_ = conf_.getParameter<edm::InputTag>("scHybridBarrelProducer"); scIslandEndcapProducer_ = conf_.getParameter<edm::InputTag>("scIslandEndcapProducer"); recoEcalCandidateCollection_ = conf_.getParameter<std::string>("recoEcalCandidateCollection"); // Register the product produces< reco::RecoEcalCandidateCollection >(recoEcalCandidateCollection_); }
EgammaHLTRecoEcalCandidateProducers::~EgammaHLTRecoEcalCandidateProducers | ( | ) |
Definition at line 42 of file EgammaHLTRecoEcalCandidateProducers.cc.
{}
void EgammaHLTRecoEcalCandidateProducers::beginJob | ( | void | ) | [virtual] |
Reimplemented from edm::EDProducer.
Definition at line 44 of file EgammaHLTRecoEcalCandidateProducers.cc.
{}
void EgammaHLTRecoEcalCandidateProducers::produce | ( | edm::Event & | evt, |
const edm::EventSetup & | es | ||
) | [virtual] |
Implements edm::EDProducer.
Definition at line 46 of file EgammaHLTRecoEcalCandidateProducers.cc.
References edm::Event::getByLabel(), p4, edm::Event::put(), recoEcalCandidateCollection_, scHybridBarrelProducer_, and scIslandEndcapProducer_.
{ using namespace edm; // // create empty output collections // reco::RecoEcalCandidateCollection outputRecoEcalCandidateCollection; std::auto_ptr< reco::RecoEcalCandidateCollection > outputRecoEcalCandidateCollection_p(new reco::RecoEcalCandidateCollection); // Get the Barrel Super Cluster collection Handle<reco::SuperClusterCollection> scBarrelHandle; theEvent.getByLabel(scHybridBarrelProducer_,scBarrelHandle); // Get the Endcap Super Cluster collection Handle<reco::SuperClusterCollection> scEndcapHandle; theEvent.getByLabel(scIslandEndcapProducer_,scEndcapHandle); // Loop over barrel SC and fill the recoecal collection int iSC=0; // index in recoecal collection int lSC=0; // local index on barrel for(reco::SuperClusterCollection::const_iterator aClus = scBarrelHandle->begin(); aClus != scBarrelHandle->end(); aClus++) { const reco::Particle::Point vtx( 0, 0, 0 ); // compute correctly the momentum vector of the recoecal from primary vertex and cluster position math::XYZVector direction =aClus->position() - vtx; math::XYZVector momentum = direction.unit() * aClus->energy(); const reco::Particle::LorentzVector p4(momentum.x(), momentum.y(), momentum.z(), aClus->energy() ); reco::RecoEcalCandidate newCandidate(0, p4, vtx); outputRecoEcalCandidateCollection.push_back(newCandidate); reco::SuperClusterRef scRef(reco::SuperClusterRef(scBarrelHandle, lSC)); outputRecoEcalCandidateCollection[iSC].setSuperCluster(scRef); lSC++; iSC++; } // Loop over Endcap SC and fill the recoecal collection lSC=0; // reset local index for endcap for(reco::SuperClusterCollection::const_iterator aClus = scEndcapHandle->begin(); aClus != scEndcapHandle->end(); aClus++) { const reco::Particle::Point vtx( 0, 0, 0 ); math::XYZVector direction =aClus->position() - vtx; math::XYZVector momentum = direction.unit() * aClus->energy(); const reco::Particle::LorentzVector p4(momentum.x(), momentum.y(), momentum.z(), aClus->energy() ); reco::RecoEcalCandidate newCandidate(0, p4, vtx); outputRecoEcalCandidateCollection.push_back(newCandidate); reco::SuperClusterRef scRef(reco::SuperClusterRef(scEndcapHandle, lSC)); outputRecoEcalCandidateCollection[iSC].setSuperCluster(scRef); iSC++; lSC++; } // put the product in the event outputRecoEcalCandidateCollection_p->assign(outputRecoEcalCandidateCollection.begin(),outputRecoEcalCandidateCollection.end()); theEvent.put( outputRecoEcalCandidateCollection_p, recoEcalCandidateCollection_); }
Definition at line 41 of file EgammaHLTRecoEcalCandidateProducers.h.
Referenced by EgammaHLTRecoEcalCandidateProducers().
std::string EgammaHLTRecoEcalCandidateProducers::recoEcalCandidateCollection_ [private] |
Definition at line 38 of file EgammaHLTRecoEcalCandidateProducers.h.
Referenced by EgammaHLTRecoEcalCandidateProducers(), and produce().
Definition at line 39 of file EgammaHLTRecoEcalCandidateProducers.h.
Referenced by EgammaHLTRecoEcalCandidateProducers(), and produce().
Definition at line 40 of file EgammaHLTRecoEcalCandidateProducers.h.
Referenced by EgammaHLTRecoEcalCandidateProducers(), and produce().