CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
reco::HcalNoiseInfoProducer Class Reference

#include <HcalNoiseInfoProducer.h>

Inheritance diagram for reco::HcalNoiseInfoProducer:
edm::stream::EDProducer<> edm::stream::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 HcalNoiseInfoProducer (const edm::ParameterSet &)
 
 ~HcalNoiseInfoProducer ()
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
- Public Member Functions inherited from edm::stream::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDProducerBase ()
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, std::unordered_multimap< std::string, edm::ProductResolverIndex > const &iIndicies, std::string const &moduleLabel)
 
virtual ~ProducerBase () noexcept(false)
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

void fillcalotwrs (edm::Event &, const edm::EventSetup &, HcalNoiseRBXArray &, HcalNoiseSummary &) const
 
void filldigis (edm::Event &, const edm::EventSetup &, HcalNoiseRBXArray &, HcalNoiseSummary &)
 
void filljetinfo (edm::Event &, const edm::EventSetup &, HcalNoiseSummary &) const
 
void fillOtherSummaryVariables (HcalNoiseSummary &summary, const CommonHcalNoiseRBXData &data) const
 
void fillrechits (edm::Event &, const edm::EventSetup &, HcalNoiseRBXArray &, HcalNoiseSummary &) const
 
void filltracks (edm::Event &, const edm::EventSetup &, HcalNoiseSummary &) const
 
virtual void produce (edm::Event &, const edm::EventSetup &) override
 

Private Attributes

float adc2fC [128]
 
HcalNoiseAlgo algo_
 
double calibdigiHBHEthreshold_
 
std::vector< int > calibdigiHBHEtimeslices_
 
double calibdigiHFthreshold_
 
std::vector< int > calibdigiHFtimeslices_
 
edm::EDGetTokenT< CaloTowerCollectioncalotower_token_
 
std::string caloTowerCollName_
 
std::string digiCollName_
 
bool fillCaloTowers_
 
bool fillDigis_
 
bool fillRecHits_
 
bool fillTracks_
 
edm::EDGetTokenT< HBHEDigiCollectionhbhedigi_token_
 
edm::EDGetTokenT< HBHERecHitCollectionhbherechit_token_
 
uint32_t HcalAcceptSeverityLevel_
 
edm::EDGetTokenT< HcalCalibDigiCollectionhcalcalibdigi_token_
 
std::vector< int > HcalRecHitFlagsToBeExcluded_
 
edm::EDGetTokenT< reco::PFJetCollectionjet_token_
 
std::string jetCollName_
 
int maxCaloTowerIEta_
 
int maxjetindex_
 
double maxNHF_
 
int maxProblemRBXs_
 
double maxTrackEta_
 
double minHighHitE_
 
double minLowHitE_
 
double minR45HitE_
 
double minRecHitE_
 
double minTrackPt_
 
std::string recHitCollName_
 
const HcalTopologytheHcalTopology_
 
double TotalCalibCharge
 
edm::EDGetTokenT< reco::TrackCollectiontrack_token_
 
std::string trackCollName_
 
double TS4TS5EnergyThreshold_
 
std::vector< std::pair< double, double > > TS4TS5LowerCut_
 
std::vector< std::pair< double, double > > TS4TS5UpperCut_
 
bool useCalibDigi_
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Public Types inherited from edm::stream::EDProducerBase
typedef EDProducerAdaptorBase ModuleType
 
- Public Types inherited from edm::ProducerBase
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::stream::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

Definition at line 48 of file HcalNoiseInfoProducer.h.

Constructor & Destructor Documentation

HcalNoiseInfoProducer::HcalNoiseInfoProducer ( const edm::ParameterSet iConfig)
explicit

Definition at line 31 of file HcalNoiseInfoProducer.cc.

References adc2fC, calibdigiHBHEthreshold_, calibdigiHBHEtimeslices_, calibdigiHFthreshold_, calibdigiHFtimeslices_, calotower_token_, caloTowerCollName_, digiCollName_, edm::ParameterSet::exists(), edm::ParameterSet::existsAs(), fillCaloTowers_, fillDigis_, fillRecHits_, fillTracks_, edm::ParameterSet::getParameter(), hbhedigi_token_, hbherechit_token_, HcalAcceptSeverityLevel_, hcalcalibdigi_token_, HcalRecHitFlagsToBeExcluded_, mps_fire::i, createfilelist::int, jet_token_, jetCollName_, maxCaloTowerIEta_, maxjetindex_, maxNHF_, maxProblemRBXs_, maxTrackEta_, minHighHitE_, minLowHitE_, minR45HitE_, minRecHitE_, minTrackPt_, recHitCollName_, AlCaHLTBitMon_QueryRunRegistry::string, track_token_, trackCollName_, TS4TS5EnergyThreshold_, TS4TS5LowerCut_, TS4TS5UpperCut_, and useCalibDigi_.

