CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Static Public Member Functions | Private Types | Private Attributes
HLTHcalTowerNoiseCleanerWithrechit Class Reference

#include <HLTHcalTowerNoiseCleanerWithrechit.h>

Inheritance diagram for HLTHcalTowerNoiseCleanerWithrechit:
edm::stream::EDProducer<>

Classes

struct  noisedatacomp
 

Public Member Functions

 HLTHcalTowerNoiseCleanerWithrechit (const edm::ParameterSet &)
 
void produce (edm::Event &, const edm::EventSetup &) override
 
 ~HLTHcalTowerNoiseCleanerWithrechit () override
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
bool hasAbilityToProduceInLumis () const final
 
bool hasAbilityToProduceInRuns () const final
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 

Private Types

typedef std::set< CommonHcalNoiseRBXData, noisedatacompnoisedataset_t
 

Private Attributes

edm::InputTag HcalNoiseRBXCollectionTag_
 
std::vector< double > hltMinRBXRechitR45Cuts_
 
edm::EDGetTokenT< CaloTowerCollectionm_theCaloTowerCollectionToken
 
edm::EDGetTokenT< reco::HcalNoiseRBXCollectionm_theHcalNoiseToken
 
double maxHighEHitTime_
 
int maxNumRBXs_
 
double maxRatio_
 
double maxRBXEMF_
 
double minHighEHitTime_
 
double minHighHitE_
 
int minHPDHits_
 
int minHPDNoOtherHits_
 
double minLowHitE_
 
double minR45HitE_
 
double minRatio_
 
double minRBXEnergy_
 
int minRBXHits_
 
double minRecHitE_
 
int minZeros_
 
bool needEMFCoincidence_
 
int numRBXsToConsider_
 
int severity_
 
edm::InputTag TowerCollectionTag_
 
double TS4TS5EnergyThreshold_
 
std::vector< std::pair< double, double > > TS4TS5LowerCut_
 
std::vector< std::pair< double, double > > TS4TS5UpperCut_
 

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
 

Detailed Description

Description: HLT filter module for cleaning HCal Noise from MET or MHT

Implementation: <Notes on="" implementation>="">

Definition at line 23 of file HLTHcalTowerNoiseCleanerWithrechit.h.

Member Typedef Documentation

Definition at line 68 of file HLTHcalTowerNoiseCleanerWithrechit.h.

Constructor & Destructor Documentation

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

Definition at line 53 of file HLTHcalTowerNoiseCleanerWithrechit.cc.

References edm::ParameterSet::existsAs(), edm::ParameterSet::getParameter(), HcalNoiseRBXCollectionTag_, hltMinRBXRechitR45Cuts_, mps_fire::i, createfilelist::int, m_theCaloTowerCollectionToken, m_theHcalNoiseToken, minR45HitE_, TowerCollectionTag_, TS4TS5LowerCut_, TS4TS5UpperCut_, and ~HLTHcalTowerNoiseCleanerWithrechit().

