CMS 3D CMS Logo

ElectronGSPixelSeedProducer Class Reference

#include <FastSimulation/EgammaElectronAlgos/plugins/ElectronGSPixelSeedProducer.h>

Inheritance diagram for ElectronGSPixelSeedProducer:

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

List of all members.

Public Member Functions

virtual void beginRun (edm::Run &run, const edm::EventSetup &es)
 ElectronGSPixelSeedProducer (const edm::ParameterSet &conf)
 Description: EDProducer of ElectronGSPixelSeed objects.
virtual void produce (edm::Event &e, const edm::EventSetup &c)
virtual ~ElectronGSPixelSeedProducer ()

Private Member Functions

void filterClusters (const edm::Handle< reco::SuperClusterCollection > &superClusters, HBHERecHitMetaCollection *mhbhe, reco::SuperClusterRefVector &sclRefs)

Private Attributes

HoECalculator calc_
edm::InputTag clusters_ [2]
bool fromTrackerSeeds_
edm::InputTag hcalRecHits_
const HBHERecHitCollectionhithbhe_
edm::InputTag initialSeeds_
ElectronGSPixelSeedGeneratormatcher_
double maxHOverE_
double SCEtCut_
edm::InputTag simTracks_
TrajectorySeedCollectiontheInitialSeedColl
edm::InputTag trackerHits_


Detailed Description

Definition at line 28 of file ElectronGSPixelSeedProducer.h.


Constructor & Destructor Documentation

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

Description: EDProducer of ElectronGSPixelSeed objects.

Implementation: <Notes on="" implementation>="">

Definition at line 42 of file ElectronGSPixelSeedProducer.cc.

References clusters_, fromTrackerSeeds_, edm::ParameterSet::getParameter(), hcalRecHits_, initialSeeds_, matcher_, maxHOverE_, python::EventAnalyzer_cfg::pset, SCEtCut_, simTracks_, and trackerHits_.

00043 {
00044 
00045   edm::ParameterSet pset = iConfig.getParameter<edm::ParameterSet>("SeedConfiguration");
00046   SCEtCut_=pset.getParameter<double>("SCEtCut");
00047   maxHOverE_=pset.getParameter<double>("maxHOverE");
00048   fromTrackerSeeds_=pset.getParameter<bool>("fromTrackerSeeds");
00049   initialSeeds_=pset.getParameter<edm::InputTag>("initialSeeds");
00050 
00051   matcher_ = new ElectronGSPixelSeedGenerator(pset,
00052                                               iConfig.getParameter<double>("pTMin"),
00053                                               iConfig.getParameter<edm::InputTag>("beamSpot"));
00054                                               
00055  //  get labels from config'
00056   clusters_[0]=iConfig.getParameter<edm::InputTag>("barrelSuperClusters"); 
00057   clusters_[1]=iConfig.getParameter<edm::InputTag>("endcapSuperClusters");
00058   simTracks_=iConfig.getParameter<edm::InputTag>("simTracks");
00059   trackerHits_=iConfig.getParameter<edm::InputTag>("trackerHits");
00060   hcalRecHits_= pset.getParameter<edm::InputTag>("hcalRecHits");
00061 
00062   //register your products
00063   produces<reco::ElectronPixelSeedCollection>();
00064 
00065 }

ElectronGSPixelSeedProducer::~ElectronGSPixelSeedProducer (  )  [virtual]

Definition at line 68 of file ElectronGSPixelSeedProducer.cc.

References matcher_.

00069 {
00070    // do anything here that needs to be done at desctruction time
00071    // (e.g. close files, deallocate resources etc.)
00072       delete matcher_;
00073 }


Member Function Documentation

void ElectronGSPixelSeedProducer::beginRun ( edm::Run run,
const edm::EventSetup es 
) [virtual]

Reimplemented from edm::EDProducer.

Definition at line 76 of file ElectronGSPixelSeedProducer.cc.