31  : algo_(iConfig)
32 {
33  // set the parameters
34  fillDigis_ = iConfig.getParameter<bool>("fillDigis");
35  fillRecHits_ = iConfig.getParameter<bool>("fillRecHits");
36  fillCaloTowers_ = iConfig.getParameter<bool>("fillCaloTowers");
37  fillTracks_ = iConfig.getParameter<bool>("fillTracks");
38 
39  maxProblemRBXs_ = iConfig.getParameter<int>("maxProblemRBXs");
40 
41  maxCaloTowerIEta_ = iConfig.getParameter<int>("maxCaloTowerIEta");
42  maxTrackEta_ = iConfig.getParameter<double>("maxTrackEta");
43  minTrackPt_ = iConfig.getParameter<double>("minTrackPt");
44 
45  digiCollName_ = iConfig.getParameter<std::string>("digiCollName");
46  recHitCollName_ = iConfig.getParameter<std::string>("recHitCollName");
47  caloTowerCollName_ = iConfig.getParameter<std::string>("caloTowerCollName");
48  trackCollName_ = iConfig.getParameter<std::string>("trackCollName");
49 
50  if (iConfig.existsAs<std::string>("jetCollName"))
51  {
52  jetCollName_ = iConfig.getParameter<std::string>("jetCollName");
53  maxNHF_ = iConfig.getParameter<double>("maxNHF");
54  maxjetindex_ = iConfig.getParameter<int>("maxjetindex");
55  jet_token_ = consumes<reco::PFJetCollection>(edm::InputTag(jetCollName_));
56  }
57 
58  minRecHitE_ = iConfig.getParameter<double>("minRecHitE");
59  minLowHitE_ = iConfig.getParameter<double>("minLowHitE");
60  minHighHitE_ = iConfig.getParameter<double>("minHighHitE");
61  if(iConfig.existsAs<double>("minR45HitE"))
62  minR45HitE_ = iConfig.getParameter<double>("minR45HitE");
63 
64  HcalAcceptSeverityLevel_ = iConfig.getParameter<uint32_t>("HcalAcceptSeverityLevel");
65  if (iConfig.exists("HcalRecHitFlagsToBeExcluded"))
66  HcalRecHitFlagsToBeExcluded_ = iConfig.getParameter<std::vector<int> >("HcalRecHitFlagsToBeExcluded");
67  else{
68  edm::LogWarning("MisConfiguration")<<"the module is missing the parameter HcalAcceptSeverityLevel. created empty.";
70  }
71 
72  // Digi threshold and time slices to use for HBHE and HF calibration digis
73  useCalibDigi_ = true;
74  if(iConfig.existsAs<double>("calibdigiHBHEthreshold") == false) useCalibDigi_ = false;
75  if(iConfig.existsAs<double>("calibdigiHFthreshold") == false) useCalibDigi_ = false;
76  if(iConfig.existsAs<std::vector<int> >("calibdigiHBHEtimeslices") == false) useCalibDigi_ = false;
77  if(iConfig.existsAs<std::vector<int> >("calibdigiHFtimeslices") == false) useCalibDigi_ = false;
78 
79  if(useCalibDigi_ == true)
80  {
81  calibdigiHBHEthreshold_ = iConfig.getParameter<double>("calibdigiHBHEthreshold");
82  calibdigiHBHEtimeslices_ = iConfig.getParameter<std::vector<int> >("calibdigiHBHEtimeslices");
83  calibdigiHFthreshold_ = iConfig.getParameter<double>("calibdigiHFthreshold");
84  calibdigiHFtimeslices_ = iConfig.getParameter<std::vector<int> >("calibdigiHFtimeslices");
85  }
86  else
87  {
89  calibdigiHBHEtimeslices_ = std::vector<int>();
91  calibdigiHFtimeslices_ = std::vector<int>();
92  }
93 
94  TS4TS5EnergyThreshold_ = iConfig.getParameter<double>("TS4TS5EnergyThreshold");
95 
96  std::vector<double> TS4TS5UpperThresholdTemp = iConfig.getParameter<std::vector<double> >("TS4TS5UpperThreshold");
97  std::vector<double> TS4TS5UpperCutTemp = iConfig.getParameter<std::vector<double> >("TS4TS5UpperCut");
98  std::vector<double> TS4TS5LowerThresholdTemp = iConfig.getParameter<std::vector<double> >("TS4TS5LowerThreshold");
99  std::vector<double> TS4TS5LowerCutTemp = iConfig.getParameter<std::vector<double> >("TS4TS5LowerCut");
100 
101  for(int i = 0; i < (int)TS4TS5UpperThresholdTemp.size() && i < (int)TS4TS5UpperCutTemp.size(); i++)
102  TS4TS5UpperCut_.push_back(std::pair<double, double>(TS4TS5UpperThresholdTemp[i], TS4TS5UpperCutTemp[i]));
103  sort(TS4TS5UpperCut_.begin(), TS4TS5UpperCut_.end());
104 
105  for(int i = 0; i < (int)TS4TS5LowerThresholdTemp.size() && i < (int)TS4TS5LowerCutTemp.size(); i++)
106  TS4TS5LowerCut_.push_back(std::pair<double, double>(TS4TS5LowerThresholdTemp[i], TS4TS5LowerCutTemp[i]));
107  sort(TS4TS5LowerCut_.begin(), TS4TS5LowerCut_.end());
108 
109  // if digis are filled, then rechits must also be filled
110  if(fillDigis_ && !fillRecHits_) {
111  fillRecHits_=true;
112  edm::LogWarning("HCalNoiseInfoProducer") << " forcing fillRecHits to be true if fillDigis is true.\n";
113  }
114 
115  const float adc2fCTemp[128]={-0.5,0.5,1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5,10.5,11.5,12.5,
116  13.5,15.,17.,19.,21.,23.,25.,27.,29.5,32.5,35.5,38.5,42.,46.,50.,54.5,59.5,
117  64.5,59.5,64.5,69.5,74.5,79.5,84.5,89.5,94.5,99.5,104.5,109.5,114.5,119.5,
118  124.5,129.5,137.,147.,157.,167.,177.,187.,197.,209.5,224.5,239.5,254.5,272.,
119  292.,312.,334.5,359.5,384.5,359.5,384.5,409.5,434.5,459.5,484.5,509.5,534.5,
120  559.5,584.5,609.5,634.5,659.5,684.5,709.5,747.,797.,847.,897.,947.,997.,
121  1047.,1109.5,1184.5,1259.5,1334.5,1422.,1522.,1622.,1734.5,1859.5,1984.5,
122  1859.5,1984.5,2109.5,2234.5,2359.5,2484.5,2609.5,2734.5,2859.5,2984.5,
123  3109.5,3234.5,3359.5,3484.5,3609.5,3797.,4047.,4297.,4547.,4797.,5047.,
124  5297.,5609.5,5984.5,6359.5,6734.5,7172.,7672.,8172.,8734.5,9359.5,9984.5};
125  for(int i = 0; i < 128; i++)
126  adc2fC[i] = adc2fCTemp[i];
127 
128  hbhedigi_token_ = consumes<HBHEDigiCollection>(edm::InputTag(digiCollName_));
129  hcalcalibdigi_token_ = consumes<HcalCalibDigiCollection>(edm::InputTag("hcalDigis"));
130  hbherechit_token_ = consumes<HBHERecHitCollection>(edm::InputTag(recHitCollName_));
131  calotower_token_ = consumes<CaloTowerCollection>(edm::InputTag(caloTowerCollName_));
132  track_token_ = consumes<reco::TrackCollection>(edm::InputTag(trackCollName_));
133 
134  // we produce a vector of HcalNoiseRBXs
135  produces<HcalNoiseRBXCollection>();
136  // we also produce a noise summary
137  produces<HcalNoiseSummary>();
138 }
T getParameter(std::string const &) const
std::vector< int > calibdigiHFtimeslices_
std::vector< int > HcalRecHitFlagsToBeExcluded_
bool existsAs(std::string const &parameterName, bool trackiness=true) const
checks if a parameter exists as a given type
Definition: ParameterSet.h:186
std::vector< std::pair< double, double > > TS4TS5LowerCut_
bool exists(std::string const &parameterName) const
checks if a parameter exists
edm::EDGetTokenT< reco::PFJetCollection > jet_token_
edm::EDGetTokenT< HcalCalibDigiCollection > hcalcalibdigi_token_
edm::EDGetTokenT< HBHEDigiCollection > hbhedigi_token_
std::vector< std::pair< double, double > > TS4TS5UpperCut_
edm::EDGetTokenT< reco::TrackCollection > track_token_
edm::EDGetTokenT< HBHERecHitCollection > hbherechit_token_
std::vector< int > calibdigiHBHEtimeslices_
edm::EDGetTokenT< CaloTowerCollection > calotower_token_
HcalNoiseInfoProducer::~HcalNoiseInfoProducer ( )

Definition at line 141 of file HcalNoiseInfoProducer.cc.

142 {
143 }

Member Function Documentation

void HcalNoiseInfoProducer::fillcalotwrs ( edm::Event iEvent,
const edm::EventSetup iSetup,
HcalNoiseRBXArray array,
HcalNoiseSummary summary 
) const
private

Definition at line 685 of file HcalNoiseInfoProducer.cc.

References edm::SortedCollection< T, SORT >::begin(), calotower_token_, caloTowerCollName_, CaloTower::emEnergy(), HcalNoiseSummary::emenergy_, edm::SortedCollection< T, SORT >::end(), Exception, reco::HcalNoiseRBXArray::findHPD(), edm::Event::getByToken(), CaloTower::hadEnergy(), HcalNoiseSummary::hadenergy_, cmsBatch::handle, CaloTower::ietaAbs(), edm::HandleBase::isValid(), maxCaloTowerIEta_, and edm::errors::ProductNotFound.

Referenced by produce().

686 {
687  // get the calotowers
689  // iEvent.getByLabel(caloTowerCollName_, handle);
690  iEvent.getByToken(calotower_token_, handle);
691 
692  if(!handle.isValid()) {
694  << " could not find CaloTowerCollection named " << caloTowerCollName_ << "\n.";
695  return;
696  }
697 
698  summary.emenergy_ = summary.hadenergy_ = 0.0;
699 
700  // loop over all of the calotower information
701  for(CaloTowerCollection::const_iterator it = handle->begin(); it!=handle->end(); ++it) {
702  const CaloTower& twr=(*it);
703 
704  // create a persistent reference to the tower
705  edm::Ref<CaloTowerCollection> myRef(handle, it-handle->begin());
706 
707  // get all of the hpd's that are pointed to by the calotower
708  std::vector<std::vector<HcalNoiseHPD>::iterator> hpditervec;
709  array.findHPD(twr, hpditervec);
710 
711  // loop over the hpd's and add the reference to the RefVectors
712  for(std::vector<std::vector<HcalNoiseHPD>::iterator>::iterator it=hpditervec.begin();
713  it!=hpditervec.end(); ++it)
714  (*it)->calotowers_.push_back(myRef);
715 
716  // skip over anything with |ieta|>maxCaloTowerIEta
717  if(twr.ietaAbs()>maxCaloTowerIEta_) {
718  summary.emenergy_ += twr.emEnergy();
719  summary.hadenergy_ += twr.hadEnergy();
720  }
721  }
722 
723  return;
724 }
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:460
std::vector< CaloTower >::const_iterator const_iterator
double emEnergy() const
Definition: CaloTower.h:110
std::vector< HcalNoiseHPD >::iterator findHPD(int hpdindex)
bool isValid() const
Definition: HandleBase.h:74
double hadEnergy() const
Definition: CaloTower.h:111
const_iterator end() const
int ietaAbs() const
Definition: CaloTower.h:186
const_iterator begin() const
edm::EDGetTokenT< CaloTowerCollection > calotower_token_
void HcalNoiseInfoProducer::filldigis ( edm::Event iEvent,
const edm::EventSetup iSetup,
HcalNoiseRBXArray array,
HcalNoiseSummary summary 
)
private

Definition at line 326 of file HcalNoiseInfoProducer.cc.

References ecalMGPA::adc(), HcalCoderDb::adc2fC(), adc2fC, reco::HcalNoiseRBX::allCharge_, edm::RefVector< C, T, F >::begin(), edm::SortedCollection< T, SORT >::begin(), reco::HcalNoiseHPD::big5Charge_, reco::HcalNoiseHPD::bigCharge_, HcalNoiseSummary::calibCharge_, HcalNoiseSummary::calibChargegt15TS45_, HcalNoiseSummary::calibChargeTS45_, HcalNoiseSummary::calibCountgt15TS45_, HcalNoiseSummary::calibCountHF_, HcalNoiseSummary::calibCountTS45_, calibdigiHBHEthreshold_, calibdigiHBHEtimeslices_, calibdigiHFthreshold_, calibdigiHFtimeslices_, HcalCalibDetId::calibFlavor(), AlignmentProducer_cff::calibrations, counter, digiCollName_, HcalSeverityLevelComputer::dropChannel(), edm::RefVector< C, T, F >::end(), edm::SortedCollection< T, SORT >::end(), Exception, reco::HcalNoiseRBXArray::findHPD(), reco::HcalNoiseRBXArray::findRBX(), edm::EventSetup::get(), edm::Event::getByToken(), HcalDbService::getHcalCalibrations(), HcalDbService::getHcalCoder(), HcalDbService::getHcalShape(), HcalChannelStatus::getValue(), HcalCondObjectContainer< Item >::getValues(), cmsBatch::handle, hbhedigi_token_, HcalBarrel, hcalcalibdigi_token_, HcalChannelStatus::HcalCellExcludeFromHBHENoiseSummary, HcalEndcap, HcalForward, HcalCalibDetId::HOCrosstalk, mps_fire::i, HBHEDataFrame::id(), createfilelist::int, edm::HandleBase::isValid(), reco::HcalNoiseHPD::maxZeros_, HcalCalibrations::pedestal(), edm::ESHandle< T >::product(), edm::errors::ProductNotFound, DetId::rawId(), TrackInfoProducer_cfi::rechits, reco::HcalNoiseHPD::rechits_, CaloSamples::size(), TotalCalibCharge, reco::HcalNoiseHPD::totalZeros_, and HBHEDataFrame::zsMarkAndPass().