54  : HcalNoiseRBXCollectionTag_(iConfig.getParameter<edm::InputTag>("HcalNoiseRBXCollection")),
55  TowerCollectionTag_(iConfig.getParameter<edm::InputTag>("CaloTowerCollection")),
56  severity_(iConfig.getParameter<int> ("severity")),
57  maxNumRBXs_(iConfig.getParameter<int>("maxNumRBXs")),
58  numRBXsToConsider_(iConfig.getParameter<int>("numRBXsToConsider")),
59  needEMFCoincidence_(iConfig.getParameter<bool>("needEMFCoincidence")),
60  minRBXEnergy_(iConfig.getParameter<double>("minRBXEnergy")),
61  minRatio_(iConfig.getParameter<double>("minRatio")),
62  maxRatio_(iConfig.getParameter<double>("maxRatio")),
63  minHPDHits_(iConfig.getParameter<int>("minHPDHits")),
64  minRBXHits_(iConfig.getParameter<int>("minRBXHits")),
65  minHPDNoOtherHits_(iConfig.getParameter<int>("minHPDNoOtherHits")),
66  minZeros_(iConfig.getParameter<int>("minZeros")),
67  minHighEHitTime_(iConfig.getParameter<double>("minHighEHitTime")),
68  maxHighEHitTime_(iConfig.getParameter<double>("maxHighEHitTime")),
69  maxRBXEMF_(iConfig.getParameter<double>("maxRBXEMF")),
70  minRecHitE_(iConfig.getParameter<double>("minRecHitE")),
71  minLowHitE_(iConfig.getParameter<double>("minLowHitE")),
72  minHighHitE_(iConfig.getParameter<double>("minHighHitE")),
73  minR45HitE_(5.0),
74  TS4TS5EnergyThreshold_(iConfig.getParameter<double>("TS4TS5EnergyThreshold"))
75 {
76 
77  hltMinRBXRechitR45Cuts_ = iConfig.getParameter<std::vector<double> >("hltRBXRecHitR45Cuts");
78  std::vector<double> TS4TS5UpperThresholdTemp = iConfig.getParameter<std::vector<double> >("TS4TS5UpperThreshold");
79  std::vector<double> TS4TS5UpperCutTemp = iConfig.getParameter<std::vector<double> >("TS4TS5UpperCut");
80  std::vector<double> TS4TS5LowerThresholdTemp = iConfig.getParameter<std::vector<double> >("TS4TS5LowerThreshold");
81  std::vector<double> TS4TS5LowerCutTemp = iConfig.getParameter<std::vector<double> >("TS4TS5LowerCut");
82 
83  for(int i = 0; i < (int)TS4TS5UpperThresholdTemp.size() && i < (int)TS4TS5UpperCutTemp.size(); i++)
84  TS4TS5UpperCut_.push_back(std::pair<double, double>(TS4TS5UpperThresholdTemp[i], TS4TS5UpperCutTemp[i]));
85  sort(TS4TS5UpperCut_.begin(), TS4TS5UpperCut_.end());
86 
87  for(int i = 0; i < (int)TS4TS5LowerThresholdTemp.size() && i < (int)TS4TS5LowerCutTemp.size(); i++)
88  TS4TS5LowerCut_.push_back(std::pair<double, double>(TS4TS5LowerThresholdTemp[i], TS4TS5LowerCutTemp[i]));
89  sort(TS4TS5LowerCut_.begin(), TS4TS5LowerCut_.end());
90 
91  m_theHcalNoiseToken = consumes<reco::HcalNoiseRBXCollection>(HcalNoiseRBXCollectionTag_);
92  m_theCaloTowerCollectionToken = consumes<CaloTowerCollection>(TowerCollectionTag_);
93 
94  if(iConfig.existsAs<double>("minR45HitE"))
95  minR45HitE_ = iConfig.getParameter<double>("minR45HitE");
96 
97  produces<CaloTowerCollection>();
98 }
T getParameter(std::string const &) const
bool existsAs(std::string const &parameterName, bool trackiness=true) const
checks if a parameter exists as a given type
Definition: ParameterSet.h:161
edm::EDGetTokenT< CaloTowerCollection > m_theCaloTowerCollectionToken
std::vector< std::pair< double, double > > TS4TS5UpperCut_
edm::EDGetTokenT< reco::HcalNoiseRBXCollection > m_theHcalNoiseToken
std::vector< std::pair< double, double > > TS4TS5LowerCut_
HLTHcalTowerNoiseCleanerWithrechit::~HLTHcalTowerNoiseCleanerWithrechit ( )
overridedefault

Member Function Documentation

void HLTHcalTowerNoiseCleanerWithrechit::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 104 of file HLTHcalTowerNoiseCleanerWithrechit.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), HBHEPulseShapeFlagSetter_cfi::TS4TS5LowerCut, HBHEPulseShapeFlagSetter_cfi::TS4TS5LowerThreshold, HBHEPulseShapeFlagSetter_cfi::TS4TS5UpperCut, and HBHEPulseShapeFlagSetter_cfi::TS4TS5UpperThreshold.

