CMS 3D CMS Logo

GlobalSeedProducer.cc

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 //
00003 // Package:    ElectronProducers
00004 // Class:      GlobalSeedProducer
00005 // 
00013 //
00014 // Original Author:  Ursula Berthon, Claude Charlot
00015 //         Created:  Mon Mar 27 13:22:06 CEST 2006
00016 // $Id: GlobalSeedProducer.cc,v 1.1 2008/04/21 09:50:47 uberthon Exp $
00017 //
00018 //
00019 
00020 // user include files
00021 #include "FWCore/Framework/interface/Frameworkfwd.h"
00022 #include "FWCore/Framework/interface/EDProducer.h"
00023 #include "FWCore/Framework/interface/Event.h"
00024 #include "FWCore/Framework/interface/MakerMacros.h"
00025 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00026 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00027 
00028 //#include "Geometry/Records/interface/IdealGeometryRecord.h"
00029 //#include "Geometry/CaloGeometry/interface/CaloSubdetectorGeometry.h"
00030 
00031 #include "RecoEgamma/EgammaElectronAlgos/interface/SubSeedGenerator.h"
00032 
00033 #include "DataFormats/EgammaReco/interface/ElectronPixelSeed.h"
00034 #include "DataFormats/EgammaReco/interface/ElectronPixelSeedFwd.h"
00035 
00036 #include "GlobalSeedProducer.h"
00037 
00038 #include <string>
00039 
00040 using namespace reco;
00041  
00042 GlobalSeedProducer::GlobalSeedProducer(const edm::ParameterSet& iConfig) : conf_(iConfig)
00043 {
00044 
00045   //  edm::ParameterSet pset = iConfig.getParameter<edm::ParameterSet>("SeedConfiguration");
00046   //  SCEtCut_=pset.getParameter<double>("SCEtCut");
00047   //  maxHOverE_=pset.getParameter<double>("maxHOverE");
00048 
00049   matcher_= new SubSeedGenerator(iConfig);
00050  
00051   //  get collections from config'
00052   superClusters_[0]=iConfig.getParameter<edm::InputTag>("barrelSuperClusters");
00053   superClusters_[1]=iConfig.getParameter<edm::InputTag>("endcapSuperClusters");
00054 
00055   //register your products
00056   produces<ElectronPixelSeedCollection>();
00057 }
00058 
00059 
00060 GlobalSeedProducer::~GlobalSeedProducer()
00061 {
00062    // do anything here that needs to be done at desctruction time
00063    // (e.g. close files, deallocate resources etc.)
00064       delete matcher_;
00065 }
00066 
00067 void GlobalSeedProducer::beginJob(edm::EventSetup const&iSetup) 
00068 {
00069 }
00070 
00071 void GlobalSeedProducer::produce(edm::Event& e, const edm::EventSetup& iSetup) 
00072 {
00073   LogDebug("GlobalSeedProducer");
00074   LogDebug("GlobalSeedProducer")  <<"[GlobalSeedProducer::produce] entering " ;
00075 
00076   ElectronPixelSeedCollection *seeds= new ElectronPixelSeedCollection;
00077   std::auto_ptr<ElectronPixelSeedCollection> pSeeds;
00078 
00079   // loop over barrel + endcap
00080 
00081   for (unsigned int i=0; i<2; i++) {  
00082    // invoke algorithm
00083     edm::Handle<SuperClusterCollection> clusters;
00084     if (e.getByLabel(superClusters_[i],clusters))     matcher_->run(e,iSetup,clusters,*seeds);
00085   }
00086 
00087   // store the accumulated result
00088   pSeeds=  std::auto_ptr<ElectronPixelSeedCollection>(seeds);
00089   for (ElectronPixelSeedCollection::iterator is=pSeeds->begin(); is!=pSeeds->end();is++) {
00090     LogDebug("ElectronPixelSeedProducer")  << "new seed with " << (*is).nHits() << " hits, charge " << (*is).getCharge() <<
00091         " and cluster energy " << (*is).superCluster()->energy() << " PID "<<(*is).superCluster().id();
00092   }
00093   e.put(pSeeds);
00094   }

Generated on Tue Jun 9 17:43:21 2009 for CMSSW by  doxygen 1.5.4