Referenced by produce().

327 {
328  // Some initialization
329  TotalCalibCharge = 0;
330 
331  // Starting with this version (updated by Jeff Temple on Dec. 6, 2012), the "TS45" names in the variables are mis-nomers. The actual time slices used are determined from the digiTimeSlices_ variable, which may not be limited to only time slices 4 and 5. For now, "TS45" name kept, because that is what is used in HcalNoiseSummary object (in GetCalibCountTS45, etc.). Likewise, the charge value in 'gt15' is now configurable, though the name remains the same. For HBHE, we track both the number of calibration channels (NcalibTS45) and the number of calibration channels above threshold (NcalibTS45gt15). For HF, we track only the number of channels above the given threshold in the given time window (NcalibHFgtX). Default for HF in 2012 is to use the full time sample with effectively no threshold (threshold=-999)
332  int NcalibTS45=0;
333  int NcalibTS45gt15=0;
334  int NcalibHFgtX=0;
335 
336  double chargecalibTS45=0;
337  double chargecalibgt15TS45=0;
338 
339  // get the conditions and channel quality
340  edm::ESHandle<HcalDbService> conditions;
341  iSetup.get<HcalDbRecord>().get(conditions);
343  iSetup.get<HcalChannelQualityRcd>().get("withTopo",qualhandle);
344  const HcalChannelQuality* myqual = qualhandle.product();
346  iSetup.get<HcalSeverityLevelComputerRcd>().get(mycomputer);
347  const HcalSeverityLevelComputer* mySeverity = mycomputer.product();
348 
349  // get the digis
351  // iEvent.getByLabel(digiCollName_, handle);
352  iEvent.getByToken(hbhedigi_token_, handle);
353 
354  if(!handle.isValid()) {
355  throw edm::Exception(edm::errors::ProductNotFound) << " could not find HBHEDigiCollection named " << digiCollName_ << "\n.";
356  return;
357  }
358 
359  // loop over all of the digi information
360  for(HBHEDigiCollection::const_iterator it=handle->begin(); it!=handle->end(); ++it) {
361  const HBHEDataFrame &digi=(*it);
362  HcalDetId cell = digi.id();
363  DetId detcell=(DetId)cell;
364 
365  // check on cells to be ignored and dropped
366  const HcalChannelStatus* mydigistatus=myqual->getValues(detcell.rawId());
367  if(mySeverity->dropChannel(mydigistatus->getValue())) continue;
368  if(digi.zsMarkAndPass()) continue;
369  // Drop if exclude bit set
370  if ((mydigistatus->getValue() & (1 <<HcalChannelStatus::HcalCellExcludeFromHBHENoiseSummary))==1) continue;
371 
372  // get the calibrations and coder
373  const HcalCalibrations& calibrations=conditions->getHcalCalibrations(cell);
374  const HcalQIECoder* channelCoder = conditions->getHcalCoder (cell);
375  const HcalQIEShape* shape = conditions->getHcalShape(channelCoder);
376  HcalCoderDb coder (*channelCoder, *shape);
377 
378  // match the digi to an rbx and hpd
379  HcalNoiseRBX &rbx=(*array.findRBX(digi));
380  HcalNoiseHPD &hpd=(*array.findHPD(digi));
381 
382  // determine if the digi is one the highest energy hits in the HPD
383  // this works because the rechits are sorted by energy (see fillrechits() below)
384  bool isBig=false, isBig5=false, isRBX=false;
385  int counter=0;
388  rit!=rechits.end(); ++rit, ++counter) {
389  const HcalDetId & detid = (*rit)->idFront();
390  if(DetId(detid) == digi.id()) {
391  if(counter==0) isBig=isBig5=true; // digi is also the highest energy rechit
392  if(counter<5) isBig5=true; // digi is one of 5 highest energy rechits
393  isRBX=true;
394  }
395  }
396 
397  // loop over each of the digi's time slices
398  int totalzeros=0;
399  CaloSamples tool;
400  coder.adc2fC(digi,tool);
401  for(int ts=0; ts<tool.size(); ++ts) {
402 
403  // count zero's
404  if(digi[ts].adc()==0) {
405  ++hpd.totalZeros_;
406  ++totalzeros;
407  }
408 
409  // get the fC's
410  double corrfc = tool[ts]-calibrations.pedestal(digi[ts].capid());
411 
412  // fill the relevant digi arrays
413  if(isBig) hpd.bigCharge_[ts]+=corrfc;
414  if(isBig5) hpd.big5Charge_[ts]+=corrfc;
415  if(isRBX) rbx.allCharge_[ts]+=corrfc;
416  }
417 
418  // record the maximum number of zero's found
419  if(totalzeros>hpd.maxZeros_)
420  hpd.maxZeros_=totalzeros;
421  }
422 
423  // get the calibration digis
425  // iEvent.getByLabel("hcalDigis", hCalib);
426  iEvent.getByToken(hcalcalibdigi_token_, hCalib);
427 
428  // get total charge in calibration channels
429  if(hCalib.isValid() == true)
430  {
431  for(HcalCalibDigiCollection::const_iterator digi = hCalib->begin(); digi != hCalib->end(); digi++)
432  {
433  if(digi->id().hcalSubdet() == 0)
434  continue;
435 
436  /*
437  HcalCalibDetId cell = digi->id();
438  DetId detcell = (DetId)cell;
439 
440  const HcalChannelStatus* mydigistatus=myqual->getValues(detcell.rawId());
441 
442  if(mySeverity->dropChannel(mydigistatus->getValue()))
443  continue;
444  if(digi->zsMarkAndPass())
445  continue;
446 
447  const HcalQIECoder *channelCoder = conditions->getHcalCoder(cell);
448  const HcalQIEShape* shape = conditions->getHcalShape(channelCoder);
449  HcalCoderDb coder(*channelCoder, *shape);
450 
451  CaloSamples tool;
452  coder.adc2fC(*digi, tool);
453 
454  for(int i = 0; i < (int)digi->size(); i++)
455  TotalCalibCharge = TotalCalibCharge + tool[i];
456  */
457 
458  // Original code computes total calib charge over all digis. While I think it would be more useful to skip
459  // zs mark-and-pass channels, I keep this computation as is. Individual HBHE and HF variables do skip
460  // the m-p channels. -- Jeff Temple, 6 December 2012
461 
462  for(int i = 0; i < (int)digi->size(); i++)
463  TotalCalibCharge = TotalCalibCharge + adc2fC[digi->sample(i).adc()&0xff];
464 
465 
466  HcalCalibDetId myid=(HcalCalibDetId)digi->id();
468  continue; // ignore HOCrosstalk channels
469  if(digi->zsMarkAndPass()) continue; // skip "mark-and-pass" channels when computing charge in calib channels
470 
471 
472  if (digi->id().hcalSubdet()==HcalForward) // check HF
473  {
474  double sumChargeHF=0;
475  for (unsigned int i=0;i<calibdigiHFtimeslices_.size();++i)
476  {
477  // skip unphysical time slices
479  continue;
480  sumChargeHF+=adc2fC[digi->sample(calibdigiHFtimeslices_[i]).adc()&0xff];
481  }
482  if (sumChargeHF>calibdigiHFthreshold_) ++NcalibHFgtX;
483  } // end of HF check
484  else if (digi->id().hcalSubdet()==HcalBarrel || digi->id().hcalSubdet()==HcalEndcap) // now check HBHE
485  {
486  double sumChargeHBHE=0;
487  for (unsigned int i=0;i<calibdigiHBHEtimeslices_.size();++i)
488  {
489  // skip unphysical time slices
491  continue;
492  sumChargeHBHE+=adc2fC[digi->sample(calibdigiHBHEtimeslices_[i]).adc()&0xff];
493  }
494  ++NcalibTS45;
495  chargecalibTS45+=sumChargeHBHE;
496  if (sumChargeHBHE>calibdigiHBHEthreshold_)
497  {
498  ++NcalibTS45gt15;
499  chargecalibgt15TS45+=sumChargeHBHE;
500  }
501  } // end of HBHE check
502  } // loop on HcalCalibDigiCollection
503  } // if (hCalib.isValid()==true)
504 
505  summary.calibCharge_ = TotalCalibCharge;
506  summary.calibCountTS45_=NcalibTS45;
507  summary.calibCountgt15TS45_=NcalibTS45gt15;
508  summary.calibChargeTS45_=chargecalibTS45;
509  summary.calibChargegt15TS45_=chargecalibgt15TS45;
510  summary.calibCountHF_=NcalibHFgtX;
511 
512  return;
513 }
int adc(sample_type sample)
get the ADC sample (12 bits)
std::vector< int > calibdigiHFtimeslices_
bool zsMarkAndPass() const
was ZS MarkAndPass?
Definition: HBHEDataFrame.h:30
CalibDetType calibFlavor() const
get the flavor of this calibration detid
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:460
int adc() const
get the ADC sample
Definition: HcalQIESample.h:22
int size() const
total number of samples in the digi
Definition: HBHEDataFrame.h:26
std::vector< HBHEDataFrame >::const_iterator const_iterator
std::vector< float > bigCharge_
Definition: HcalNoiseHPD.h:137
std::vector< float > big5Charge_
Definition: HcalNoiseHPD.h:138
double pedestal(int fCapId) const
get pedestal for capid=0..3
const Item * getValues(DetId fId, bool throwOnFail=true) const
const_iterator end() const
Termination of iteration.
Definition: RefVector.h:253
const_iterator begin() const
Initialize an iterator over the RefVector.
Definition: RefVector.h:248
edm::RefVector< HBHERecHitCollection > rechits_
Definition: HcalNoiseHPD.h:141
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
HcalNoiseRBXArray::iterator findRBX(int rbxindex)
edm::EDGetTokenT< HcalCalibDigiCollection > hcalcalibdigi_token_
std::vector< HcalNoiseHPD >::iterator findHPD(int hpdindex)
bool dropChannel(const uint32_t &mystatus) const
edm::EDGetTokenT< HBHEDigiCollection > hbhedigi_token_
bool isValid() const
Definition: HandleBase.h:74
const_iterator end() const
std::vector< float > allCharge_
Definition: HcalNoiseRBX.h:115
Definition: DetId.h:18
int size() const
get the size
Definition: CaloSamples.h:24
const HcalQIESample & sample(int i) const
access a sample
Definition: HBHEDataFrame.h:39
const T & get() const
Definition: EventSetup.h:56
const HcalQIECoder * getHcalCoder(const HcalGenericDetId &fId) const
const HcalQIEShape * getHcalShape(const HcalGenericDetId &fId) const
static std::atomic< unsigned int > counter
std::vector< int > calibdigiHBHEtimeslices_
const HcalDetId & id() const
Definition: HBHEDataFrame.h:22
uint32_t getValue() const
const HcalCalibrations & getHcalCalibrations(const HcalGenericDetId &fId) const
T const * product() const
Definition: ESHandle.h:86
const_iterator begin() const
void HcalNoiseInfoProducer::filljetinfo ( edm::Event iEvent,
const edm::EventSetup iSetup,
HcalNoiseSummary summary 
) const
private