104  {
106  desc.add<edm::InputTag>("HcalNoiseRBXCollection",edm::InputTag("hltHcalNoiseInfoProducer"));
107  desc.add<edm::InputTag>("CaloTowerCollection",edm::InputTag("hltTowerMakerForAll"));
108  desc.add<double>("maxTowerNoiseEnergyFraction",0.5);
109  desc.add<int>("severity",1);
110  desc.add<int>("maxNumRBXs",2);
111  desc.add<int>("numRBXsToConsider",2);
112  desc.add<bool>("needEMFCoincidence",true);
113  desc.add<double>("minRBXEnergy",50.0);
114  desc.add<double>("minRatio",-999.);
115  desc.add<double>("maxRatio",999.);
116  desc.add<int>("minHPDHits",17);
117  desc.add<int>("minRBXHits",999);
118  desc.add<int>("minHPDNoOtherHits",10);
119  desc.add<int>("minZeros",10);
120  desc.add<double>("minHighEHitTime",-9999.0);
121  desc.add<double>("maxHighEHitTime",9999.0);
122  desc.add<double>("maxRBXEMF",0.02);
123  desc.add<double>("minRecHitE",1.5);
124  desc.add<double>("minLowHitE",10.0);
125  desc.add<double>("minHighHitE",25.0);
126  desc.add<double>("minR45HitE",5.0);
127  desc.add<double>("TS4TS5EnergyThreshold",50.0);
128 
129  double TS4TS5UpperThresholdArray[5] = {70, 90, 100, 400, 4000 };
130  double TS4TS5UpperCutArray[5] = {1, 0.8, 0.75, 0.72, 0.72};
131  double TS4TS5LowerThresholdArray[7] = {100, 120, 150, 200, 300, 400, 500};
132  double TS4TS5LowerCutArray[7] = {-1, -0.7, -0.4, -0.2, -0.08, 0, 0.1};
133  double hltRBXRecHitR45CutsArray[8] = { 0.0, 1.0, 0.0, -1.0, 0.0, 0.0, 1.0, -1.0 };
134  std::vector<double> TS4TS5UpperThreshold(TS4TS5UpperThresholdArray, TS4TS5UpperThresholdArray+5);
135  std::vector<double> TS4TS5UpperCut(TS4TS5UpperCutArray, TS4TS5UpperCutArray+5);
136  std::vector<double> TS4TS5LowerThreshold(TS4TS5LowerThresholdArray, TS4TS5LowerThresholdArray+7);
137  std::vector<double> TS4TS5LowerCut(TS4TS5LowerCutArray, TS4TS5LowerCutArray+7);
138  std::vector<double> hltRBXRecHitR45Cuts(hltRBXRecHitR45CutsArray, hltRBXRecHitR45CutsArray+8);
139 
140  desc.add<std::vector<double> >("TS4TS5UpperThreshold", TS4TS5UpperThreshold);
141  desc.add<std::vector<double> >("TS4TS5UpperCut", TS4TS5UpperCut);
142  desc.add<std::vector<double> >("TS4TS5LowerThreshold", TS4TS5LowerThreshold);
143  desc.add<std::vector<double> >("TS4TS5LowerCut", TS4TS5LowerCut);
144  desc.add<std::vector<double> >("hltRBXRecHitR45Cuts", hltRBXRecHitR45Cuts);
145  descriptions.add("hltHcalTowerNoiseCleanerWithrechit",desc);
146 }
ParameterDescriptionBase * add(U const &iLabel, T const &value)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
void HLTHcalTowerNoiseCleanerWithrechit::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
override

Definition at line 152 of file HLTHcalTowerNoiseCleanerWithrechit.cc.

