1 #ifndef RecoParticleFlow_PFClusterProducer_PFEcalRecHitQTests_h 2 #define RecoParticleFlow_PFClusterProducer_PFEcalRecHitQTests_h 107 if (
flag ==
"Standard") {
110 }
else if (
flag ==
"HFInTime") {
113 }
else if (
flag ==
"HFDigi") {
116 }
else if (
flag ==
"HFLong") {
119 }
else if (
flag ==
"HFShort") {
122 }
else if (
flag ==
"HFSignalAsymmetry") {
171 unsigned theStatusValue = theStatus->
getValue();
208 depths_.push_back(
pset.getParameter<
int>(
"depth"));
242 for (
unsigned int i = 0;
i <
depths_.size(); ++
i) {
270 depths_.push_back(
pset.getParameter<std::vector<int>>(
"depth"));
271 thresholds_.push_back(
pset.getParameter<std::vector<double>>(
"threshold"));
274 throw cms::Exception(
"InvalidPFRecHitThreshold") <<
"PFRecHitThreshold mismatch with the numbers of depths";
347 threshold0_(iConfig.getParameter<double>(
"threshold_ring0")),
348 threshold12_(iConfig.getParameter<double>(
"threshold_ring12")) {}
403 if (endcapGeometry) {
582 if (
detId.ietaAbs() == 29)
600 threshold_(iConfig.getParameter<double>(
"thresholdInMIPs")),
601 mip_(iConfig.getParameter<double>(
"mipValueInkeV")),
607 throw cms::Exception(
"WrongDetector") <<
"PFRecHitQTestThresholdInMIPs only works for HGCAL!";
611 throw cms::Exception(
"WrongDetector") <<
"PFRecHitQTestThresholdInMIPs only works for HGCAL!";
616 throw cms::Exception(
"WrongDetector") <<
"PFRecHitQTestThresholdInMIPs only works for HGCAL!";
620 throw cms::Exception(
"WrongDetector") <<
"PFRecHitQTestThresholdInMIPs only works for HGCAL!";
625 throw cms::Exception(
"WrongDetector") <<
"PFRecHitQTestThresholdInMIPs only works for HGCAL!";
641 const double hitValueInMIPs = 1e6 *
hit.energy() /
mip_;
656 threshold_(iConfig.getParameter<double>(
"thresholdInMIPs")),
657 mip_(iConfig.getParameter<double>(
"mipValueInkeV")),
667 throw cms::Exception(
"WrongDetector") <<
"PFRecHitQTestThresholdInMIPs only works for HGCAL!";
671 throw cms::Exception(
"WrongDetector") <<
"PFRecHitQTestThresholdInMIPs only works for HGCAL!";
676 throw cms::Exception(
"WrongDetector") <<
"PFRecHitQTestThresholdInMIPs only works for HGCAL!";
680 throw cms::Exception(
"WrongDetector") <<
"PFRecHitQTestThresholdInMIPs only works for HGCAL!";
685 throw cms::Exception(
"WrongDetector") <<
"PFRecHitQTestThresholdInMIPs only works for HGCAL!";
705 const double hitValueInMIPs = 1e6 *
hit.energy() / (
mult *
mip_);
723 throw cms::Exception(
"WrongDetector") <<
"PFRecHitQTestHGCalThresholdSNR only works for HGCAL!";
727 throw cms::Exception(
"WrongDetector") <<
"PFRecHitQTestHGCalThresholdSNR only works for HGCAL!";
732 throw cms::Exception(
"WrongDetector") <<
"PFRecHitQTestHGCalThresholdSNR only works for HGCAL!";
736 throw cms::Exception(
"WrongDetector") <<
"PFRecHitQTestHGCalThresholdSNR only works for HGCAL!";
741 throw cms::Exception(
"WrongDetector") <<
"PFRecHitQTestHGCalThresholdSNR only works for HGCAL!";
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean) override
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean) override
void beginEvent(const edm::Event &event, const edm::EventSetup &iSetup) override
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > geomToken_
PFRecHitQTestHGCalThresholdSNR()
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean) override
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean) override
bool getMergePositionFlag() const
bool test(reco::PFRecHit &hit, const HORecHit &rh, bool &clean) override
const HcalChannelQuality * theHcalChStatus_
bool test(reco::PFRecHit &hit, const HFRecHit &rh, bool &clean) override
bool test(reco::PFRecHit &hit, const HFRecHit &rh, bool &clean) override
PFRecHitQTestDBSeedingThreshold(const edm::ParameterSet &iConfig, edm::ConsumesCollector &cc)
void beginEvent(const edm::Event &event, const edm::EventSetup &iSetup) override
const HGCalDDDConstants * ddd_
PFRecHitQTestES(const edm::ParameterSet &iConfig, edm::ConsumesCollector &cc)
edm::ESGetToken< HcalSeverityLevelComputer, HcalSeverityLevelComputerRcd > severityToken_
constexpr const DetId & detid() const
void beginEvent(const edm::Event &event, const edm::EventSetup &iSetup) override
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean) override
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean) override
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean) override
std::vector< double > minTimes_
bool pass(const reco::PFRecHit &hit)
edm::ESGetToken< EcalPFSeedingThresholds, EcalPFSeedingThresholdsRcd > threshToken_
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean) override
bool test(reco::PFRecHit &hit, const HORecHit &rh, bool &clean) override
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean) override
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean) override
std::vector< int > detector_
PFRecHitQTestHCALCalib29(const edm::ParameterSet &iConfig, edm::ConsumesCollector &cc)
uint32_t cc[maxCellsPerHit]
bool topologicalCleaning_
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean) override
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean) override
const double thresholdSNR_
std::vector< int > depths_
PFRecHitQTestECALMultiThreshold(const edm::ParameterSet &iConfig, edm::ConsumesCollector &cc)
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean) override
bool skipTTRecoveredHits_
bool test(reco::PFRecHit &hit, const EcalRecHit &rh, bool &clean, bool fullReadOut) override
float signalOverSigmaNoise() const
bool pass(const reco::PFRecHit &hit, const float mult)
const HcalSeverityLevelComputer * hcalSevLvlComputer_
PFRecHitQTestDBThreshold(const edm::ParameterSet &iConfig, edm::ConsumesCollector &cc)
bool test(reco::PFRecHit &hit, const HFRecHit &rh, bool &clean) override
const bool recHitEnergy_keV_
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean) override
std::vector< double > maxTimes_
bool test(reco::PFRecHit &hit, const EcalRecHit &rh, bool &clean, bool fullReadOut) override
bool applySelectionsToAllCrystals_
bool test(reco::PFRecHit &hit, const HORecHit &rh, bool &clean) override
edm::ESGetToken< HcalTopology, HcalRecNumberingRecord > topoToken_
PFRecHitQTestHCALTimeVsDepth()
bool test(reco::PFRecHit &hit, const EcalRecHit &rh, bool &clean, bool fullReadOut) override
bool test(unsigned aDETID, double energy, double time, bool &clean)
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean) override
bool test(reco::PFRecHit &hit, const HORecHit &rh, bool &clean) override
bool test(reco::PFRecHit &hit, const EcalRecHit &rh, bool &clean, bool fullReadOut) override
const std::string geometryInstance_
bool test(reco::PFRecHit &hit, const HFRecHit &rh, bool &clean) override
std::vector< double > cleanThresholds_
PFRecHitQTestHCALChannel(const edm::ParameterSet &iConfig, edm::ConsumesCollector &cc)
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean) override
std::vector< double > thresholds_
bool pass(const reco::PFRecHit &hit)
const bool recHitEnergy_keV_
const HcalTopology * theHcalTopology_
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean) override
void beginEvent(const edm::Event &event, const edm::EventSetup &iSetup) override
bool test(reco::PFRecHit &hit, const HFRecHit &rh, bool &clean) override
const double threshold12_
const Item * getValues(DetId fId, bool throwOnFail=true) const
PFRecHitQTestHCALChannel()
constexpr float energy() const
bool test(reco::PFRecHit &hit, const EcalRecHit &rh, bool &clean, bool fullReadOut) override
static void clean(char *s)
bool test(unsigned aDETID, double energy, double time, bool &clean)
bool test(reco::PFRecHit &hit, const EcalRecHit &rh, bool &clean, bool fullReadOut) override
PFRecHitQTestHCALCalib29()
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean) override
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean) override
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean) override
bool test(reco::PFRecHit &hit, const EcalRecHit &rh, bool &clean, bool fullReadOut) override
bool test(reco::PFRecHit &hit, const HFRecHit &rh, bool &clean) override
bool test(reco::PFRecHit &hit, const HORecHit &rh, bool &clean) override
void beginEvent(const edm::Event &event, const edm::EventSetup &iSetup) override
void beginEvent(const edm::Event &event, const edm::EventSetup &iSetup) override
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean) override
Particle flow rechit (rechit + geometry and topology information). See clustering algorithm in PFClus...
constexpr uint32_t flags() const
HcalDetId idFront(const HcalDetId &id) const
const double recHitEnergyMultiplier_
bool test(reco::PFRecHit &hit, const HFRecHit &rh, bool &clean) override
bool test(reco::PFRecHit &hit, const EcalRecHit &rh, bool &clean, bool fullReadOut) override
PFRecHitQTestThreshold(const edm::ParameterSet &iConfig, edm::ConsumesCollector &cc)
bool applySelectionsToAllCrystals_
PFRecHitQTestHCALTimeVsDepth(const edm::ParameterSet &iConfig, edm::ConsumesCollector &cc)
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
const double recHitEnergyMultiplier_
bool test(reco::PFRecHit &hit, const HORecHit &rh, bool &clean) override
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean) override
bool test(reco::PFRecHit &hit, const HORecHit &rh, bool &clean) override
bool pass(const reco::PFRecHit &hit)
void beginEvent(const edm::Event &event, const edm::EventSetup &iSetup) override
bool test(reco::PFRecHit &hit, const HORecHit &rh, bool &clean) override
Abs< T >::type abs(const T &t)
void beginEvent(const edm::Event &event, const edm::EventSetup &iSetup) override
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean) override
bool test(reco::PFRecHit &hit, const EcalRecHit &rh, bool &clean, bool fullReadOut) override
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean) override
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean) override
edm::ESGetToken< HcalChannelQuality, HcalChannelQualityRcd > qualityToken_
bool test(reco::PFRecHit &hit, const HFRecHit &rh, bool &clean) override
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean) override
const std::vector< double > thresholds_
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
bool test(reco::PFRecHit &hit, const HFRecHit &rh, bool &clean) override
const HGCalTopology & topology() const
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean) override
PFRecHitQTestThresholdInThicknessNormalizedMIPs()
uint32_t getValue() const
PFRecHitQTestThresholdInThicknessNormalizedMIPs(const edm::ParameterSet &iConfig, edm::ConsumesCollector &cc)
PFRecHitQTestHCALThresholdVsDepth(const edm::ParameterSet &iConfig, edm::ConsumesCollector &cc)
void beginEvent(const edm::Event &event, const edm::EventSetup &iSetup) override
edm::ESGetToken< HcalPFCuts, HcalPFCutsRcd > hcalCutsToken_
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean) override
void beginEvent(const edm::Event &event, const edm::EventSetup &iSetup) override
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean) override
PFRecHitQTestECAL(const edm::ParameterSet &iConfig, edm::ConsumesCollector &cc)
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean) override
bool test(reco::PFRecHit &hit, const HFRecHit &rh, bool &clean) override
bool test(reco::PFRecHit &hit, const EcalRecHit &rh, bool &clean, bool fullReadOut) override
PFRecHitQTestDBThreshold()
edm::ESGetToken< HcalTopology, HcalRecNumberingRecord > htopoToken_
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean) override
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean) override
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean) override
PFRecHitQTestHCALThresholdVsDepth()
std::vector< edm::ParameterSet > psets_
PFRecHitQTestHOThreshold()
PFRecHitQTestHGCalThresholdSNR(const edm::ParameterSet &iConfig, edm::ConsumesCollector &cc)
bool applySelectionsToAllCrystals_
void beginEvent(const edm::Event &event, const edm::EventSetup &iSetup) override
std::vector< int > depths_
bool test(reco::PFRecHit &hit, const HORecHit &rh, bool &clean) override
bool test(reco::PFRecHit &hit, const EcalRecHit &rh, bool &clean, bool fullReadOut) override
std::vector< std::vector< double > > thresholds_
edm::ESHandle< EcalPFRecHitThresholds > ths_
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean) override
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean) override
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean) override
PFRecHitQTestThresholdInMIPs(const edm::ParameterSet &iConfig, edm::ConsumesCollector &cc)
edm::ESGetToken< EcalPFRecHitThresholds, EcalPFRecHitThresholdsRcd > threshToken_
constexpr float time() const
bool test(reco::PFRecHit &hit, const HFRecHit &rh, bool &clean) override
bool test(reco::PFRecHit &hit, const HORecHit &rh, bool &clean) override
void beginEvent(const edm::Event &event, const edm::EventSetup &iSetup) override
void beginEvent(const edm::Event &event, const edm::EventSetup &iSetup) override
bool test(reco::PFRecHit &hit, const HFRecHit &rh, bool &clean) override
std::vector< std::string > flagStr_
HcalPFCuts const * paramPF
std::vector< int > thresholds_
bool test(reco::PFRecHit &hit, const HORecHit &rh, bool &clean) override
int waferTypeL(int wafer) const
bool test(reco::PFRecHit &hit, const HORecHit &rh, bool &clean) override
edm::ESHandle< EcalPFSeedingThresholds > ths_
bool test(reco::PFRecHit &hit, const HFRecHit &rh, bool &clean) override
int getSeverityLevel(const DetId &myid, const uint32_t &myflag, const uint32_t &mystatus) const
bool pass(const reco::PFRecHit &hit)
const bool topologicalCleaning_
edm::ESGetToken< HGCalGeometry, IdealGeometryRecord > geomToken_
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean) override
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean) override
bool test(unsigned aDETID, double energy, int flags, bool &clean)
std::vector< edm::ParameterSet > psets_
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean) override
void beginEvent(const edm::Event &event, const edm::EventSetup &iSetup) override
double thresholdCleaning_
bool test(reco::PFRecHit &hit, const EcalRecHit &rh, bool &clean, bool fullReadOut) override
bool test(reco::PFRecHit &hit, const HBHERecHit &rh, bool &clean) override
bool pass(const reco::PFRecHit &hit)
const double thresholdCleaning_
bool test(reco::PFRecHit &hit, const HFRecHit &rh, bool &clean) override
PFRecHitQTestECALMultiThreshold()
bool test(reco::PFRecHit &hit, const CaloTower &rh, bool &clean) override
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
std::vector< int > flags_
bool test(reco::PFRecHit &hit, const EcalRecHit &rh, bool &clean, bool fullReadOut) override
PFRecHitQTestHOThreshold(const edm::ParameterSet &iConfig, edm::ConsumesCollector &cc)
const HGCalDDDConstants & dddConstants() const
bool checkFlag(int flag) const
check if the flag is true
PFRecHitQTestThresholdInMIPs()
bool test(reco::PFRecHit &hit, const HORecHit &rh, bool &clean) override
bool test(reco::PFRecHit &hit, const EcalRecHit &rh, bool &clean, bool fullReadOut) override
bool test(reco::PFRecHit &hit, const HORecHit &rh, bool &clean) override
bool test(reco::PFRecHit &hit, const HGCRecHit &rh, bool &clean) override
std::vector< std::vector< int > > depths_