Definition at line 728 of file HcalNoiseInfoProducer.cc.

References edm::Event::getByToken(), HcalNoiseSummary::goodJetFoundInLowBVRegion_, edm::HandleBase::isValid(), metsig::jet, jet_token_, jetCollName_, maxjetindex_, maxNHF_, and reco::btau::neutralHadronEnergyFraction.

Referenced by produce().

729 {
730  bool goodJetFoundInLowBVRegion = false; // checks whether a jet is in
731  // a low BV region, where false
732  // noise flagging rate is higher.
733  if (!jetCollName_.empty())
734  {
736  iEvent.getByToken(jet_token_, pfjet_h);
737 
738  if (pfjet_h.isValid())
739  {
740  int jetindex=0;
741  for(reco::PFJetCollection::const_iterator jet = pfjet_h->begin();
742  jet != pfjet_h->end(); ++jet)
743  {
744  if (jetindex>maxjetindex_) break; // only look at jets with
745  // indices up to maxjetindex_
746 
747  // Check whether jet is in low-BV region (0<eta<1.4, -1.8<phi<-1.4)
748  if (jet->eta()>0.0 && jet->eta()<1.4 &&
749  jet->phi()>-1.8 && jet->phi()<-1.4)
750  {
751  // Look for a good jet in low BV region;
752  // if found, we will keep event
753  if (maxNHF_<0.0 || jet->neutralHadronEnergyFraction()<maxNHF_)
754  {
755  goodJetFoundInLowBVRegion=true;
756  break;
757  }
758  }
759  ++jetindex;
760  }
761  }
762  }
763 
764  summary.goodJetFoundInLowBVRegion_ = goodJetFoundInLowBVRegion;
765 }
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:460
edm::EDGetTokenT< reco::PFJetCollection > jet_token_
bool isValid() const
Definition: HandleBase.h:74
void HcalNoiseInfoProducer::fillOtherSummaryVariables ( HcalNoiseSummary summary,
const CommonHcalNoiseRBXData data 
) const
private

Definition at line 230 of file HcalNoiseInfoProducer.cc.

References algo_, HcalNoiseSummary::cnthit10_, HcalNoiseSummary::cnthit25_, CommonHcalNoiseRBXData::e10ts(), CommonHcalNoiseRBXData::e2ts(), HcalNoiseSummary::filterstatus_, HcalNoiseSummary::hasBadRBXRechitR45Loose_, HcalNoiseSummary::hasBadRBXRechitR45Tight_, HcalNoiseSummary::hasBadRBXTS4TS5_, CommonHcalNoiseRBXData::highEHitTimeSqrd(), HcalNoiseSummary::hlnoisetwrs_, CommonHcalNoiseRBXData::HPDEMF(), join(), HcalNoiseSummary::loosenoisetwrs_, CommonHcalNoiseRBXData::lowEHitTimeSqrd(), HcalNoiseSummary::max10_, HcalNoiseSummary::max10GeVHitTime(), HcalNoiseSummary::max25_, HcalNoiseSummary::max25GeVHitTime(), HcalNoiseSummary::maxe10ts_, HcalNoiseSummary::maxE2Over10TS(), HcalNoiseSummary::maxe2ts_, CommonHcalNoiseRBXData::maxHighEHitTime(), HcalNoiseSummary::maxHPDHits(), HcalNoiseSummary::maxhpdhits_, HcalNoiseSummary::maxhpdhitsnoother_, HcalNoiseSummary::maxHPDNoOtherHits(), CommonHcalNoiseRBXData::maxLowEHitTime(), HcalNoiseSummary::maxRBXHits(), HcalNoiseSummary::maxrbxhits_, HcalNoiseSummary::maxZeros(), HcalNoiseSummary::maxzeros_, HcalNoiseSummary::min10_, HcalNoiseSummary::min10GeVHitTime(), HcalNoiseSummary::min25_, HcalNoiseSummary::min25GeVHitTime(), HcalNoiseSummary::mine10ts_, HcalNoiseSummary::minE2Over10TS(), HcalNoiseSummary::mine2ts_, CommonHcalNoiseRBXData::minHighEHitTime(), HcalNoiseSummary::minHPDEMF(), HcalNoiseSummary::minhpdemf_, CommonHcalNoiseRBXData::minLowEHitTime(), HcalNoiseSummary::minRBXEMF(), HcalNoiseSummary::minrbxemf_, CommonHcalNoiseRBXData::numHighEHits(), CommonHcalNoiseRBXData::numHPDHits(), CommonHcalNoiseRBXData::numHPDNoOtherHits(), CommonHcalNoiseRBXData::numLowEHits(), CommonHcalNoiseRBXData::numRBXHits(), CommonHcalNoiseRBXData::numZeros(), HcalNoiseAlgo::passEMFThreshold(), HcalNoiseAlgo::passHighLevelNoiseFilter(), HcalNoiseAlgo::passLooseHits(), HcalNoiseAlgo::passLooseNoiseFilter(), HcalNoiseAlgo::passLooseRatio(), HcalNoiseAlgo::passLooseRBXRechitR45(), HcalNoiseAlgo::passLooseTiming(), HcalNoiseAlgo::passLooseZeros(), HcalNoiseAlgo::passRatioThreshold(), HcalNoiseAlgo::passTightHits(), HcalNoiseAlgo::passTightNoiseFilter(), HcalNoiseAlgo::passTightRatio(), HcalNoiseAlgo::passTightRBXRechitR45(), HcalNoiseAlgo::passTightTiming(), HcalNoiseAlgo::passTightZeros(), CommonHcalNoiseRBXData::PassTS4TS5(), HcalNoiseAlgo::passZerosThreshold(), CommonHcalNoiseRBXData::ratio(), CommonHcalNoiseRBXData::RBXEMF(), CommonHcalNoiseRBXData::rbxTowers(), HcalNoiseSummary::rms10_, HcalNoiseSummary::rms25_, HcalNoiseSummary::tightnoisetwrs_, and CommonHcalNoiseRBXData::validRatio().

