![]() |
![]() |
#include <FastSimulation/EgammaElectronAlgos/plugins/ElectronGSPixelSeedProducer.h>
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 HBHERecHitCollection * | hithbhe_ |
edm::InputTag | initialSeeds_ |
ElectronGSPixelSeedGenerator * | matcher_ |
double | maxHOverE_ |
double | SCEtCut_ |
edm::InputTag | simTracks_ |
TrajectorySeedCollection * | theInitialSeedColl |
edm::InputTag | trackerHits_ |
Definition at line 28 of file ElectronGSPixelSeedProducer.h.
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 }
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 }
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().
Definition at line 73 of file ElectronGSPixelSeedProducer.h.
Referenced by ElectronGSPixelSeedProducer(), and produce().
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.
Definition at line 57 of file ElectronGSPixelSeedProducer.h.
Referenced by ElectronGSPixelSeedProducer(), and produce().
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().
Definition at line 54 of file ElectronGSPixelSeedProducer.h.
Referenced by ElectronGSPixelSeedProducer(), and produce().
Definition at line 55 of file ElectronGSPixelSeedProducer.h.
Referenced by ElectronGSPixelSeedProducer(), and produce().