Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:25:51

0001 #ifndef __HBHE_ISOLATED_NOISE_REFLAGGER_H__
0002 #define __HBHE_ISOLATED_NOISE_REFLAGGER_H__
0003 
0004 /*
0005 Description: "Reflags" HB/HE hits based on their ECAL, HCAL, and tracking isolation.
0006 
0007 Original Author: John Paul Chou (Brown University)
0008                  Thursday, September 2, 2010
0009 */
0010 #include <memory>
0011 
0012 #include "FWCore/Framework/interface/Frameworkfwd.h"
0013 #include "FWCore/Framework/interface/stream/EDProducer.h"
0014 #include "FWCore/Framework/interface/MakerMacros.h"
0015 #include "FWCore/Utilities/interface/ESGetToken.h"
0016 #include "CondFormats/EcalObjects/interface/EcalChannelStatus.h"
0017 #include "RecoLocalCalo/HcalRecAlgos/interface/HBHEIsolatedNoiseAlgos.h"
0018 
0019 class EcalChannelStatusRcd;
0020 class HcalChannelQuality;
0021 class HcalChannelQualityRcd;
0022 class HcalSeverityLevelComputer;
0023 class HcalSeverityLevelComputerRcd;
0024 class EcalSeverityLevelAlgo;
0025 class EcalSeverityLevelAlgoRcd;
0026 class CaloTowerConstituentsMap;
0027 class CaloGeometryRecord;
0028 class HcalFrontEndMap;
0029 class HcalFrontEndMapRcd;
0030 
0031 class HBHEIsolatedNoiseReflagger : public edm::stream::EDProducer<> {
0032 public:
0033   explicit HBHEIsolatedNoiseReflagger(const edm::ParameterSet&);
0034   ~HBHEIsolatedNoiseReflagger() override;
0035 
0036 private:
0037   void produce(edm::Event&, const edm::EventSetup&) override;
0038 
0039   void DumpHBHEHitMap(std::vector<HBHEHitMap>& i) const;
0040 
0041   // parameters
0042   edm::EDGetTokenT<HBHERecHitCollection> tok_hbhe_;
0043   edm::EDGetTokenT<EcalRecHitCollection> tok_EB_;
0044   edm::EDGetTokenT<EcalRecHitCollection> tok_EE_;
0045   edm::EDGetTokenT<std::vector<reco::TrackExtrapolation> > tok_trackExt_;
0046   const HcalFrontEndMap* hfemap;
0047 
0048   double LooseHcalIsol_;
0049   double LooseEcalIsol_;
0050   double LooseTrackIsol_;
0051   double TightHcalIsol_;
0052   double TightEcalIsol_;
0053   double TightTrackIsol_;
0054 
0055   double LooseRBXEne1_, LooseRBXEne2_;
0056   int LooseRBXHits1_, LooseRBXHits2_;
0057   double TightRBXEne1_, TightRBXEne2_;
0058   int TightRBXHits1_, TightRBXHits2_;
0059   double LooseHPDEne1_, LooseHPDEne2_;
0060   int LooseHPDHits1_, LooseHPDHits2_;
0061   double TightHPDEne1_, TightHPDEne2_;
0062   int TightHPDHits1_, TightHPDHits2_;
0063   double LooseDiHitEne_;
0064   double TightDiHitEne_;
0065   double LooseMonoHitEne_;
0066   double TightMonoHitEne_;
0067 
0068   double RBXEneThreshold_;
0069 
0070   bool debug_;
0071 
0072   // object validator
0073   ObjectValidator objvalidator_;
0074 
0075   // ES tokens
0076   edm::ESGetToken<EcalChannelStatus, EcalChannelStatusRcd> ecalChStatusToken_;
0077   edm::ESGetToken<HcalChannelQuality, HcalChannelQualityRcd> hcalChStatusToken_;
0078   edm::ESGetToken<HcalSeverityLevelComputer, HcalSeverityLevelComputerRcd> hcalSevToken_;
0079   edm::ESGetToken<EcalSeverityLevelAlgo, EcalSeverityLevelAlgoRcd> ecalSevToken_;
0080   edm::ESGetToken<CaloTowerConstituentsMap, CaloGeometryRecord> ctcmToken_;
0081   edm::ESGetToken<HcalFrontEndMap, HcalFrontEndMapRcd> hfemapToken_;
0082   edm::ESGetToken<CaloGeometry, CaloGeometryRecord> geoToken_;
0083 };
0084 
0085 #endif