Referenced by produce().

231 {
232  // charge ratio
233  if(algo_.passRatioThreshold(data) && data.validRatio()) {
234  if(data.ratio()<summary.minE2Over10TS()) {
235  summary.mine2ts_ = data.e2ts();
236  summary.mine10ts_ = data.e10ts(); }
237  if(data.ratio()>summary.maxE2Over10TS()) {
238  summary.maxe2ts_ = data.e2ts();
239  summary.maxe10ts_ = data.e10ts();
240  }
241  }
242 
243  // ADC zeros
244  if(algo_.passZerosThreshold(data)) {
245  if(data.numZeros()>summary.maxZeros()) {
246  summary.maxzeros_ = data.numZeros();
247  }
248  }
249 
250  // hits count
251  if(data.numHPDHits() > summary.maxHPDHits()) {
252  summary.maxhpdhits_ = data.numHPDHits();
253  }
254  if(data.numRBXHits() > summary.maxRBXHits()) {
255  summary.maxrbxhits_ = data.numRBXHits();
256  }
257  if(data.numHPDNoOtherHits() > summary.maxHPDNoOtherHits()) {
258  summary.maxhpdhitsnoother_ = data.numHPDNoOtherHits();
259  }
260 
261  // TS4TS5
262  if(data.PassTS4TS5() == false)
263  summary.hasBadRBXTS4TS5_ = true;
264 
265  if(algo_.passLooseRBXRechitR45(data) == false)
266  summary.hasBadRBXRechitR45Loose_ = true;
267  if(algo_.passTightRBXRechitR45(data) == false)
268  summary.hasBadRBXRechitR45Tight_ = true;
269 
270  // hit timing
271  if(data.minLowEHitTime()<summary.min10GeVHitTime()) {
272  summary.min10_ = data.minLowEHitTime();
273  }
274  if(data.maxLowEHitTime()>summary.max10GeVHitTime()) {
275  summary.max10_ = data.maxLowEHitTime();
276  }
277  summary.rms10_ += data.lowEHitTimeSqrd();
278  summary.cnthit10_ += data.numLowEHits();
279  if(data.minHighEHitTime()<summary.min25GeVHitTime()) {
280  summary.min25_ = data.minHighEHitTime();
281  }
282  if(data.maxHighEHitTime()>summary.max25GeVHitTime()) {
283  summary.max25_ = data.maxHighEHitTime();
284  }
285  summary.rms25_ += data.highEHitTimeSqrd();
286  summary.cnthit25_ += data.numHighEHits();
287 
288  // EMF
289  if(algo_.passEMFThreshold(data)) {
290  if(summary.minHPDEMF() > data.HPDEMF()) {
291  summary.minhpdemf_ = data.HPDEMF();
292  }
293  if(summary.minRBXEMF() > data.RBXEMF()) {
294  summary.minrbxemf_ = data.RBXEMF();
295  }
296  }
297 
298  // summary flag
299  if(!algo_.passLooseRatio(data)) summary.filterstatus_ |= 0x1;
300  if(!algo_.passLooseHits(data)) summary.filterstatus_ |= 0x2;
301  if(!algo_.passLooseZeros(data)) summary.filterstatus_ |= 0x4;
302  if(!algo_.passLooseTiming(data)) summary.filterstatus_ |= 0x8;
303 
304  if(!algo_.passTightRatio(data)) summary.filterstatus_ |= 0x100;
305  if(!algo_.passTightHits(data)) summary.filterstatus_ |= 0x200;
306  if(!algo_.passTightZeros(data)) summary.filterstatus_ |= 0x400;
307  if(!algo_.passTightTiming(data)) summary.filterstatus_ |= 0x800;
308 
309  if(!algo_.passHighLevelNoiseFilter(data)) summary.filterstatus_ |= 0x10000;
310 
311  // summary refvectors
313  if(!algo_.passLooseNoiseFilter(data))
314  join(summary.loosenoisetwrs_, data.rbxTowers());
315  if(!algo_.passTightNoiseFilter(data))
316  join(summary.tightnoisetwrs_, data.rbxTowers());
318  join(summary.hlnoisetwrs_, data.rbxTowers());
319 
320  return;
321 }
double e10ts(void) const
Definition: HcalNoiseAlgo.h:23
double HPDEMF(void) const
Definition: HcalNoiseAlgo.h:38
double e2ts(void) const
Definition: HcalNoiseAlgo.h:22
edm::RefVector< CaloTowerCollection > hlnoisetwrs_
double lowEHitTimeSqrd(void) const
Definition: HcalNoiseAlgo.h:31
bool passTightRatio(const CommonHcalNoiseRBXData &) const
double minLowEHitTime(void) const
Definition: HcalNoiseAlgo.h:29
bool passLooseRatio(const CommonHcalNoiseRBXData &) const
bool passTightRBXRechitR45(const CommonHcalNoiseRBXData &) const
double maxHighEHitTime(void) const
Definition: HcalNoiseAlgo.h:34
bool passTightTiming(const CommonHcalNoiseRBXData &) const
double maxLowEHitTime(void) const
Definition: HcalNoiseAlgo.h:30
int numLowEHits(void) const
Definition: HcalNoiseAlgo.h:32
double ratio(void) const
Definition: HcalNoiseAlgo.h:21
float maxE2Over10TS(void) const
edm::RefVector< CaloTowerCollection > loosenoisetwrs_
bool passLooseRBXRechitR45(const CommonHcalNoiseRBXData &) const
float min25GeVHitTime(void) const
bool passHighLevelNoiseFilter(const CommonHcalNoiseRBXData &) const
double RBXEMF(void) const
Definition: HcalNoiseAlgo.h:37
int numRBXHits(void) const
Definition: HcalNoiseAlgo.h:26
float min10GeVHitTime(void) const
double highEHitTimeSqrd(void) const
Definition: HcalNoiseAlgo.h:35
float minE2Over10TS(void) const
bool passLooseZeros(const CommonHcalNoiseRBXData &) const
int maxRBXHits(void) const
bool passTightZeros(const CommonHcalNoiseRBXData &) const
int numHighEHits(void) const
Definition: HcalNoiseAlgo.h:36
bool passRatioThreshold(const CommonHcalNoiseRBXData &) const
int numHPDNoOtherHits(void) const
Definition: HcalNoiseAlgo.h:27
int numZeros(void) const
Definition: HcalNoiseAlgo.h:28
bool passZerosThreshold(const CommonHcalNoiseRBXData &) const
float minHPDEMF(void) const
bool passLooseNoiseFilter(const CommonHcalNoiseRBXData &) const
edm::RefVector< CaloTowerCollection > rbxTowers(void) const
Definition: HcalNoiseAlgo.h:40
bool passLooseHits(const CommonHcalNoiseRBXData &) const
static std::string join(char **cmd)
Definition: RemoteFile.cc:18
int maxZeros(void) const
edm::RefVector< CaloTowerCollection > tightnoisetwrs_
bool passLooseTiming(const CommonHcalNoiseRBXData &) const
bool passTightNoiseFilter(const CommonHcalNoiseRBXData &) const
int maxHPDNoOtherHits(void) const
double minHighEHitTime(void) const
Definition: HcalNoiseAlgo.h:33
float minRBXEMF(void) const
bool PassTS4TS5(void) const
Definition: HcalNoiseAlgo.h:39
bool passEMFThreshold(const CommonHcalNoiseRBXData &) const
int maxHPDHits(void) const
int numHPDHits(void) const
Definition: HcalNoiseAlgo.h:25
float max25GeVHitTime(void) const
float max10GeVHitTime(void) const
bool validRatio(void) const
Definition: HcalNoiseAlgo.h:24
bool passTightHits(const CommonHcalNoiseRBXData &) const
void HcalNoiseInfoProducer::fillrechits ( edm::Event iEvent,
const edm::EventSetup iSetup,
HcalNoiseRBXArray array,
HcalNoiseSummary summary 
) const
private

Definition at line 517 of file HcalNoiseInfoProducer.cc.

