CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch9/src/RecoEcal/EgammaClusterProducers/interface/Multi5x5SuperClusterProducer.h

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