References edm::RefVector< C, T, F >::begin(), edm::SortedCollection< T, SORT >::begin(), edmIntegrityCheck::d, data, CaloTowerTopology::denseIndex(), edm::RefVector< C, T, F >::end(), edm::SortedCollection< T, SORT >::end(), edm::EventSetup::get(), edm::Event::getByToken(), HcalNoiseRBXCollectionTag_, hltMinRBXRechitR45Cuts_, mps_fire::i, CaloTower::id(), edm::Ref< C, T, F >::id(), createfilelist::int, edm::HandleBase::isValid(), LogDebug, m_theCaloTowerCollectionToken, m_theHcalNoiseToken, maxHighEHitTime_, maxRatio_, maxRBXEMF_, minHighEHitTime_, minHighHitE_, minHPDHits_, minHPDNoOtherHits_, minLowHitE_, minR45HitE_, minRatio_, minRBXEnergy_, minRBXHits_, minRecHitE_, minZeros_, eostools::move(), needEMFCoincidence_, edm::Event::put(), severity_, TS4TS5EnergyThreshold_, TS4TS5LowerCut_, and TS4TS5UpperCut_.

153 {
154  using namespace reco;
155 
156 
157  edm::ESHandle<CaloTowerTopology> caloTowerTopology;
158  iSetup.get<HcalRecNumberingRecord>().get(caloTowerTopology);
159 
160 
161  //get the calo MET / MHT
164 
165  std::set<unsigned int> noisyTowers;
166 
167  if(not tower_h.isValid()){ //No towers MET, don't do anything and accept the event
168  edm::LogError("HLTHcalTowerNoiseCleanerWithrechit") << "Input Tower Collection is not Valid";
169  return;
170  }
171 
172 
173  // get the RBXs produced by RecoMET/METProducers/HcalNoiseInfoProducer
175  iEvent.getByToken(m_theHcalNoiseToken,rbxs_h);
176  if(!rbxs_h.isValid()) {
177  edm::LogWarning("HLTHcalTowerNoiseCleanerWithrechit") << "Could not find HcalNoiseRBXCollection product named "
178  << HcalNoiseRBXCollectionTag_ << "." << std::endl;
179  severity_=0;
180  }
181 
182  // create a sorted set of the RBXs, ordered by energy
184  for(auto const & rbx : *rbxs_h) {
187  data.insert(d);
188  }
189 
190  // data is now sorted by RBX energy
191  // only consider top N=numRBXsToConsider_ energy RBXs
192  if(severity_>0){
193  for(auto const & it : data) {
194  // Check the Rechit-R45 filter
195  // Taken from http://cmslxr.fnal.gov/lxr/source/RecoMET/METAlgorithms/src/HcalNoiseAlgo.cc?v=CMSSW_7_4_6#0256
196  bool passRechitr45 = true;
197  int r45Count = it.r45Count();
198  double r45Fraction = it.r45Fraction();
199  double r45EnergyFraction = it.r45EnergyFraction();
200  for(int i = 0; i + 3 < (int)hltMinRBXRechitR45Cuts_.size(); i = i + 4) {
201  double Value = r45Count * hltMinRBXRechitR45Cuts_[i] + r45Fraction * hltMinRBXRechitR45Cuts_[i+1] + r45EnergyFraction * hltMinRBXRechitR45Cuts_[i+2] + hltMinRBXRechitR45Cuts_[i+3];
202  if (Value > 0) passRechitr45=false;
203  }
204 
205  bool passFilter=true;
206  bool passEMF=true;
207  if(it.energy()>minRBXEnergy_) {
208  if(it.validRatio() && it.ratio()<minRatio_) passFilter=false;
209  else if(it.validRatio() && it.ratio()>maxRatio_) passFilter=false;
210  else if(it.numHPDHits()>=minHPDHits_) passFilter=false;
211  else if(it.numRBXHits()>=minRBXHits_) passFilter=false;
212  else if(it.numHPDNoOtherHits()>=minHPDNoOtherHits_) passFilter=false;
213  else if(it.numZeros()>=minZeros_) passFilter=false;
214  else if(it.minHighEHitTime()<minHighEHitTime_) passFilter=false;
215  else if(it.maxHighEHitTime()>maxHighEHitTime_) passFilter=false;
216  else if (passRechitr45==false) passFilter=false;
217  if(it.RBXEMF()<maxRBXEMF_){
218  passEMF=false;
219  }
220  }
221 
222  if((needEMFCoincidence_ && !passEMF && !passFilter) ||
223  (!needEMFCoincidence_ && !passFilter)) { // check for noise
224  LogDebug("") << "HLTHcalTowerNoiseCleanerWithrechit debug: Found a noisy RBX: "
225  << "energy=" << it.energy() << "; "
226  << "ratio=" << it.ratio() << "; "
227  << "# RBX hits=" << it.numRBXHits() << "; "
228  << "# HPD hits=" << it.numHPDHits() << "; "
229  << "# Zeros=" << it.numZeros() << "; "
230  << "min time=" << it.minHighEHitTime() << "; "
231  << "max time=" << it.maxHighEHitTime() << "; "
232  << "RBX EMF=" << it.RBXEMF()
233  << std::endl;
234  // add calotowers associated with this RBX to the noise list
235  edm::RefVector<CaloTowerCollection> noiseTowers = it.rbxTowers();
237  //add these calotowers to the noisy list
238  for( noiseTowersIt = noiseTowers.begin(); noiseTowersIt != noiseTowers.end(); noiseTowersIt++){
239  edm::Ref<edm::SortedCollection<CaloTower> > tower_ref = *noiseTowersIt;
240  CaloTowerDetId id = tower_ref->id();
241  noisyTowers.insert( caloTowerTopology->denseIndex(id) );
242  }}
243  } // done with noise loop
244  }//if(severity_>0)
245 
246  //output collection
247  std::unique_ptr<CaloTowerCollection> OutputTowers(new CaloTowerCollection() );
248 
250 
251  for(inTowersIt = tower_h->begin(); inTowersIt != tower_h->end(); inTowersIt++){
252  const CaloTower & tower = (*inTowersIt);
253  CaloTowerDetId id = tower.id();
254 
255  if(noisyTowers.find( caloTowerTopology->denseIndex(id) ) == noisyTowers.end()){ // the tower is not noisy
256  OutputTowers->push_back(*inTowersIt);
257  }
258  }
259  iEvent.put(std::move(OutputTowers));
260 
261 }
#define LogDebug(id)
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:125
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
edm::EDGetTokenT< CaloTowerCollection > m_theCaloTowerCollectionToken
std::vector< CaloTower >::const_iterator const_iterator
std::vector< std::pair< double, double > > TS4TS5UpperCut_
const_iterator end() const
Termination of iteration.
Definition: RefVector.h:253
ProductID id() const
Accessor for product ID.
Definition: Ref.h:257
const_iterator begin() const
Initialize an iterator over the RefVector.
Definition: RefVector.h:248
std::set< CommonHcalNoiseRBXData, noisedatacomp > noisedataset_t
reco::JetExtendedAssociation::JetExtendedData Value
edm::SortedCollection< CaloTower > CaloTowerCollection
Definition: CaloTowerDefs.h:16
bool isValid() const
Definition: HandleBase.h:74
const_iterator end() const
uint32_t denseIndex(const DetId &id) const
CaloTowerDetId id() const
Definition: CaloTower.h:103
fixed size matrix
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
T get() const
Definition: EventSetup.h:71
edm::EDGetTokenT< reco::HcalNoiseRBXCollection > m_theHcalNoiseToken
std::vector< std::pair< double, double > > TS4TS5LowerCut_
def move(src, dest)
Definition: eostools.py:511
const_iterator begin() const