References edm::SortedCollection< T, SORT >::begin(), edm::SortedCollection< T, SORT >::end(), HcalNoiseSummary::energyInLaserRegion_, HcalNoiseSummary::energyInNonLaserRegion_, HBHERecHit::eraw(), stringResolutionProvider_cfi::et, Exception, reco::HcalNoiseRBXArray::findHPD(), CaloRecHit::flags(), HcalNoiseSummary::flatnoisee_, HcalNoiseSummary::flatnoiseet_, edm::EventSetup::get(), edm::Event::getByToken(), CaloGeometry::getPosition(), HcalSeverityLevelComputer::getSeverityLevel(), HcalChannelStatus::getValue(), HcalCondObjectContainer< Item >::getValues(), runTauDisplay::gp, cmsBatch::handle, HcalCaloFlagLabels::HBHEFlatNoise, HcalCaloFlagLabels::HBHEIsolatedNoise, HcalCaloFlagLabels::HBHENegativeNoise, hbherechit_token_, HcalCaloFlagLabels::HBHESpikeNoise, HcalCaloFlagLabels::HBHETriangleNoise, HcalCaloFlagLabels::HBHETS4TS5Noise, HcalAcceptSeverityLevel_, HcalChannelStatus::HcalBadLaserSignal, HcalChannelStatus::HcalCellExcludeFromHBHENoiseSummary, HcalChannelStatus::HcalCellExcludeFromHBHENoiseSummaryR45, HcalRecHitFlagsToBeExcluded_, HcalNoiseSummary::hitsInLaserRegion_, HcalNoiseSummary::hitsInNonLaserRegion_, mps_fire::i, HBHERecHit::id(), HBHERecHit::idFront(), HcalNoiseSummary::isolnoisee_, HcalNoiseSummary::isolnoiseet_, edm::HandleBase::isValid(), HcalNoiseSummary::negativenoisee_, HcalNoiseSummary::negativenoiseet_, HcalNoiseSummary::nflatnoise_, HcalNoiseSummary::nisolnoise_, HcalNoiseSummary::nnegativenoise_, HcalNoiseSummary::nspikenoise_, HcalNoiseSummary::ntrianglenoise_, HcalNoiseSummary::nts4ts5noise_, edm::ESHandle< T >::product(), edm::errors::ProductNotFound, recHitCollName_, HcalNoiseSummary::rechitCount15_, HcalNoiseSummary::rechitCount_, HcalNoiseSummary::rechitEnergy15_, HcalNoiseSummary::rechitEnergy_, HcalSeverityLevelComputer::recoveredRecHit(), reco::HcalNoiseHPD::refrechitset_, interestingDetIdCollectionProducer_cfi::severityLevel, HcalNoiseSummary::spikenoisee_, HcalNoiseSummary::spikenoiseet_, HcalNoiseSummary::trianglenoisee_, HcalNoiseSummary::trianglenoiseet_, HcalNoiseSummary::ts4ts5noisee_, and HcalNoiseSummary::ts4ts5noiseet_.

Referenced by produce().

518 {
519  // get the HCAL channel status map
521  iSetup.get<HcalChannelQualityRcd>().get( "withTopo", hcalChStatus );
522  const HcalChannelQuality* dbHcalChStatus = hcalChStatus.product();
523 
524  // get the severity level computer
525  edm::ESHandle<HcalSeverityLevelComputer> hcalSevLvlComputerHndl;
526  iSetup.get<HcalSeverityLevelComputerRcd>().get(hcalSevLvlComputerHndl);
527  const HcalSeverityLevelComputer* hcalSevLvlComputer = hcalSevLvlComputerHndl.product();
528 
529  // get the calo geometry
531  iSetup.get<CaloGeometryRecord>().get(pG);
532  const CaloGeometry* geo = pG.product();
533 
534  // get the rechits
536  // iEvent.getByLabel(recHitCollName_, handle);
537  iEvent.getByToken(hbherechit_token_, handle);
538 
539  if(!handle.isValid()) {
541  << " could not find HBHERecHitCollection named " << recHitCollName_ << "\n.";
542  return;
543  }
544 
545  summary.rechitCount_ = 0;
546  summary.rechitCount15_ = 0;
547  summary.rechitEnergy_ = 0;
548  summary.rechitEnergy15_ = 0;
549 
550  summary.hitsInLaserRegion_=0;
551  summary.hitsInNonLaserRegion_=0;
552  summary.energyInLaserRegion_=0;
553  summary.energyInNonLaserRegion_=0;
554 
555 
556 
557  // loop over all of the rechit information
558  for(HBHERecHitCollection::const_iterator it=handle->begin(); it!=handle->end(); ++it) {
559  const HBHERecHit &rechit=(*it);
560 
561  // skip bad rechits (other than those flagged by the isolated noise, triangle, flat, and spike algorithms)
562  const DetId id = rechit.idFront();
563 
564  uint32_t recHitFlag = rechit.flags();
565  uint32_t isolbitset = (1 << HcalCaloFlagLabels::HBHEIsolatedNoise);
566  uint32_t flatbitset = (1 << HcalCaloFlagLabels::HBHEFlatNoise);
567  uint32_t spikebitset = (1 << HcalCaloFlagLabels::HBHESpikeNoise);
568  uint32_t trianglebitset = (1 << HcalCaloFlagLabels::HBHETriangleNoise);
569  uint32_t ts4ts5bitset = (1 << HcalCaloFlagLabels::HBHETS4TS5Noise);
570  uint32_t negativebitset = (1 << HcalCaloFlagLabels::HBHENegativeNoise);
571  for(unsigned int i=0; i<HcalRecHitFlagsToBeExcluded_.size(); i++) {
572  uint32_t bitset = (1 << HcalRecHitFlagsToBeExcluded_[i]);
573  recHitFlag = (recHitFlag & bitset) ? recHitFlag-bitset : recHitFlag;
574  }
575  const uint32_t dbStatusFlag = dbHcalChStatus->getValues(id)->getValue();
576 
577  // Ignore rechit if exclude bit set, regardless of severity of other bits
578  if ((dbStatusFlag & (1 <<HcalChannelStatus::HcalCellExcludeFromHBHENoiseSummary))==1) continue;
579 
580  int severityLevel = hcalSevLvlComputer->getSeverityLevel(id, recHitFlag, dbStatusFlag);
581  bool isRecovered = hcalSevLvlComputer->recoveredRecHit(id, recHitFlag);
582  if(severityLevel!=0 && !isRecovered && severityLevel>static_cast<int>(HcalAcceptSeverityLevel_)) continue;
583 
584  // do some rechit counting and energies
585  summary.rechitCount_ = summary.rechitCount_ + 1;
586  summary.rechitEnergy_ = summary.rechitEnergy_ + rechit.eraw();
587  if ((dbStatusFlag & (1 <<HcalChannelStatus::HcalBadLaserSignal))==1) // hit comes from a region where no laser calibration pulse is normally seen
588  {
589  ++summary.hitsInNonLaserRegion_;
590  summary.energyInNonLaserRegion_+=rechit.eraw();
591  }
592  else // hit comes from region where laser calibration pulse is seen
593  {
594  ++summary.hitsInLaserRegion_;
595  summary.energyInLaserRegion_+=rechit.eraw();
596  }
597 
598  if(rechit.eraw() > 1.5)
599  {
600  summary.rechitCount15_ = summary.rechitCount15_ + 1;
601  summary.rechitEnergy15_ = summary.rechitEnergy15_ + rechit.eraw();
602  }
603 
604  // if it was ID'd as isolated noise, update the summary object
605  if(rechit.flags() & isolbitset) {
606  summary.nisolnoise_++;
607  summary.isolnoisee_ += rechit.eraw();
608  GlobalPoint gp = geo->getPosition(rechit.id());
609  double et = rechit.eraw()*gp.perp()/gp.mag();
610  summary.isolnoiseet_ += et;
611  }
612 
613  if(rechit.flags() & flatbitset) {
614  summary.nflatnoise_++;
615  summary.flatnoisee_ += rechit.eraw();
616  GlobalPoint gp = geo->getPosition(rechit.id());
617  double et = rechit.eraw()*gp.perp()/gp.mag();
618  summary.flatnoiseet_ += et;
619  }
620 
621  if(rechit.flags() & spikebitset) {
622  summary.nspikenoise_++;
623  summary.spikenoisee_ += rechit.eraw();
624  GlobalPoint gp = geo->getPosition(rechit.id());
625  double et = rechit.eraw()*gp.perp()/gp.mag();
626  summary.spikenoiseet_ += et;
627  }
628 
629  if(rechit.flags() & trianglebitset) {
630  summary.ntrianglenoise_++;
631  summary.trianglenoisee_ += rechit.eraw();
632  GlobalPoint gp = geo->getPosition(rechit.id());
633  double et = rechit.eraw()*gp.perp()/gp.mag();
634  summary.trianglenoiseet_ += et;
635  }
636 
637  if(rechit.flags() & ts4ts5bitset) {
638  if ((dbStatusFlag & (1 <<HcalChannelStatus::HcalCellExcludeFromHBHENoiseSummaryR45))==0) // only add to TS4TS5 if the bit is not marked as "HcalCellExcludeFromHBHENoiseSummaryR45"
639  {
640  summary.nts4ts5noise_++;
641  summary.ts4ts5noisee_ += rechit.eraw();
642  GlobalPoint gp = geo->getPosition(rechit.id());
643  double et = rechit.eraw()*gp.perp()/gp.mag();
644  summary.ts4ts5noiseet_ += et;
645  }
646  }
647 
648  if(rechit.flags() & negativebitset) {
649  summary.nnegativenoise_++;
650  summary.negativenoisee_ += rechit.eraw();
651  GlobalPoint gp = geo->getPosition(rechit.id());
652  double et = rechit.eraw()*gp.perp()/gp.mag();
653  summary.negativenoiseet_ += et;
654  }
655 
656  // find the hpd that the rechit is in
657  HcalNoiseHPD& hpd=(*array.findHPD(rechit));
658 
659  // create a persistent reference to the rechit
660  edm::Ref<HBHERecHitCollection> myRef(handle, it-handle->begin());
661 
662  // store it in a place so that it remains sorted by energy
663  hpd.refrechitset_.insert(myRef);
664 
665  } // end loop over rechits
666 
667  // loop over all HPDs and transfer the information from refrechitset_ to rechits_;
668  for(HcalNoiseRBXArray::iterator rbxit=array.begin(); rbxit!=array.end(); ++rbxit) {
669  for(std::vector<HcalNoiseHPD>::iterator hpdit=rbxit->hpds_.begin(); hpdit!=rbxit->hpds_.end(); ++hpdit) {
670 
671  // loop over all of the entries in the set and add them to rechits_
673  it=hpdit->refrechitset_.begin(); it!=hpdit->refrechitset_.end(); ++it) {
674  hpdit->rechits_.push_back(*it);
675  }
676  }
677  }
678  // now the rechits in all the HPDs are sorted by energy!
679 
680  return;
681 }
std::vector< int > HcalRecHitFlagsToBeExcluded_
T perp() const
Definition: PV3DBase.h:72
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:460
HcalDetId id() const
get the id
Definition: HBHERecHit.h:25
std::set< edm::Ref< HBHERecHitCollection >, RefHBHERecHitEnergyComparison > refrechitset_
Definition: HcalNoiseHPD.h:145
std::vector< HBHERecHit >::const_iterator const_iterator
HcalDetId idFront() const
Definition: HBHERecHit.cc:67
const Item * getValues(DetId fId, bool throwOnFail=true) const
T mag() const
Definition: PV3DBase.h:67
bool recoveredRecHit(const DetId &myid, const uint32_t &myflag) const
uint32_t flags() const
Definition: CaloRecHit.h:22
std::vector< HcalNoiseHPD >::iterator findHPD(int hpdindex)
const GlobalPoint & getPosition(const DetId &id) const
Get the position of a given detector id.
Definition: CaloGeometry.cc:70
bool isValid() const
Definition: HandleBase.h:74
const_iterator end() const
Definition: DetId.h:18
edm::EDGetTokenT< HBHERecHitCollection > hbherechit_token_
const T & get() const
Definition: EventSetup.h:56
int getSeverityLevel(const DetId &myid, const uint32_t &myflag, const uint32_t &mystatus) const
et
define resolution functions of each parameter
double energyInNonLaserRegion_
float eraw() const
Definition: HBHERecHit.h:31
uint32_t getValue() const
T const * product() const
Definition: ESHandle.h:86
const_iterator begin() const
void HcalNoiseInfoProducer::filltracks ( edm::Event iEvent,
const edm::EventSetup iSetup,
HcalNoiseSummary summary 
) const
private

