Go to the documentation of this file.00001 #ifndef _RECOMET_METPRODUCER_HCALNOISEINFOPRODUCER_H_
00002 #define _RECOMET_METPRODUCER_HCALNOISEINFOPRODUCER_H_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include <memory>
00019
00020
00021 #include "FWCore/Framework/interface/Frameworkfwd.h"
00022 #include "FWCore/Framework/interface/EDProducer.h"
00023 #include "FWCore/Framework/interface/Event.h"
00024 #include "FWCore/Framework/interface/MakerMacros.h"
00025 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00026
00027 #include "RecoMET/METAlgorithms/interface/HcalNoiseAlgo.h"
00028 #include "RecoMET/METAlgorithms/interface/HcalNoiseRBXArray.h"
00029 #include "DataFormats/METReco/interface/HcalNoiseSummary.h"
00030
00031
00032 namespace reco {
00033
00034
00035
00036
00037
00038 class HcalNoiseInfoProducer : public edm::EDProducer {
00039 public:
00040 explicit HcalNoiseInfoProducer(const edm::ParameterSet&);
00041 ~HcalNoiseInfoProducer();
00042
00043 private:
00044
00045
00046
00047
00048
00049
00050
00051 virtual void beginJob() ;
00052 virtual void endJob() ;
00053 virtual void produce(edm::Event&, const edm::EventSetup&);
00054 virtual void beginRun(edm::Run&, const edm::EventSetup&);
00055 virtual void endRun(edm::Run&, const edm::EventSetup&);
00056
00057
00058
00059
00060
00061
00062 void fillrechits(edm::Event&, const edm::EventSetup&, HcalNoiseRBXArray&, HcalNoiseSummary&) const;
00063 void filldigis(edm::Event&, const edm::EventSetup&, HcalNoiseRBXArray&, HcalNoiseSummary&);
00064 void fillcalotwrs(edm::Event&, const edm::EventSetup&, HcalNoiseRBXArray&, HcalNoiseSummary&) const;
00065 void filltracks(edm::Event&, const edm::EventSetup&, HcalNoiseSummary&) const;
00066
00067
00068 void fillOtherSummaryVariables(HcalNoiseSummary& summary, const CommonHcalNoiseRBXData& data) const;
00069
00070
00071
00072
00073
00074
00075 bool fillDigis_;
00076 bool fillRecHits_;
00077 bool fillCaloTowers_;
00078 bool fillTracks_;
00079
00080
00081 int maxProblemRBXs_;
00082
00083
00084 int maxCaloTowerIEta_;
00085 double maxTrackEta_;
00086 double minTrackPt_;
00087
00088 std::string digiCollName_;
00089 std::string recHitCollName_;
00090 std::string caloTowerCollName_;
00091 std::string trackCollName_;
00092
00093 double TotalCalibCharge;
00094
00095 double minRecHitE_, minLowHitE_, minHighHitE_;
00096 HcalNoiseAlgo algo_;
00097
00098 double TS4TS5EnergyThreshold_;
00099 std::vector<std::pair<double, double> > TS4TS5UpperCut_;
00100 std::vector<std::pair<double, double> > TS4TS5LowerCut_;
00101
00102 uint32_t HcalAcceptSeverityLevel_;
00103 std::vector<int> HcalRecHitFlagsToBeExcluded_;
00104
00105 float adc2fC[128];
00106 };
00107
00108 }
00109
00110 #endif