CMS 3D CMS Logo

CaloTowersCreator.cc
Go to the documentation of this file.
1 
6 // Now we allow for the creation of towers from
7 // rejected hists as well: requested by the MET group
8 // for studies of the effect of noise clean up.
10 #include "EScales.h"
11 
29 
31 public:
32  explicit CaloTowersCreator(const edm::ParameterSet& ps);
33  ~CaloTowersCreator() override {}
34  void produce(edm::Event& e, const edm::EventSetup& c) override;
35  void beginRun(edm::Run const&, edm::EventSetup const&) override;
36  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
39 
40 private:
41  static const std::vector<double>& getGridValues();
42 
47  std::vector<edm::InputTag> ecalLabels_;
48  std::vector<edm::EDGetTokenT<EcalRecHitCollection> > toks_ecal_;
50 
59 
60  // more compact flags: all HCAL are combined
61 
64 
65  // flag to use recovered hits
68 
69  // paramaters for creating towers from rejected hits
70 
73  // for ECAL we have a list of problem flags
75 
76  // Flags wheteher to use recovered hits for production of
77  // "bad towers".
78  // If the recoverd hits were already used for good towers,
79  // these flags have no effect.
80  // Note: These flags have no effect on the default tower reconstruction.
83 
89 
91  bool cutsFromDB;
92  HcalPFCuts const* paramPF = nullptr;
93 };
94 
97 
99  : algo_(conf.getParameter<double>("EBThreshold"),
100  conf.getParameter<double>("EEThreshold"),
101 
102  conf.getParameter<bool>("UseEtEBTreshold"),
103  conf.getParameter<bool>("UseEtEETreshold"),
104  conf.getParameter<bool>("UseSymEBTreshold"),
105  conf.getParameter<bool>("UseSymEETreshold"),
106 
107  conf.getParameter<double>("HcalThreshold"),
108  conf.getParameter<double>("HBThreshold"),
109  conf.getParameter<double>("HBThreshold1"),
110  conf.getParameter<double>("HBThreshold2"),
111  conf.getParameter<double>("HESThreshold"),
112  conf.getParameter<double>("HESThreshold1"),
113  conf.getParameter<double>("HEDThreshold"),
114  conf.getParameter<double>("HEDThreshold1"),
115  conf.getParameter<double>("HOThreshold0"),
116  conf.getParameter<double>("HOThresholdPlus1"),
117  conf.getParameter<double>("HOThresholdMinus1"),
118  conf.getParameter<double>("HOThresholdPlus2"),
119  conf.getParameter<double>("HOThresholdMinus2"),
120  conf.getParameter<double>("HF1Threshold"),
121  conf.getParameter<double>("HF2Threshold"),
122  conf.getParameter<std::vector<double> >("EBGrid"),
123  conf.getParameter<std::vector<double> >("EBWeights"),
124  conf.getParameter<std::vector<double> >("EEGrid"),
125  conf.getParameter<std::vector<double> >("EEWeights"),
126  conf.getParameter<std::vector<double> >("HBGrid"),
127  conf.getParameter<std::vector<double> >("HBWeights"),
128  conf.getParameter<std::vector<double> >("HESGrid"),
129  conf.getParameter<std::vector<double> >("HESWeights"),
130  conf.getParameter<std::vector<double> >("HEDGrid"),
131  conf.getParameter<std::vector<double> >("HEDWeights"),
132  conf.getParameter<std::vector<double> >("HOGrid"),
133  conf.getParameter<std::vector<double> >("HOWeights"),
134  conf.getParameter<std::vector<double> >("HF1Grid"),
135  conf.getParameter<std::vector<double> >("HF1Weights"),
136  conf.getParameter<std::vector<double> >("HF2Grid"),
137  conf.getParameter<std::vector<double> >("HF2Weights"),
138  conf.getParameter<double>("EBWeight"),
139  conf.getParameter<double>("EEWeight"),
140  conf.getParameter<double>("HBWeight"),
141  conf.getParameter<double>("HESWeight"),
142  conf.getParameter<double>("HEDWeight"),
143  conf.getParameter<double>("HOWeight"),
144  conf.getParameter<double>("HF1Weight"),
145  conf.getParameter<double>("HF2Weight"),
146  conf.getParameter<double>("EcutTower"),
147  conf.getParameter<double>("EBSumThreshold"),
148  conf.getParameter<double>("EESumThreshold"),
149  conf.getParameter<bool>("UseHO"),
150  // (for momentum reconstruction algorithm)
151  conf.getParameter<int>("MomConstrMethod"),
152  conf.getParameter<double>("MomHBDepth"),
153  conf.getParameter<double>("MomHEDepth"),
154  conf.getParameter<double>("MomEBDepth"),
155  conf.getParameter<double>("MomEEDepth"),
156  conf.getParameter<int>("HcalPhase")),
157 
158  ecalLabels_(conf.getParameter<std::vector<edm::InputTag> >("ecalInputs")),
159  allowMissingInputs_(conf.getParameter<bool>("AllowMissingInputs")),
160 
161  theHcalAcceptSeverityLevel_(conf.getParameter<unsigned int>("HcalAcceptSeverityLevel")),
162 
163  theRecoveredHcalHitsAreUsed_(conf.getParameter<bool>("UseHcalRecoveredHits")),
164  theRecoveredEcalHitsAreUsed_(conf.getParameter<bool>("UseEcalRecoveredHits")),
165 
166  // paramaters controlling the use of rejected hits
167 
168  useRejectedHitsOnly_(conf.getParameter<bool>("UseRejectedHitsOnly")),
169 
170  theHcalAcceptSeverityLevelForRejectedHit_(
171  conf.getParameter<unsigned int>("HcalAcceptSeverityLevelForRejectedHit")),
172 
173  useRejectedRecoveredHcalHits_(conf.getParameter<bool>("UseRejectedRecoveredHcalHits")),
174  useRejectedRecoveredEcalHits_(conf.getParameter<bool>("UseRejectedRecoveredEcalHits")),
175  cutsFromDB(conf.getParameter<bool>("usePFThresholdsFromDB"))
176 
177 {
178  algo_.setMissingHcalRescaleFactorForEcal(conf.getParameter<double>("missingHcalRescaleFactorForEcal"));
179 
180  // register for data access
181  tok_hbhe_ = consumes<HBHERecHitCollection>(conf.getParameter<edm::InputTag>("hbheInput"));
182  tok_ho_ = consumes<HORecHitCollection>(conf.getParameter<edm::InputTag>("hoInput"));
183  tok_hf_ = consumes<HFRecHitCollection>(conf.getParameter<edm::InputTag>("hfInput"));
184  tok_geom_ = esConsumes<CaloGeometry, CaloGeometryRecord>();
185  tok_topo_ = esConsumes<HcalTopology, HcalRecNumberingRecord>();
186  tok_cttopo_ = esConsumes<CaloTowerTopology, HcalRecNumberingRecord>();
187  tok_ctmap_ = esConsumes<CaloTowerConstituentsMap, CaloGeometryRecord>();
188  tok_ecalChStatus_ = esConsumes<EcalChannelStatus, EcalChannelStatusRcd>();
189  tok_hcalChStatus_ = esConsumes<HcalChannelQuality, HcalChannelQualityRcd>(edm::ESInputTag("", "withTopo"));
190  tok_hcalSevComputer_ = esConsumes<HcalSeverityLevelComputer, HcalSeverityLevelComputerRcd>();
191  tok_ecalSevAlgo_ = esConsumes<EcalSeverityLevelAlgo, EcalSeverityLevelAlgoRcd>();
192 
193  if (cutsFromDB) {
194  hcalCutsToken_ = esConsumes<HcalPFCuts, HcalPFCutsRcd, edm::Transition::BeginRun>(edm::ESInputTag("", "withTopo"));
195  }
196  const unsigned nLabels = ecalLabels_.size();
197  for (unsigned i = 0; i != nLabels; i++)
198  toks_ecal_.push_back(consumes<EcalRecHitCollection>(ecalLabels_[i]));
199 
208 
209  // get the Ecal severities to be excluded
210  const std::vector<std::string> severitynames =
211  conf.getParameter<std::vector<std::string> >("EcalRecHitSeveritiesToBeExcluded");
212 
213  theEcalSeveritiesToBeExcluded_ = StringToEnumValue<EcalSeverityLevel::SeverityLevel>(severitynames);
214 
215  // get the Ecal severities to be used for bad towers
216  theEcalSeveritiesToBeUsedInBadTowers_ = StringToEnumValue<EcalSeverityLevel::SeverityLevel>(
217  conf.getParameter<std::vector<std::string> >("EcalSeveritiesToBeUsedInBadTowers"));
218 
219  if (eScales_.instanceLabel.empty())
220  produces<CaloTowerCollection>();
221  else
222  produces<CaloTowerCollection>(eScales_.instanceLabel);
223 
224 #ifdef EDM_ML_DEBUG
225  std::cout << "VI Producer " << (useRejectedHitsOnly_ ? "use rejectOnly " : " ")
226  << (allowMissingInputs_ ? "allowMissing " : " ") << nLabels << ' ' << severitynames.size() << std::endl;
227 #endif
228 }
229 
231  if (cutsFromDB) {
233  }
235 }
236 
238  // get the necessary event setup objects...
239  edm::ESHandle<CaloGeometry> pG = c.getHandle(tok_geom_);
240  edm::ESHandle<HcalTopology> htopo = c.getHandle(tok_topo_);
241  edm::ESHandle<CaloTowerTopology> cttopo = c.getHandle(tok_cttopo_);
243 
244  // ECAL channel status map ****************************************
245  edm::ESHandle<EcalChannelStatus> ecalChStatus = c.getHandle(tok_ecalChStatus_);
246  const EcalChannelStatus* dbEcalChStatus = ecalChStatus.product();
247 
248  // HCAL channel status map ****************************************
249  edm::ESHandle<HcalChannelQuality> hcalChStatus = c.getHandle(tok_hcalChStatus_);
250 
251  const HcalChannelQuality* dbHcalChStatus = hcalChStatus.product();
252 
253  // Assignment of severity levels **********************************
254  edm::ESHandle<HcalSeverityLevelComputer> hcalSevLvlComputerHndl = c.getHandle(tok_hcalSevComputer_);
255  const HcalSeverityLevelComputer* hcalSevLvlComputer = hcalSevLvlComputerHndl.product();
256 
257  edm::ESHandle<EcalSeverityLevelAlgo> ecalSevLvlAlgoHndl = c.getHandle(tok_ecalSevAlgo_);
258  const EcalSeverityLevelAlgo* ecalSevLvlAlgo = ecalSevLvlAlgoHndl.product();
259 
268  algo_.setGeometry(cttopo.product(), ctmap.product(), htopo.product(), pG.product());
269 
270  // for treatment of problematic and anomalous cells
271 
272  algo_.setHcalChStatusFromDB(dbHcalChStatus);
273  algo_.setEcalChStatusFromDB(dbEcalChStatus);
274 
277 
280 
281  algo_.setHcalSevLvlComputer(hcalSevLvlComputer);
282  algo_.setEcalSevLvlAlgo(ecalSevLvlAlgo);
283 
285 
288 
291 
292 #ifdef EDM_ML_DEBUG
293  std::cout << "VI Produce: " << (useRejectedHitsOnly_ ? "use rejectOnly " : " ")
294  << (allowMissingInputs_ ? "allowMissing " : " ")
295  << (theRecoveredEcalHitsAreUsed_ ? "use RecoveredEcal " : " ") << toks_ecal_.size() << ' '
297  << std::endl;
298 #endif
299 
300  algo_.begin(); // clear the internal buffer
301 
302  // can't chain these in a big OR statement, or else it'll
303  // get triggered for each of the first three events
304  bool check1 = hcalSevLevelWatcher_.check(c);
305  bool check2 = hcalChStatusWatcher_.check(c);
306  bool check3 = caloTowerConstituentsWatcher_.check(c);
307  if (check1 || check2 || check3) {
309  }
310 
311  // check ecal SevLev
314 
315  // ----------------------------------------------------------
316  // For ecal error handling need to
317  // have access to the EB and EE collections at the end of
318  // tower reconstruction.
319 
322 
323  for (std::vector<edm::EDGetTokenT<EcalRecHitCollection> >::const_iterator i = toks_ecal_.begin();
324  i != toks_ecal_.end();
325  i++) {
327 
328  if (!e.getByToken(*i, ec_tmp))
329  continue;
330  if (ec_tmp->empty())
331  continue;
332 
333  // check if this is EB or EE
334  if ((ec_tmp->begin()->detid()).subdetId() == EcalBarrel) {
335  ebHandle = ec_tmp;
336  } else if ((ec_tmp->begin()->detid()).subdetId() == EcalEndcap) {
337  eeHandle = ec_tmp;
338  }
339  }
340 
341  algo_.setEbHandle(ebHandle);
342  algo_.setEeHandle(eeHandle);
343 
344  //-----------------------------------------------------------
345 
346  bool present;
347 
348  // Step A/C: Get Inputs and process (repeatedly)
350  present = e.getByToken(tok_hbhe_, hbhe);
351  if (present || !allowMissingInputs_)
352  algo_.process(*hbhe);
353 
355  present = e.getByToken(tok_ho_, ho);
356  if (present || !allowMissingInputs_)
357  algo_.process(*ho);
358 
360  present = e.getByToken(tok_hf_, hf);
361  if (present || !allowMissingInputs_)
362  algo_.process(*hf);
363 
364  std::vector<edm::EDGetTokenT<EcalRecHitCollection> >::const_iterator i;
365  for (i = toks_ecal_.begin(); i != toks_ecal_.end(); i++) {
367  present = e.getByToken(*i, ec);
368  if (present || !allowMissingInputs_)
369  algo_.process(*ec);
370  }
371 
372  // Step B: Create empty output
373  auto prod = std::make_unique<CaloTowerCollection>();
374 
375  // Step C: Process
376  algo_.finish(*prod);
377 
378 #ifdef EDM_ML_DEBUG
379  int totc = 0;
380  float totE = 0;
382  for (auto const& tw : (*prod)) {
383  totc += tw.constituents().size();
384  totE += tw.energy();
385  totP4 += tw.p4();
386  std::cout << "CaloTowerCreator: " << tw.id() << " with E " << tw.energy() << " and " << tw.constituents().size()
387  << " constituents\n";
388  }
389  std::cout << "VI " << (*prod).size() << " " << totc << " " << totE << " " << totP4 << std::endl;
390 #endif
391 
392  // Step D: Put into the event
393  if (eScales_.instanceLabel.empty())
394  e.put(std::move(prod));
395  else
397 }
398 
401  desc.add<double>("EBSumThreshold", 0.2);
402  desc.add<double>("HF2Weight", 1.0);
403  desc.add<double>("EBWeight", 1.0);
404  desc.add<double>("EESumThreshold", 0.45);
405  desc.add<double>("HOThreshold0", 1.1);
406  desc.add<double>("HOThresholdPlus1", 3.5);
407  desc.add<double>("HOThresholdMinus1", 3.5);
408  desc.add<double>("HOThresholdPlus2", 3.5);
409  desc.add<double>("HOThresholdMinus2", 3.5);
410  desc.add<double>("HBThreshold", 0.7);
411  desc.add<double>("HBThreshold1", 0.7);
412  desc.add<double>("HBThreshold2", 0.7);
413  desc.add<double>("HF1Threshold", 0.5);
414  desc.add<double>("HEDWeight", 1.0);
415  desc.add<double>("EEWeight", 1.0);
416  desc.add<double>("HESWeight", 1.0);
417  desc.add<double>("HF1Weight", 1.0);
418  desc.add<double>("HOWeight", 1.0);
419  desc.add<double>("EBThreshold", 0.07);
420  desc.add<double>("EEThreshold", 0.3);
421  desc.add<double>("HcalThreshold", -1000.0);
422  desc.add<double>("HF2Threshold", 0.85);
423  desc.add<double>("HESThreshold", 0.8);
424  desc.add<double>("HESThreshold1", 0.8);
425  desc.add<double>("HEDThreshold", 0.8);
426  desc.add<double>("HEDThreshold1", 0.8);
427  desc.add<double>("EcutTower", -1000.0);
428  desc.add<double>("HBWeight", 1.0);
429  desc.add<double>("MomHBDepth", 0.2);
430  desc.add<double>("MomHEDepth", 0.4);
431  desc.add<double>("MomEBDepth", 0.3);
432  desc.add<double>("MomEEDepth", 0.0);
433  desc.add<bool>("UseHO", true);
434  desc.add<bool>("UseEtEBTreshold", false);
435  desc.add<bool>("UseSymEBTreshold", true);
436  desc.add<bool>("UseEtEETreshold", false);
437  desc.add<bool>("UseSymEETreshold", true);
438  desc.add<bool>("UseHcalRecoveredHits", true);
439  desc.add<bool>("UseEcalRecoveredHits", false);
440  desc.add<bool>("UseRejectedHitsOnly", false);
441  desc.add<bool>("UseRejectedRecoveredHcalHits", true);
442  desc.add<bool>("UseRejectedRecoveredEcalHits", false);
443  desc.add<double>("missingHcalRescaleFactorForEcal", 0.0);
444  desc.add<bool>("AllowMissingInputs", false);
445  desc.add<std::vector<double> >("HBGrid", {-1.0, 1.0, 10.0, 100.0, 1000.0});
446  desc.add<std::vector<double> >("EEWeights", {1.0, 1.0, 1.0, 1.0, 1.0});
447  desc.add<std::vector<double> >("HF2Weights", {1.0, 1.0, 1.0, 1.0, 1.0});
448  desc.add<std::vector<double> >("HOWeights", {1.0, 1.0, 1.0, 1.0, 1.0});
449  desc.add<std::vector<double> >("EEGrid", {-1.0, 1.0, 10.0, 100.0, 1000.0});
450  desc.add<std::vector<double> >("HBWeights", {1.0, 1.0, 1.0, 1.0, 1.0});
451  desc.add<std::vector<double> >("HF2Grid", {-1.0, 1.0, 10.0, 100.0, 1000.0});
452  desc.add<std::vector<double> >("HEDWeights", {1.0, 1.0, 1.0, 1.0, 1.0});
453  desc.add<std::vector<double> >("HF1Grid", {-1.0, 1.0, 10.0, 100.0, 1000.0});
454  desc.add<std::vector<double> >("EBWeights", {1.0, 1.0, 1.0, 1.0, 1.0});
455  desc.add<std::vector<double> >("HF1Weights", {1.0, 1.0, 1.0, 1.0, 1.0});
456  desc.add<std::vector<double> >("HESGrid", {-1.0, 1.0, 10.0, 100.0, 1000.0});
457  desc.add<std::vector<double> >("HESWeights", {1.0, 1.0, 1.0, 1.0, 1.0});
458  desc.add<std::vector<double> >("HEDGrid", {-1.0, 1.0, 10.0, 100.0, 1000.0});
459  desc.add<std::vector<double> >("HOGrid", {-1.0, 1.0, 10.0, 100.0, 1000.0});
460  desc.add<std::vector<double> >("EBGrid", {-1.0, 1.0, 10.0, 100.0, 1000.0});
461  desc.add<edm::InputTag>("hfInput", edm::InputTag("hfreco"));
462  desc.add<edm::InputTag>("hbheInput", edm::InputTag("hbhereco"));
463  desc.add<edm::InputTag>("hoInput", edm::InputTag("horeco"));
464  desc.add<std::vector<edm::InputTag> >(
465  "ecalInputs", {edm::InputTag("ecalRecHit", "EcalRecHitsEB"), edm::InputTag("ecalRecHit", "EcalRecHitsEE")});
466  desc.add<int>("MomConstrMethod", 1);
467  desc.add<unsigned int>("HcalAcceptSeverityLevel", 9);
468  desc.add<std::vector<std::string> >("EcalRecHitSeveritiesToBeExcluded", {"kTime", "kWeird", "kBad"});
469  desc.add<unsigned int>("HcalAcceptSeverityLevelForRejectedHit", 9999);
470  desc.add<std::vector<std::string> >("EcalSeveritiesToBeUsedInBadTowers", {});
471  desc.add<int>("HcalPhase", 0);
472  desc.add<bool>("usePFThresholdsFromDB", true);
473 
474  descriptions.addDefault(desc);
475 }
CaloTowersCreator(const edm::ParameterSet &ps)
double HF2Scale
Definition: EScales.h:20
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
void beginRun(edm::Run const &, edm::EventSetup const &) override
void setEcalChStatusFromDB(const EcalChannelStatus *s)
CaloTowersCreationAlgo algo_
double EEScale
Definition: EScales.h:14
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
Definition: EventSetup.h:119
edm::ESGetToken< HcalChannelQuality, HcalChannelQualityRcd > tok_hcalChStatus_
edm::ESGetToken< HcalTopology, HcalRecNumberingRecord > tok_topo_
void produce(edm::Event &e, const edm::EventSetup &c) override
edm::ESGetToken< EcalSeverityLevelAlgo, EcalSeverityLevelAlgoRcd > tok_ecalSevAlgo_
void setHcalChStatusFromDB(const HcalChannelQuality *s)
edm::ESGetToken< CaloTowerConstituentsMap, CaloGeometryRecord > tok_ctmap_
void finish(CaloTowerCollection &destCollection)
void setEeHandle(const edm::Handle< EcalRecHitCollection > ee)
void setThresFromDB(const HcalPFCuts *cuts)
double HOScale
Definition: EScales.h:18
std::vector< int > theEcalSeveritiesToBeExcluded_
~CaloTowersCreator() override
edm::ESGetToken< HcalPFCuts, HcalPFCutsRcd > hcalCutsToken_
static const std::vector< double > & getGridValues()
double HF1Scale
Definition: EScales.h:19
edm::EDGetTokenT< HORecHitCollection > tok_ho_
void setGeometry(const CaloTowerTopology *cttopo, const CaloTowerConstituentsMap *ctmap, const HcalTopology *htopo, const CaloGeometry *geo)
double HEDScale
Definition: EScales.h:17
void setEbHandle(const edm::Handle< EcalRecHitCollection > eb)
void setUseRejectedRecoveredEcalHits(bool flag)
T const * product() const
Definition: ESHandle.h:86
edm::ESGetToken< EcalChannelStatus, EcalChannelStatusRcd > tok_ecalChStatus_
void addDefault(ParameterSetDescription const &psetDescription)
void setEcalSeveritiesToBeExcluded(const std::vector< int > &ecalSev)
void setHcalAcceptSeverityLevelForRejectedHit(unsigned int level)
void setHcalSevLvlComputer(const HcalSeverityLevelComputer *c)
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
std::vector< edm::EDGetTokenT< EcalRecHitCollection > > toks_ecal_
edm::EDGetTokenT< HBHERecHitCollection > tok_hbhe_
void SetEcalSeveritiesToBeUsedInBadTowers(const std::vector< int > &ecalSev)
const_iterator begin() const
void setRecoveredEcalHitsAreUsed(bool flag)
double EBScale
Definition: EScales.h:13
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > tok_geom_
double HBScale
Definition: EScales.h:15
edm::ESWatcher< HcalChannelQualityRcd > hcalChStatusWatcher_
void process(const HBHERecHitCollection &hbhe)
edm::ESGetToken< HcalSeverityLevelComputer, HcalSeverityLevelComputerRcd > tok_hcalSevComputer_
std::string instanceLabel
Definition: EScales.h:21
unsigned int theHcalAcceptSeverityLevelForRejectedHit_
void setRecoveredHcalHitsAreUsed(bool flag)
void setUseRejectedHitsOnly(bool flag)
bool check(const edm::EventSetup &iSetup)
Definition: ESWatcher.h:57
void setMissingHcalRescaleFactorForEcal(float factor)
unsigned int theHcalAcceptSeverityLevel_
HLT enums.
edm::ESGetToken< CaloTowerTopology, HcalRecNumberingRecord > tok_cttopo_
HcalPFCuts const * paramPF
void setHcalAcceptSeverityLevel(unsigned int level)
std::vector< edm::InputTag > ecalLabels_
double HESScale
Definition: EScales.h:16
edm::ESWatcher< HcalSeverityLevelComputerRcd > hcalSevLevelWatcher_
void setEcalSevLvlAlgo(const EcalSeverityLevelAlgo *a)
void setUseRejectedRecoveredHcalHits(bool flag)
edm::ESWatcher< IdealGeometryRecord > caloTowerConstituentsWatcher_
Definition: EScales.h:6
std::vector< int > theEcalSeveritiesToBeUsedInBadTowers_
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: LeafCandidate.h:23
def move(src, dest)
Definition: eostools.py:511
edm::EDGetTokenT< HFRecHitCollection > tok_hf_
Definition: Run.h:45
edm::ESWatcher< EcalSeverityLevelAlgoRcd > ecalSevLevelWatcher_