CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_2_9/src/RecoHI/HiEgammaAlgos/plugins/HiSuperClusterProducer.h

Go to the documentation of this file.
00001 #ifndef RecoHi_HiEgammaAlgos_HiSuperClusterProducer_h_
00002 #define RecoHi_HiEgammaAlgos_HiSuperClusterProducer_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 "RecoHI/HiEgammaAlgos/interface/HiBremRecoveryClusterAlgo.h"
00016 
00017 //
00018 
00019 
00020 class HiSuperClusterProducer : public edm::EDProducer 
00021 {
00022   
00023   public:
00024 
00025       HiSuperClusterProducer(const edm::ParameterSet& ps);
00026 
00027       ~HiSuperClusterProducer();
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       HiBremRecoveryClusterAlgo::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       float barrelBCEnergyThreshold_;
00054       float endcapBCEnergyThreshold_;
00055 
00056       bool doBarrel_;
00057       bool doEndcaps_;
00058 
00059       HiBremRecoveryClusterAlgo * bremAlgo_p;
00060 
00061       double totalE;
00062       int noSuperClusters;
00063 
00064       
00065       void getClusterPtrVector(edm::Event& evt, std::string clusterProducer_, std::string clusterCollection_, reco::CaloClusterPtrVector *);
00066   
00067       void produceSuperclustersForECALPart(edm::Event& evt, 
00068                                            std::string clusterProducer, 
00069                                            std::string clusterCollection,
00070                                            std::string superclusterColection);
00071 
00072       void outputValidationInfo(reco::SuperClusterCollection &superclusterCollection);
00073     
00074       bool counterExceeded() const { return ((nEvt_ > nMaxPrintout_) || (nMaxPrintout_ < 0));}
00075 };
00076 
00077 
00078 #endif