CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch9/src/RecoEgamma/EgammaHLTProducers/interface/EgammaHLTMulti5x5ClusterProducer.h

Go to the documentation of this file.
00001 #ifndef RecoEcal_EgammaClusterProducers_EgammaHLTMulti5x5ClusterProducer_h_
00002 #define RecoEcal_EgammaClusterProducers_EgammaHLTMulti5x5ClusterProducer_h_
00003 
00004 #include <memory>
00005 #include <time.h>
00006 
00007 #include "FWCore/Framework/interface/Frameworkfwd.h"
00008 #include "FWCore/Framework/interface/EDProducer.h"
00009 #include "FWCore/Framework/interface/Event.h"
00010 #include "FWCore/Framework/interface/EventSetup.h"
00011 
00012 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00013 
00014 #include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h"
00015 #include "DataFormats/CaloRecHit/interface/CaloClusterFwd.h"
00016 #include "RecoEcal/EgammaClusterAlgos/interface/Multi5x5ClusterAlgo.h"
00017 #include "RecoEcal/EgammaCoreTools/interface/PositionCalc.h"
00018 #include "RecoEcal/EgammaCoreTools/interface/ClusterShapeAlgo.h"
00019 
00020 #include "Geometry/CaloTopology/interface/CaloSubdetectorTopology.h"
00021 //
00022 #include "DataFormats/CaloRecHit/interface/CaloID.h"
00023 
00024 
00025 
00026 class EgammaHLTMulti5x5ClusterProducer : public edm::EDProducer 
00027 {
00028   public:
00029 
00030       EgammaHLTMulti5x5ClusterProducer(const edm::ParameterSet& ps);
00031 
00032       ~EgammaHLTMulti5x5ClusterProducer();
00033 
00034       virtual void produce(edm::Event&, const edm::EventSetup&);
00035 
00036    private:
00037 
00038       int nMaxPrintout_; // max # of printouts
00039       int nEvt_;         // internal counter of events
00040 
00041       Multi5x5ClusterAlgo::VerbosityLevel verbosity;
00042 
00043       bool doBarrel_;
00044       bool doEndcaps_;
00045       bool doIsolated_;
00046 
00047       edm::InputTag barrelHitProducer_;//it was string
00048       edm::InputTag endcapHitProducer_;//it was string
00049       std::string barrelHitCollection_;
00050       std::string endcapHitCollection_;
00051 
00052       std::string barrelClusterCollection_;
00053       std::string endcapClusterCollection_;
00054 
00055       /*
00056       std::string clustershapecollectionEB_;//new
00057       std::string clustershapecollectionEE_;//new
00058     //BasicClusterShape AssociationMap
00059       std::string barrelClusterShapeAssociation_;//new
00060       std::string endcapClusterShapeAssociation_;//new 
00061       */
00062 
00063       edm::InputTag l1TagIsolated_;
00064       edm::InputTag l1TagNonIsolated_;
00065       double l1LowerThr_;
00066       double l1UpperThr_;
00067       double l1LowerThrIgnoreIsolation_;
00068 
00069       double regionEtaMargin_;
00070       double regionPhiMargin_;
00071 
00072       PositionCalc posCalculator_; // position calculation algorithm
00073       Multi5x5ClusterAlgo * Multi5x5_p;
00074       //ClusterShapeAlgo shapeAlgo_;//new
00075 
00076       bool counterExceeded() const { return ((nEvt_ > nMaxPrintout_) || (nMaxPrintout_ < 0)); }
00077 
00078       const EcalRecHitCollection * getCollection(edm::Event& evt,
00079                                                  const std::string& hitProducer_,
00080                                                  const std::string& hitCollection_);
00081 
00082 
00083       void clusterizeECALPart(edm::Event &evt, const edm::EventSetup &es,
00084                               const std::string& hitProducer,
00085                               const std::string& hitCollection,
00086                               const std::string& clusterCollection,
00087                               const std::vector<EcalEtaPhiRegion>& regions,
00088                               const reco::CaloID::Detectors detector);
00089       /*
00090       void clusterizeECALPart(edm::Event &evt, const edm::EventSetup &es,
00091                               const std::string& hitProducer,
00092                               const std::string& hitCollection,
00093                               const std::string& clusterCollection,
00094                               const std::string& clusterShapeAssociation,
00095                               const Multi5x5ClusterAlgo::EcalPart& ecalPart);
00096       */
00097       void outputValidationInfo(reco::CaloClusterPtrVector &clusterPtrVector);
00098 
00099 };
00100 
00101 
00102 #endif