Definition at line 769 of file HcalNoiseInfoProducer.cc.

References DEFINE_FWK_MODULE, reco::TrackBase::eta(), edm::Event::getByToken(), cmsBatch::handle, edm::HandleBase::isValid(), maxTrackEta_, minTrackPt_, reco::TrackBase::p(), reco::TrackBase::pt(), track_token_, and HcalNoiseSummary::trackenergy_.

Referenced by produce().

770 {
772  // iEvent.getByLabel(trackCollName_, handle);
773  iEvent.getByToken(track_token_, handle);
774 
775  // don't throw exception, just return quietly
776  if(!handle.isValid()) {
777  // throw edm::Exception(edm::errors::ProductNotFound)
778  // << " could not find trackCollection named " << trackCollName_ << "\n.";
779  return;
780  }
781 
782  summary.trackenergy_=0.0;
783  for(reco::TrackCollection::const_iterator iTrack = handle->begin(); iTrack!=handle->end(); ++iTrack) {
784  reco::Track trk=*iTrack;
785  if(trk.pt()<minTrackPt_ || fabs(trk.eta())>maxTrackEta_) continue;
786 
787  summary.trackenergy_ += trk.p();
788  }
789 
790  return;
791 }
double p() const
momentum vector magnitude
Definition: TrackBase.h:610
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:460
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:646
double pt() const
track transverse momentum
Definition: TrackBase.h:616
bool isValid() const
Definition: HandleBase.h:74
edm::EDGetTokenT< reco::TrackCollection > track_token_
void HcalNoiseInfoProducer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivatevirtual

Definition at line 152 of file HcalNoiseInfoProducer.cc.

References algo_, data, CommonHcalNoiseRBXData::energy(), fillCaloTowers_, fillcalotwrs(), filldigis(), fillDigis_, filljetinfo(), fillOtherSummaryVariables(), fillrechits(), fillRecHits_, filltracks(), fillTracks_, edm::EventSetup::get(), HcalNoiseAlgo::isProblematic(), maxProblemRBXs_, minHighHitE_, minLowHitE_, minR45HitE_, minRecHitE_, eostools::move(), HcalNoiseSummary::nproblemRBXs_, HcalNoiseAlgo::passHighLevelNoiseFilter(), HcalNoiseAlgo::passLooseNoiseFilter(), HcalNoiseAlgo::passTightNoiseFilter(), edm::ESHandle< T >::product(), edm::Event::put(), heppy_report::summary, theHcalTopology_, TS4TS5EnergyThreshold_, TS4TS5LowerCut_, and TS4TS5UpperCut_.

153 {
154  // this is what we're going to actually write to the EDM
155  auto result1 = std::make_unique<HcalNoiseRBXCollection>();
156  auto result2 = std::make_unique<HcalNoiseSummary>();
157 
158  // define an empty HcalNoiseRBXArray that we're going to fill
159  HcalNoiseRBXArray rbxarray;
160  HcalNoiseSummary &summary=*result2;
161 
162  // Get topology class to use later
164  iSetup.get<HcalRecNumberingRecord>().get(topo);
165  theHcalTopology_ = topo.product();
166 
167  // fill them with the various components
168  // digi assumes that rechit information is available
169  if(fillRecHits_) fillrechits(iEvent, iSetup, rbxarray, summary);
170  if(fillDigis_) filldigis(iEvent, iSetup, rbxarray, summary);
171  if(fillCaloTowers_) fillcalotwrs(iEvent, iSetup, rbxarray, summary);
172  if(fillTracks_) filltracks(iEvent, iSetup, summary);
173 
174  filljetinfo(iEvent, iSetup, summary);
175 
176  // Why is this here? Shouldn't it have been in the filldigis method? Any reason for TotalCalibCharge to be defined outside filldigis(...) ?-- Jeff, 7/2/12
177  //if(fillDigis_) summary.calibCharge_ = TotalCalibCharge;
178 
179  // select those RBXs which are interesting
180  // also look for the highest energy RBX
181  HcalNoiseRBXArray::iterator maxit=rbxarray.begin();
182  double maxenergy=-999;
183  bool maxwritten=false;
184  for(HcalNoiseRBXArray::iterator rit = rbxarray.begin(); rit!=rbxarray.end(); ++rit) {
185  HcalNoiseRBX &rbx=(*rit);
188 
189  // find the highest energy rbx
190  if(data.energy()>maxenergy) {
191  maxenergy=data.energy();
192  maxit=rit;
193  maxwritten=false;
194  }
195 
196  // find out if the rbx is problematic/noisy/etc.
197  bool writerbx = algo_.isProblematic(data) || !algo_.passLooseNoiseFilter(data) ||
199 
200  // fill variables in the summary object not filled elsewhere
202 
203  if(writerbx) {
204  summary.nproblemRBXs_++;
205  if(summary.nproblemRBXs_<=maxProblemRBXs_) {
206  result1->push_back(rbx);
207  if(maxit==rit) maxwritten=true;
208  }
209  }
210  } // end loop over rbxs
211 
212  // if we still haven't written the maximum energy rbx, write it now
213  if(!maxwritten) {
214  HcalNoiseRBX &rbx=(*maxit);
215 
216  // add the RBX to the event
217  result1->push_back(rbx);
218  }
219 
220  // put the rbxcollection and summary into the EDM
221  iEvent.put(std::move(result1));
222  iEvent.put(std::move(result2));
223 
224  return;
225 }
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:122
bool isProblematic(const CommonHcalNoiseRBXData &) const
void fillrechits(edm::Event &, const edm::EventSetup &, HcalNoiseRBXArray &, HcalNoiseSummary &) const
std::vector< std::pair< double, double > > TS4TS5LowerCut_
void fillcalotwrs(edm::Event &, const edm::EventSetup &, HcalNoiseRBXArray &, HcalNoiseSummary &) const
bool passHighLevelNoiseFilter(const CommonHcalNoiseRBXData &) const
void filljetinfo(edm::Event &, const edm::EventSetup &, HcalNoiseSummary &) const
std::vector< std::pair< double, double > > TS4TS5UpperCut_
bool passLooseNoiseFilter(const CommonHcalNoiseRBXData &) const
void filldigis(edm::Event &, const edm::EventSetup &, HcalNoiseRBXArray &, HcalNoiseSummary &)
const T & get() const
Definition: EventSetup.h:56
bool passTightNoiseFilter(const CommonHcalNoiseRBXData &) const
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
const HcalTopology * theHcalTopology_
void filltracks(edm::Event &, const edm::EventSetup &, HcalNoiseSummary &) const
void fillOtherSummaryVariables(HcalNoiseSummary &summary, const CommonHcalNoiseRBXData &data) const
T const * product() const
Definition: ESHandle.h:86
def move(src, dest)
Definition: eostools.py:510