References calc_, edm::EventSetup::get(), matcher_, and ElectronGSPixelSeedGenerator::setupES().

00076                                                                             {
00077   // Get the calo geometry
00078   edm::ESHandle<CaloGeometry> theCaloGeom;
00079   es.get<CaloGeometryRecord>().get(theCaloGeom);
00080 
00081   // The H/E calculator
00082   calc_=HoECalculator(theCaloGeom);
00083 
00084   matcher_->setupES(es);  
00085 
00086 }

void ElectronGSPixelSeedProducer::filterClusters ( const edm::Handle< reco::SuperClusterCollection > &  superClusters,
HBHERecHitMetaCollection mhbhe,
reco::SuperClusterRefVector sclRefs 
) [private]

Definition at line 147 of file ElectronGSPixelSeedProducer.cc.

References calc_, reco::CaloCluster::energy(), reco::CaloCluster::eta(), i, LogDebug, maxHOverE_, edm::RefVector< C, T, F >::push_back(), SCEtCut_, and edm::RefVector< C, T, F >::size().

Referenced by produce().

00150 {
00151 
00152   // filter the superclusters
00153   // - with EtCut
00154   // with HoE
00155   for (unsigned int i=0;i<superClusters->size();++i) {
00156 
00157     const reco::SuperCluster &scl=(*superClusters)[i];
00158     
00159     if (scl.energy()/cosh(scl.eta())>SCEtCut_) {
00160       
00161       double HoE=calc_(&scl,mhbhe);
00162       if (HoE <= maxHOverE_) {
00163         sclRefs.push_back(edm::Ref<reco::SuperClusterCollection> (superClusters,i));
00164       }
00165       
00166     }
00167     
00168   }
00169 
00170   LogDebug("ElectronPixelSeedProducer")  <<"Filtered out "<<sclRefs.size() <<" superclusters from "<<superClusters->size() ;
00171 
00172 }

void ElectronGSPixelSeedProducer::produce ( edm::Event e,
const edm::EventSetup c 
) [virtual]

Implements edm::EDProducer.

Definition at line 88 of file ElectronGSPixelSeedProducer.cc.

References clusters_, filterClusters(), fromTrackerSeeds_, edm::Event::getByLabel(), hcalRecHits_, i, initialSeeds_, LogDebug, matcher_, edm::Handle< T >::product(), edm::Event::put(), ElectronGSPixelSeedGenerator::run(), simTracks_, theInitialSeedColl, and trackerHits_.

00089 {
00090   LogDebug("entering");
00091   LogDebug("")  <<"[ElectronGSPixelSeedProducer::produce] entering " ;
00092 
00093   // get initial TrajectorySeeds if necessary
00094   if (fromTrackerSeeds_) {
00095 
00096     edm::Handle<TrajectorySeedCollection> hSeeds;
00097     e.getByLabel(initialSeeds_, hSeeds);
00098     theInitialSeedColl = const_cast<TrajectorySeedCollection *> (hSeeds.product());
00099 
00100   } else { 
00101 
00102     theInitialSeedColl=0;// not needed in this case
00103 
00104   }
00105   
00106   std::auto_ptr<reco::ElectronPixelSeedCollection> pSeeds;
00107   reco::ElectronPixelSeedCollection *seeds= new reco::ElectronPixelSeedCollection;
00108 
00109   // Get the Monte Carlo truth (SimTracks)
00110   edm::Handle<edm::SimTrackContainer> theSTC;
00111   e.getByLabel(simTracks_,theSTC);
00112   const edm::SimTrackContainer* theSimTracks = &(*theSTC);
00113   
00114   // Get the collection of Tracker RecHits
00115   edm::Handle<SiTrackerGSMatchedRecHit2DCollection> theRHC;
00116   e.getByLabel(trackerHits_, theRHC);
00117   const SiTrackerGSMatchedRecHit2DCollection* theGSRecHits = &(*theRHC);
00118 
00119   // get Hcal Rechit collection
00120   edm::Handle<HBHERecHitCollection> hbhe;
00121   HBHERecHitMetaCollection *mhbhe=0;
00122   bool got = e.getByLabel(hcalRecHits_,hbhe);  
00123   if (got) mhbhe = new HBHERecHitMetaCollection(*hbhe);
00124 
00125   // Get the two supercluster collections
00126   for (unsigned int i=0; i<2; i++) {  
00127 
00128     // invoke algorithm
00129     edm::Handle<reco::SuperClusterCollection> clusters;
00130     e.getByLabel(clusters_[i],clusters);
00131     reco::SuperClusterRefVector clusterRefs;
00132     filterClusters(clusters,mhbhe,clusterRefs);
00133     matcher_->run(e,clusterRefs,theGSRecHits,theSimTracks,theInitialSeedColl,*seeds);
00134 
00135   }
00136 
00137   // Save event content
00138   pSeeds=  std::auto_ptr<reco::ElectronPixelSeedCollection>(seeds);
00139   e.put(pSeeds);
00140 
00141   // Clean memory
00142   delete mhbhe;
00143 }


