CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/src/RecoLocalCalo/CaloTowersCreator/src/CaloTowersCreator.h

Go to the documentation of this file.
00001 #ifndef RECOLOCALCALO_CALOTOWERSCREATOR_CALOTOWERSCREATOR_H
00002 #define RECOLOCALCALO_CALOTOWERSCREATOR_CALOTOWERSCREATOR_H 1
00003 
00004 #include "FWCore/Framework/interface/EDProducer.h"
00005 #include "FWCore/Framework/interface/Event.h"
00006 #include "FWCore/Framework/interface/ESWatcher.h"
00007 #include "DataFormats/Common/interface/Handle.h"
00008 
00009 #include "FWCore/Framework/interface/EventSetup.h"
00010 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00011 #include "Geometry/Records/interface/IdealGeometryRecord.h"
00012 #include "RecoLocalCalo/CaloTowersCreator/interface/CaloTowersCreationAlgo.h"
00013 
00014 
00022 // Now we allow for the creation of towers from 
00023 // rejected hists as well: requested by the MET group
00024 // for studies of the effect of noise clean up.
00025 
00026 class CaloTowersCreator : public edm::EDProducer {
00027 public:
00028   explicit CaloTowersCreator(const edm::ParameterSet& ps);
00029   virtual ~CaloTowersCreator() { }
00030   virtual void produce(edm::Event& e, const edm::EventSetup& c);
00031   double EBEScale, EEEScale, HBEScale, HESEScale;
00032   double HEDEScale, HOEScale, HF1EScale, HF2EScale;
00033 
00034 private:
00035 
00036   static const std::vector<double>& getGridValues();
00037 
00038   CaloTowersCreationAlgo algo_;
00039   edm::InputTag hbheLabel_,hoLabel_,hfLabel_;
00040   std::vector<edm::InputTag> ecalLabels_;
00041   bool allowMissingInputs_;
00042 
00043 
00044   // more compact flags: all HCAL are combined
00045   
00046   unsigned int theHcalAcceptSeverityLevel_;
00047   std::vector<int> theEcalSeveritiesToBeExcluded_;
00048   
00049   // flag to use recovered hits
00050   bool theRecoveredHcalHitsAreUsed_;
00051   bool theRecoveredEcalHitsAreUsed_;
00052 
00053 
00054   // paramaters for creating towers from rejected hits
00055 
00056   bool useRejectedHitsOnly_;
00057   unsigned int theHcalAcceptSeverityLevelForRejectedHit_;
00058   //  for ECAL we have a list of problem flags
00059    std::vector<int> theEcalSeveritiesToBeUsedInBadTowers_; 
00060 
00061 
00062 
00063   // Flags wheteher to use recovered hits for production of
00064   // "bad towers". 
00065   // If the recoverd hits were already used for good towers,
00066   // these flags have no effect. 
00067   // Note: These flags have no effect on the default tower reconstruction.
00068   bool useRejectedRecoveredHcalHits_;
00069   bool useRejectedRecoveredEcalHits_;
00070 
00071   edm::ESWatcher<HcalSeverityLevelComputerRcd> hcalSevLevelWatcher_;
00072   edm::ESWatcher<HcalChannelQualityRcd> hcalChStatusWatcher_;
00073   edm::ESWatcher<IdealGeometryRecord> caloTowerConstituentsWatcher_;
00074 
00075 };
00076 
00077 #endif