Member Data Documentation

float reco::HcalNoiseInfoProducer::adc2fC[128]
private

Definition at line 134 of file HcalNoiseInfoProducer.h.

Referenced by filldigis(), and HcalNoiseInfoProducer().

HcalNoiseAlgo reco::HcalNoiseInfoProducer::algo_
private

Definition at line 115 of file HcalNoiseInfoProducer.h.

Referenced by fillOtherSummaryVariables(), and produce().

double reco::HcalNoiseInfoProducer::calibdigiHBHEthreshold_
private

Definition at line 120 of file HcalNoiseInfoProducer.h.

Referenced by filldigis(), and HcalNoiseInfoProducer().

std::vector<int> reco::HcalNoiseInfoProducer::calibdigiHBHEtimeslices_
private

Definition at line 121 of file HcalNoiseInfoProducer.h.

Referenced by filldigis(), and HcalNoiseInfoProducer().

double reco::HcalNoiseInfoProducer::calibdigiHFthreshold_
private

Definition at line 123 of file HcalNoiseInfoProducer.h.

Referenced by filldigis(), and HcalNoiseInfoProducer().

std::vector<int> reco::HcalNoiseInfoProducer::calibdigiHFtimeslices_
private

Definition at line 124 of file HcalNoiseInfoProducer.h.

Referenced by filldigis(), and HcalNoiseInfoProducer().

edm::EDGetTokenT<CaloTowerCollection> reco::HcalNoiseInfoProducer::calotower_token_
private

Definition at line 108 of file HcalNoiseInfoProducer.h.

Referenced by fillcalotwrs(), and HcalNoiseInfoProducer().

std::string reco::HcalNoiseInfoProducer::caloTowerCollName_
private

Definition at line 101 of file HcalNoiseInfoProducer.h.

Referenced by fillcalotwrs(), and HcalNoiseInfoProducer().

std::string reco::HcalNoiseInfoProducer::digiCollName_
private

Definition at line 99 of file HcalNoiseInfoProducer.h.

Referenced by filldigis(), and HcalNoiseInfoProducer().

bool reco::HcalNoiseInfoProducer::fillCaloTowers_
private

Definition at line 84 of file HcalNoiseInfoProducer.h.

Referenced by HcalNoiseInfoProducer(), and produce().

bool reco::HcalNoiseInfoProducer::fillDigis_
private

Definition at line 82 of file HcalNoiseInfoProducer.h.

Referenced by HcalNoiseInfoProducer(), and produce().

bool reco::HcalNoiseInfoProducer::fillRecHits_
private

Definition at line 83 of file HcalNoiseInfoProducer.h.

Referenced by HcalNoiseInfoProducer(), and produce().

bool reco::HcalNoiseInfoProducer::fillTracks_
private

Definition at line 85 of file HcalNoiseInfoProducer.h.

Referenced by HcalNoiseInfoProducer(), and produce().

edm::EDGetTokenT<HBHEDigiCollection> reco::HcalNoiseInfoProducer::hbhedigi_token_
private

Definition at line 105 of file HcalNoiseInfoProducer.h.

Referenced by filldigis(), and HcalNoiseInfoProducer().

edm::EDGetTokenT<HBHERecHitCollection> reco::HcalNoiseInfoProducer::hbherechit_token_
private

Definition at line 107 of file HcalNoiseInfoProducer.h.

Referenced by fillrechits(), and HcalNoiseInfoProducer().

uint32_t reco::HcalNoiseInfoProducer::HcalAcceptSeverityLevel_
private

Definition at line 131 of file HcalNoiseInfoProducer.h.

Referenced by fillrechits(), and HcalNoiseInfoProducer().

edm::EDGetTokenT<HcalCalibDigiCollection> reco::HcalNoiseInfoProducer::hcalcalibdigi_token_
private

Definition at line 106 of file HcalNoiseInfoProducer.h.

Referenced by filldigis(), and HcalNoiseInfoProducer().

std::vector<int> reco::HcalNoiseInfoProducer::HcalRecHitFlagsToBeExcluded_
private

Definition at line 132 of file HcalNoiseInfoProducer.h.

Referenced by fillrechits(), and HcalNoiseInfoProducer().

edm::EDGetTokenT<reco::PFJetCollection> reco::HcalNoiseInfoProducer::jet_token_
private

Definition at line 110 of file HcalNoiseInfoProducer.h.

Referenced by filljetinfo(), and HcalNoiseInfoProducer().

std::string reco::HcalNoiseInfoProducer::jetCollName_
private

Definition at line 103 of file HcalNoiseInfoProducer.h.

Referenced by filljetinfo(), and HcalNoiseInfoProducer().

int reco::HcalNoiseInfoProducer::maxCaloTowerIEta_
private

Definition at line 91 of file HcalNoiseInfoProducer.h.

Referenced by fillcalotwrs(), and HcalNoiseInfoProducer().

int reco::HcalNoiseInfoProducer::maxjetindex_
private

Definition at line 95 of file HcalNoiseInfoProducer.h.

Referenced by filljetinfo(), and HcalNoiseInfoProducer().

double reco::HcalNoiseInfoProducer::maxNHF_
private

Definition at line 94 of file HcalNoiseInfoProducer.h.

Referenced by filljetinfo(), and HcalNoiseInfoProducer().

int reco::HcalNoiseInfoProducer::maxProblemRBXs_
private

Definition at line 88 of file HcalNoiseInfoProducer.h.

Referenced by HcalNoiseInfoProducer(), and produce().

double reco::HcalNoiseInfoProducer::maxTrackEta_
private

Definition at line 92 of file HcalNoiseInfoProducer.h.

Referenced by filltracks(), and HcalNoiseInfoProducer().

double reco::HcalNoiseInfoProducer::minHighHitE_
private

Definition at line 114 of file HcalNoiseInfoProducer.h.

Referenced by HcalNoiseInfoProducer(), and produce().

double reco::HcalNoiseInfoProducer::minLowHitE_
private

Definition at line 114 of file HcalNoiseInfoProducer.h.

Referenced by HcalNoiseInfoProducer(), and produce().

double reco::HcalNoiseInfoProducer::minR45HitE_
private

Definition at line 114 of file HcalNoiseInfoProducer.h.

Referenced by HcalNoiseInfoProducer(), and produce().

double reco::HcalNoiseInfoProducer::minRecHitE_
private

Definition at line 114 of file HcalNoiseInfoProducer.h.

Referenced by HcalNoiseInfoProducer(), and produce().

double reco::HcalNoiseInfoProducer::minTrackPt_
private

Definition at line 93 of file HcalNoiseInfoProducer.h.

Referenced by filltracks(), and HcalNoiseInfoProducer().

std::string reco::HcalNoiseInfoProducer::recHitCollName_
private

Definition at line 100 of file HcalNoiseInfoProducer.h.

Referenced by fillrechits(), and HcalNoiseInfoProducer().

const HcalTopology* reco::HcalNoiseInfoProducer::theHcalTopology_
private

Definition at line 97 of file HcalNoiseInfoProducer.h.

Referenced by produce().

double reco::HcalNoiseInfoProducer::TotalCalibCharge
private

Definition at line 112 of file HcalNoiseInfoProducer.h.

Referenced by filldigis().

edm::EDGetTokenT<reco::TrackCollection> reco::HcalNoiseInfoProducer::track_token_
private

Definition at line 109 of file HcalNoiseInfoProducer.h.

Referenced by filltracks(), and HcalNoiseInfoProducer().

std::string reco::HcalNoiseInfoProducer::trackCollName_
private

Definition at line 102 of file HcalNoiseInfoProducer.h.

Referenced by HcalNoiseInfoProducer().

double reco::HcalNoiseInfoProducer::TS4TS5EnergyThreshold_
private

Definition at line 127 of file HcalNoiseInfoProducer.h.

Referenced by HcalNoiseInfoProducer(), and produce().

std::vector<std::pair<double, double> > reco::HcalNoiseInfoProducer::TS4TS5LowerCut_
private

Definition at line 129 of file HcalNoiseInfoProducer.h.

Referenced by HcalNoiseInfoProducer(), and produce().

std::vector<std::pair<double, double> > reco::HcalNoiseInfoProducer::TS4TS5UpperCut_
private

Definition at line 128 of file HcalNoiseInfoProducer.h.

Referenced by HcalNoiseInfoProducer(), and produce().

bool reco::HcalNoiseInfoProducer::useCalibDigi_
private

Definition at line 117 of file HcalNoiseInfoProducer.h.

Referenced by HcalNoiseInfoProducer().