Member Data Documentation

HoECalculator ElectronGSPixelSeedProducer::calc_ [private]

Definition at line 67 of file ElectronGSPixelSeedProducer.h.

Referenced by beginRun(), and filterClusters().

edm::InputTag ElectronGSPixelSeedProducer::clusters_[2] [private]

Definition at line 53 of file ElectronGSPixelSeedProducer.h.

Referenced by ElectronGSPixelSeedProducer(), and produce().

bool ElectronGSPixelSeedProducer::fromTrackerSeeds_ [private]

Definition at line 73 of file ElectronGSPixelSeedProducer.h.

Referenced by ElectronGSPixelSeedProducer(), and produce().

edm::InputTag ElectronGSPixelSeedProducer::hcalRecHits_ [private]

Definition at line 56 of file ElectronGSPixelSeedProducer.h.

Referenced by ElectronGSPixelSeedProducer(), and produce().

const HBHERecHitCollection* ElectronGSPixelSeedProducer::hithbhe_ [private]

Definition at line 63 of file ElectronGSPixelSeedProducer.h.

edm::InputTag ElectronGSPixelSeedProducer::initialSeeds_ [private]

Definition at line 57 of file ElectronGSPixelSeedProducer.h.

Referenced by ElectronGSPixelSeedProducer(), and produce().

ElectronGSPixelSeedGenerator* ElectronGSPixelSeedProducer::matcher_ [private]

Definition at line 60 of file ElectronGSPixelSeedProducer.h.

Referenced by beginRun(), ElectronGSPixelSeedProducer(), produce(), and ~ElectronGSPixelSeedProducer().

double ElectronGSPixelSeedProducer::maxHOverE_ [private]

Definition at line 70 of file ElectronGSPixelSeedProducer.h.

Referenced by ElectronGSPixelSeedProducer(), and filterClusters().

double ElectronGSPixelSeedProducer::SCEtCut_ [private]

Definition at line 71 of file ElectronGSPixelSeedProducer.h.

Referenced by ElectronGSPixelSeedProducer(), and filterClusters().

edm::InputTag ElectronGSPixelSeedProducer::simTracks_ [private]

Definition at line 54 of file ElectronGSPixelSeedProducer.h.

Referenced by ElectronGSPixelSeedProducer(), and produce().

TrajectorySeedCollection* ElectronGSPixelSeedProducer::theInitialSeedColl [private]

Definition at line 64 of file ElectronGSPixelSeedProducer.h.

Referenced by produce().

edm::InputTag ElectronGSPixelSeedProducer::trackerHits_ [private]

Definition at line 55 of file ElectronGSPixelSeedProducer.h.

Referenced by ElectronGSPixelSeedProducer(), and produce().


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