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 Attributes
GsfElectronCoreProducer Class Reference

#include <GsfElectronCoreProducer.h>

Inheritance diagram for GsfElectronCoreProducer:
GsfElectronCoreBaseProducer edm::EDProducer edm::ProducerBase edm::ProductRegistryHelper

Public Member Functions

 GsfElectronCoreProducer (const edm::ParameterSet &)
 
virtual void produce (edm::Event &, const edm::EventSetup &)
 
virtual ~GsfElectronCoreProducer ()
 
- Public Member Functions inherited from GsfElectronCoreBaseProducer
 GsfElectronCoreBaseProducer (const edm::ParameterSet &conf)
 
virtual ~GsfElectronCoreBaseProducer ()
 
- 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 Attributes

edm::InputTag edCoresTag_
 
edm::InputTag pfSuperClustersTag_
 
edm::InputTag pfSuperClusterTrackMapTag_
 

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 GsfElectronCoreBaseProducer
static void fillDescription (edm::ParameterSetDescription &)
 
- Static Public Member Functions inherited from edm::EDProducer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from GsfElectronCoreBaseProducer
void fillElectronCore (reco::GsfElectronCore *)
 
void initEvent (edm::Event &event, const edm::EventSetup &setup)
 
- 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)
 
- Protected Attributes inherited from GsfElectronCoreBaseProducer
edm::Handle
< reco::TrackCollection
ctfTracksH_
 
edm::Handle
< reco::GsfTrackCollection
gsfTracksH_
 

Detailed Description

Definition at line 6 of file GsfElectronCoreProducer.h.

Constructor & Destructor Documentation

GsfElectronCoreProducer::GsfElectronCoreProducer ( const edm::ParameterSet config)
explicit

Definition at line 30 of file GsfElectronCoreProducer.cc.

References edCoresTag_, edm::ParameterSet::getParameter(), pfSuperClustersTag_, and pfSuperClusterTrackMapTag_.

32  {
33  edCoresTag_ = config.getParameter<edm::InputTag>("ecalDrivenGsfElectronCoresTag") ;
34  pfSuperClustersTag_ = config.getParameter<edm::InputTag>("pfSuperClusters") ;
35  pfSuperClusterTrackMapTag_ = config.getParameter<edm::InputTag>("pfSuperClusterTrackMap") ;
36  }
T getParameter(std::string const &) const
GsfElectronCoreBaseProducer(const edm::ParameterSet &conf)
GsfElectronCoreProducer::~GsfElectronCoreProducer ( )
virtual

Definition at line 92 of file GsfElectronCoreProducer.cc.

93  {}

Member Function Documentation

void GsfElectronCoreProducer::produce ( edm::Event event,
const edm::EventSetup setup 
)
virtual

Implements edm::EDProducer.

Definition at line 38 of file GsfElectronCoreProducer.cc.

References reco::GsfElectronCore::clone(), edCoresTag_, GsfElectronCoreBaseProducer::fillElectronCore(), reco::GsfElectronCore::gsfTrack(), GsfElectronCoreBaseProducer::gsfTracksH_, i, GsfElectronCoreBaseProducer::initEvent(), edm::Ref< C, T, F >::isNull(), LogDebug, pfSuperClustersTag_, pfSuperClusterTrackMapTag_, edm::Handle< T >::product(), and reco::GsfElectronCore::setPflowSuperCluster().

39  {
40  // base input
42 
43  // output
44  std::auto_ptr<GsfElectronCoreCollection> electrons(new GsfElectronCoreCollection) ;
45 
46  // additional input
48  event.getByLabel(edCoresTag_,edCoresH) ;
50  event.getByLabel(pfSuperClustersTag_,pfClustersH) ;
52  event.getByLabel(pfSuperClusterTrackMapTag_,pfClusterTracksH) ;
53 
54  // loop on pure tracker driven tracks
55  const GsfTrackCollection * gsfTrackCollection = gsfTracksH_.product() ;
56  for ( unsigned int i=0 ; i<gsfTrackCollection->size() ; ++i )
57  {
59  GsfElectronCore * ele = new GsfElectronCore(gsfTrackRef) ;
60 
61  if (ele->ecalDrivenSeed())
62  { delete ele ; continue ; }
63 
65 
66  ele->setPflowSuperCluster((*pfClusterTracksH)[gsfTrackRef]) ;
67  if (!(ele->superCluster().isNull()))
68  { electrons->push_back(*ele) ; }
69  else
70  { LogDebug("GsfElectronCoreProducer")<<"GsfTrack with no associated CaloCluster." ; }
71  delete ele ;
72  }
73 
74  // clone and complete ecal driven electrons
75  const GsfElectronCoreCollection * edCoresCollection = edCoresH.product() ;
76  GsfElectronCoreCollection::const_iterator edCoreIter ;
77  for
78  ( edCoreIter = edCoresCollection->begin() ;
79  edCoreIter != edCoresCollection->end() ;
80  edCoreIter++ )
81  {
82  GsfElectronCore * eleCore = edCoreIter->clone() ;
83  const GsfTrackRef & gsfTrackRef = eleCore->gsfTrack() ;
84  eleCore->setPflowSuperCluster((*pfClusterTracksH)[gsfTrackRef]) ;
85  electrons->push_back(*eleCore) ;
86  delete eleCore ;
87  }
88 
89  event.put(electrons) ;
90  }
#define LogDebug(id)
void initEvent(edm::Event &event, const edm::EventSetup &setup)
int i
Definition: DBlmapReader.cc:9
const GsfTrackRef & gsfTrack() const
void setPflowSuperCluster(const SuperClusterRef &scl)
edm::Handle< reco::GsfTrackCollection > gsfTracksH_
bool isNull() const
Checks for null.
Definition: Ref.h:244
std::vector< GsfElectronCore > GsfElectronCoreCollection
std::vector< GsfTrack > GsfTrackCollection
collection of GsfTracks
Definition: GsfTrackFwd.h:9
T const * product() const
Definition: Handle.h:74
GsfElectronCore * clone() const
void fillElectronCore(reco::GsfElectronCore *)

Member Data Documentation

edm::InputTag GsfElectronCoreProducer::edCoresTag_
private

Definition at line 18 of file GsfElectronCoreProducer.h.

Referenced by GsfElectronCoreProducer(), and produce().

edm::InputTag GsfElectronCoreProducer::pfSuperClustersTag_
private

Definition at line 19 of file GsfElectronCoreProducer.h.

Referenced by GsfElectronCoreProducer(), and produce().

edm::InputTag GsfElectronCoreProducer::pfSuperClusterTrackMapTag_
private

Definition at line 20 of file GsfElectronCoreProducer.h.

Referenced by GsfElectronCoreProducer(), and produce().