Member Data Documentation

edm::InputTag HLTHcalTowerNoiseCleanerWithrechit::HcalNoiseRBXCollectionTag_
private
std::vector<double> HLTHcalTowerNoiseCleanerWithrechit::hltMinRBXRechitR45Cuts_
private
edm::EDGetTokenT<CaloTowerCollection> HLTHcalTowerNoiseCleanerWithrechit::m_theCaloTowerCollectionToken
private
edm::EDGetTokenT<reco::HcalNoiseRBXCollection> HLTHcalTowerNoiseCleanerWithrechit::m_theHcalNoiseToken
private
double HLTHcalTowerNoiseCleanerWithrechit::maxHighEHitTime_
private

Definition at line 49 of file HLTHcalTowerNoiseCleanerWithrechit.h.

Referenced by produce().

int HLTHcalTowerNoiseCleanerWithrechit::maxNumRBXs_
private

Definition at line 38 of file HLTHcalTowerNoiseCleanerWithrechit.h.

double HLTHcalTowerNoiseCleanerWithrechit::maxRatio_
private

Definition at line 43 of file HLTHcalTowerNoiseCleanerWithrechit.h.

Referenced by produce().

double HLTHcalTowerNoiseCleanerWithrechit::maxRBXEMF_
private

Definition at line 50 of file HLTHcalTowerNoiseCleanerWithrechit.h.

