CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_10_patch2/src/RecoEcal/EgammaClusterProducers/interface/SuperClusterProducer.h

Go to the documentation of this file.
00001 #ifndef RecoEcal_EgammaClusterProducers_SuperClusterProducer_h_
00002 #define RecoEcal_EgammaClusterProducers_SuperClusterProducer_h_
00003 
00004 #include <memory>
00005 
00006 #include "FWCore/Framework/interface/Frameworkfwd.h"
00007 #include "FWCore/Framework/interface/EDProducer.h"
00008 #include "FWCore/Framework/interface/Event.h"
00009 #include "FWCore/Framework/interface/EventSetup.h"
00010 
00011 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00012 
00013 #include "DataFormats/EgammaReco/interface/BasicClusterFwd.h"
00014 
00015 #include "RecoEcal/EgammaClusterAlgos/interface/BremRecoveryClusterAlgo.h"
00016 
00017 //
00018 
00019 
00020 class SuperClusterProducer : public edm::EDProducer 
00021 {
00022   
00023   public:
00024 
00025       SuperClusterProducer(const edm::ParameterSet& ps);
00026 
00027       ~SuperClusterProducer();
00028 
00029       virtual void produce(edm::Event&, const edm::EventSetup&);
00030       virtual void endJob();
00031 
00032    private:
00033 
00034       int nMaxPrintout_; // max # of printouts
00035       int nEvt_;         // internal counter of events
00036  
00037       BremRecoveryClusterAlgo::VerbosityLevel verbosity;
00038 
00039       std::string endcapClusterCollection_;
00040       std::string barrelClusterCollection_;
00041 
00042       std::string endcapClusterProducer_;
00043       std::string barrelClusterProducer_;
00044 
00045       std::string endcapSuperclusterCollection_;
00046       std::string barrelSuperclusterCollection_;
00047 
00048       float barrelEtaSearchRoad_;
00049       float barrelPhiSearchRoad_;
00050       float endcapEtaSearchRoad_; 
00051       float endcapPhiSearchRoad_;
00052       float seedTransverseEnergyThreshold_;
00053 
00054       bool doBarrel_;
00055       bool doEndcaps_;
00056 
00057       BremRecoveryClusterAlgo * bremAlgo_p;
00058 
00059       double totalE;
00060       int noSuperClusters;
00061 
00062       
00063       void getClusterPtrVector(edm::Event& evt, std::string clusterProducer_, std::string clusterCollection_, reco::CaloClusterPtrVector *);
00064   
00065       void produceSuperclustersForECALPart(edm::Event& evt, 
00066                                            std::string clusterProducer, 
00067                                            std::string clusterCollection,
00068                                            std::string superclusterColection);
00069 
00070       void outputValidationInfo(reco::SuperClusterCollection &superclusterCollection);
00071     
00072       bool counterExceeded() const { return ((nEvt_ > nMaxPrintout_) || (nMaxPrintout_ < 0));}
00073 };
00074 
00075 
00076 #endif