Referenced by produce().

double HLTHcalTowerNoiseCleanerWithrechit::minHighEHitTime_
private

Definition at line 48 of file HLTHcalTowerNoiseCleanerWithrechit.h.

Referenced by produce().

double HLTHcalTowerNoiseCleanerWithrechit::minHighHitE_
private

Definition at line 53 of file HLTHcalTowerNoiseCleanerWithrechit.h.

Referenced by produce().

int HLTHcalTowerNoiseCleanerWithrechit::minHPDHits_
private

Definition at line 44 of file HLTHcalTowerNoiseCleanerWithrechit.h.

Referenced by produce().

int HLTHcalTowerNoiseCleanerWithrechit::minHPDNoOtherHits_
private

Definition at line 46 of file HLTHcalTowerNoiseCleanerWithrechit.h.

Referenced by produce().

double HLTHcalTowerNoiseCleanerWithrechit::minLowHitE_
private

Definition at line 53 of file HLTHcalTowerNoiseCleanerWithrechit.h.

Referenced by produce().

double HLTHcalTowerNoiseCleanerWithrechit::minR45HitE_
private
double HLTHcalTowerNoiseCleanerWithrechit::minRatio_
private

Definition at line 42 of file HLTHcalTowerNoiseCleanerWithrechit.h.

Referenced by produce().

double HLTHcalTowerNoiseCleanerWithrechit::minRBXEnergy_
private

Definition at line 41 of file HLTHcalTowerNoiseCleanerWithrechit.h.

Referenced by produce().

int HLTHcalTowerNoiseCleanerWithrechit::minRBXHits_
private

Definition at line 45 of file HLTHcalTowerNoiseCleanerWithrechit.h.

Referenced by produce().

double HLTHcalTowerNoiseCleanerWithrechit::minRecHitE_
private

Definition at line 53 of file HLTHcalTowerNoiseCleanerWithrechit.h.

Referenced by produce().

int HLTHcalTowerNoiseCleanerWithrechit::minZeros_
private

Definition at line 47 of file HLTHcalTowerNoiseCleanerWithrechit.h.

Referenced by produce().

bool HLTHcalTowerNoiseCleanerWithrechit::needEMFCoincidence_
private

Definition at line 40 of file HLTHcalTowerNoiseCleanerWithrechit.h.

Referenced by produce().

int HLTHcalTowerNoiseCleanerWithrechit::numRBXsToConsider_
private

Definition at line 39 of file HLTHcalTowerNoiseCleanerWithrechit.h.

int HLTHcalTowerNoiseCleanerWithrechit::severity_
private

Definition at line 37 of file HLTHcalTowerNoiseCleanerWithrechit.h.

Referenced by produce().

edm::InputTag HLTHcalTowerNoiseCleanerWithrechit::TowerCollectionTag_
private
double HLTHcalTowerNoiseCleanerWithrechit::TS4TS5EnergyThreshold_
private

Definition at line 55 of file HLTHcalTowerNoiseCleanerWithrechit.h.

Referenced by produce().

std::vector<std::pair<double, double> > HLTHcalTowerNoiseCleanerWithrechit::TS4TS5LowerCut_
private
std::vector<std::pair<double, double> > HLTHcalTowerNoiseCleanerWithrechit::TS4TS5UpperCut_
private