14 algo_(conf.getParameter<double>(
"EBThreshold"),
15 conf.getParameter<double>(
"EEThreshold"),
17 conf.getParameter<
bool>(
"UseEtEBTreshold"),
18 conf.getParameter<
bool>(
"UseEtEETreshold"),
19 conf.getParameter<
bool>(
"UseSymEBTreshold"),
20 conf.getParameter<
bool>(
"UseSymEETreshold"),
23 conf.getParameter<double>(
"HcalThreshold"),
24 conf.getParameter<double>(
"HBThreshold"),
25 conf.getParameter<double>(
"HBThreshold1"),
26 conf.getParameter<double>(
"HBThreshold2"),
27 conf.getParameter<double>(
"HESThreshold"),
28 conf.getParameter<double>(
"HESThreshold1"),
29 conf.getParameter<double>(
"HEDThreshold"),
30 conf.getParameter<double>(
"HEDThreshold1"),
31 conf.getParameter<double>(
"HOThreshold0"),
32 conf.getParameter<double>(
"HOThresholdPlus1"),
33 conf.getParameter<double>(
"HOThresholdMinus1"),
34 conf.getParameter<double>(
"HOThresholdPlus2"),
35 conf.getParameter<double>(
"HOThresholdMinus2"),
36 conf.getParameter<double>(
"HF1Threshold"),
37 conf.getParameter<double>(
"HF2Threshold"),
38 conf.getParameter<
std::vector<double> >(
"EBGrid"),
39 conf.getParameter<
std::vector<double> >(
"EBWeights"),
40 conf.getParameter<
std::vector<double> >(
"EEGrid"),
41 conf.getParameter<
std::vector<double> >(
"EEWeights"),
42 conf.getParameter<
std::vector<double> >(
"HBGrid"),
43 conf.getParameter<
std::vector<double> >(
"HBWeights"),
44 conf.getParameter<
std::vector<double> >(
"HESGrid"),
45 conf.getParameter<
std::vector<double> >(
"HESWeights"),
46 conf.getParameter<
std::vector<double> >(
"HEDGrid"),
47 conf.getParameter<
std::vector<double> >(
"HEDWeights"),
48 conf.getParameter<
std::vector<double> >(
"HOGrid"),
49 conf.getParameter<
std::vector<double> >(
"HOWeights"),
50 conf.getParameter<
std::vector<double> >(
"HF1Grid"),
51 conf.getParameter<
std::vector<double> >(
"HF1Weights"),
52 conf.getParameter<
std::vector<double> >(
"HF2Grid"),
53 conf.getParameter<
std::vector<double> >(
"HF2Weights"),
54 conf.getParameter<double>(
"EBWeight"),
55 conf.getParameter<double>(
"EEWeight"),
56 conf.getParameter<double>(
"HBWeight"),
57 conf.getParameter<double>(
"HESWeight"),
58 conf.getParameter<double>(
"HEDWeight"),
59 conf.getParameter<double>(
"HOWeight"),
60 conf.getParameter<double>(
"HF1Weight"),
61 conf.getParameter<double>(
"HF2Weight"),
62 conf.getParameter<double>(
"EcutTower"),
63 conf.getParameter<double>(
"EBSumThreshold"),
64 conf.getParameter<double>(
"EESumThreshold"),
65 conf.getParameter<
bool>(
"UseHO"),
67 conf.getParameter<
int>(
"MomConstrMethod"),
68 conf.getParameter<double>(
"MomHBDepth"),
69 conf.getParameter<double>(
"MomHEDepth"),
70 conf.getParameter<double>(
"MomEBDepth"),
71 conf.getParameter<double>(
"MomEEDepth"),
72 conf.getParameter<
int>(
"HcalPhase")
75 ecalLabels_(conf.getParameter<
std::vector<
edm::InputTag> >(
"ecalInputs")),
76 allowMissingInputs_(conf.getParameter<
bool>(
"AllowMissingInputs")),
78 theHcalAcceptSeverityLevel_(conf.getParameter<unsigned
int>(
"HcalAcceptSeverityLevel")),
80 theRecoveredHcalHitsAreUsed_(conf.getParameter<
bool>(
"UseHcalRecoveredHits")),
81 theRecoveredEcalHitsAreUsed_(conf.getParameter<
bool>(
"UseEcalRecoveredHits")),
85 useRejectedHitsOnly_(conf.getParameter<
bool>(
"UseRejectedHitsOnly")),
87 theHcalAcceptSeverityLevelForRejectedHit_(conf.getParameter<unsigned
int>(
"HcalAcceptSeverityLevelForRejectedHit")),
90 useRejectedRecoveredHcalHits_(conf.getParameter<
bool>(
"UseRejectedRecoveredHcalHits")),
91 useRejectedRecoveredEcalHits_(conf.getParameter<
bool>(
"UseRejectedRecoveredEcalHits"))
104 for (
unsigned i=0;
i != nLabels;
i++ )
118 const std::vector<std::string> severitynames =
119 conf.
getParameter<std::vector<std::string> >(
"EcalRecHitSeveritiesToBeExcluded");
125 StringToEnumValue<EcalSeverityLevel::SeverityLevel>(conf.
getParameter<std::vector<std::string> >(
"EcalSeveritiesToBeUsedInBadTowers") );
134 << nLabels <<
' ' << severitynames.size()
222 if(check1 || check2 || check3)
244 if (ec_tmp->
empty())
continue;
275 std::vector<edm::EDGetTokenT<EcalRecHitCollection> >::const_iterator
i;
283 auto prod = std::make_unique<CaloTowerCollection>();
289 int totc=0;
float totE=0;
291 for (
auto const & tw : (*
prod) ) {
292 totc += tw.constituents().size();
295 std::cout <<
"CaloTowerCreator: " << tw.id() <<
" with E " << tw.energy()
296 <<
" and " << tw.constituents().size() <<
" constituents\n";
298 std::cout <<
"VI " << (*prod).size() <<
" " << totc <<
" " << totE <<
" " << totP4 << std::endl;
310 desc.
add<
double>(
"EBSumThreshold", 0.2);
311 desc.
add<
double>(
"HF2Weight", 1.0);
312 desc.
add<
double>(
"EBWeight", 1.0);
313 desc.
add<
double>(
"EESumThreshold", 0.45);
314 desc.
add<
double>(
"HOThreshold0", 1.1);
315 desc.
add<
double>(
"HOThresholdPlus1", 3.5);
316 desc.
add<
double>(
"HOThresholdMinus1", 3.5);
317 desc.
add<
double>(
"HOThresholdPlus2", 3.5);
318 desc.
add<
double>(
"HOThresholdMinus2", 3.5);
319 desc.
add<
double>(
"HBThreshold", 0.7);
320 desc.
add<
double>(
"HBThreshold1", 0.7);
321 desc.
add<
double>(
"HBThreshold2", 0.7);
322 desc.
add<
double>(
"HF1Threshold", 0.5);
323 desc.
add<
double>(
"HEDWeight", 1.0);
324 desc.
add<
double>(
"EEWeight", 1.0);
325 desc.
add<
double>(
"HESWeight", 1.0);
326 desc.
add<
double>(
"HF1Weight", 1.0);
327 desc.
add<
double>(
"HOWeight", 1.0);
328 desc.
add<
double>(
"EBThreshold", 0.07);
329 desc.
add<
double>(
"EEThreshold", 0.3);
330 desc.
add<
double>(
"HcalThreshold", -1000.0);
331 desc.
add<
double>(
"HF2Threshold", 0.85);
332 desc.
add<
double>(
"HESThreshold", 0.8);
333 desc.
add<
double>(
"HESThreshold1", 0.8);
334 desc.
add<
double>(
"HEDThreshold", 0.8);
335 desc.
add<
double>(
"HEDThreshold1", 0.8);
336 desc.
add<
double>(
"EcutTower", -1000.0);
337 desc.
add<
double>(
"HBWeight", 1.0);
338 desc.
add<
double>(
"MomHBDepth", 0.2);
339 desc.
add<
double>(
"MomHEDepth", 0.4);
340 desc.
add<
double>(
"MomEBDepth", 0.3);
341 desc.
add<
double>(
"MomEEDepth", 0.0);
342 desc.
add<
bool>(
"UseHO",
true);
343 desc.
add<
bool>(
"UseEtEBTreshold",
false);
344 desc.
add<
bool>(
"UseSymEBTreshold",
true);
345 desc.
add<
bool>(
"UseEtEETreshold",
false);
346 desc.
add<
bool>(
"UseSymEETreshold",
true);
347 desc.
add<
bool>(
"UseHcalRecoveredHits",
true);
348 desc.
add<
bool>(
"UseEcalRecoveredHits",
false);
349 desc.
add<
bool>(
"UseRejectedHitsOnly",
false);
350 desc.
add<
bool>(
"UseRejectedRecoveredHcalHits",
true);
351 desc.
add<
bool>(
"UseRejectedRecoveredEcalHits",
false);
352 desc.
add<
double>(
"missingHcalRescaleFactorForEcal", 0.0);
353 desc.
add<
bool>(
"AllowMissingInputs",
false);
354 desc.
add<std::vector<double> >(
"HBGrid", {-1.0, 1.0, 10.0, 100.0, 1000.0});
355 desc.
add<std::vector<double> >(
"EEWeights", {1.0, 1.0, 1.0, 1.0, 1.0});
356 desc.
add<std::vector<double> >(
"HF2Weights", {1.0, 1.0, 1.0, 1.0, 1.0});
357 desc.
add<std::vector<double> >(
"HOWeights", {1.0, 1.0, 1.0, 1.0, 1.0});
358 desc.
add<std::vector<double> >(
"EEGrid", {-1.0, 1.0, 10.0, 100.0, 1000.0});
359 desc.
add<std::vector<double> >(
"HBWeights", {1.0, 1.0, 1.0, 1.0, 1.0});
360 desc.
add<std::vector<double> >(
"HF2Grid", {-1.0, 1.0, 10.0, 100.0, 1000.0});
361 desc.
add<std::vector<double> >(
"HEDWeights", {1.0, 1.0, 1.0, 1.0, 1.0});
362 desc.
add<std::vector<double> >(
"HF1Grid", {-1.0, 1.0, 10.0, 100.0, 1000.0});
363 desc.
add<std::vector<double> >(
"EBWeights", {1.0, 1.0, 1.0, 1.0, 1.0});
364 desc.
add<std::vector<double> >(
"HF1Weights", {1.0, 1.0, 1.0, 1.0, 1.0});
365 desc.
add<std::vector<double> >(
"HESGrid", {-1.0, 1.0, 10.0, 100.0, 1000.0});
366 desc.
add<std::vector<double> >(
"HESWeights", {1.0, 1.0, 1.0, 1.0, 1.0});
367 desc.
add<std::vector<double> >(
"HEDGrid", {-1.0, 1.0, 10.0, 100.0, 1000.0});
368 desc.
add<std::vector<double> >(
"HOGrid", {-1.0, 1.0, 10.0, 100.0, 1000.0});
369 desc.
add<std::vector<double> >(
"EBGrid", {-1.0, 1.0, 10.0, 100.0, 1000.0});
373 desc.
add<std::vector<edm::InputTag> >(
"ecalInputs", {
edm::InputTag(
"ecalRecHit",
"EcalRecHitsEB"),
edm::InputTag(
"ecalRecHit",
"EcalRecHitsEE")});
374 desc.
add<
int>(
"MomConstrMethod", 1);
375 desc.
add<
unsigned int>(
"HcalAcceptSeverityLevel", 9);
376 desc.
add<std::vector<std::string> >(
"EcalRecHitSeveritiesToBeExcluded", {
"kTime",
"kWeird",
"kBad"});
377 desc.
add<
unsigned int>(
"HcalAcceptSeverityLevelForRejectedHit", 9999);
378 desc.
add<std::vector<std::string> >(
"EcalSeveritiesToBeUsedInBadTowers", {});
379 desc.
add<
int>(
"HcalPhase", 0);
CaloTowersCreator(const edm::ParameterSet &ps)
T getParameter(std::string const &) const
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
void setEcalChStatusFromDB(const EcalChannelStatus *s)
CaloTowersCreationAlgo algo_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
void setHF1EScale(double scale)
void produce(edm::Event &e, const edm::EventSetup &c) override
bool theRecoveredHcalHitsAreUsed_
void setHcalChStatusFromDB(const HcalChannelQuality *s)
void setHF2EScale(double scale)
void finish(CaloTowerCollection &destCollection)
void setEeHandle(const edm::Handle< EcalRecHitCollection > ee)
std::vector< int > theEcalSeveritiesToBeExcluded_
void setHBEScale(double scale)
bool useRejectedHitsOnly_
edm::EDGetTokenT< HORecHitCollection > tok_ho_
void setGeometry(const CaloTowerTopology *cttopo, const CaloTowerConstituentsMap *ctmap, const HcalTopology *htopo, const CaloGeometry *geo)
void setEbHandle(const edm::Handle< EcalRecHitCollection > eb)
void setUseRejectedRecoveredEcalHits(bool flag)
void addDefault(ParameterSetDescription const &psetDescription)
void setEcalSeveritiesToBeExcluded(const std::vector< int > &ecalSev)
void setHcalAcceptSeverityLevelForRejectedHit(unsigned int level)
void setHcalSevLvlComputer(const HcalSeverityLevelComputer *c)
std::vector< edm::EDGetTokenT< EcalRecHitCollection > > toks_ecal_
edm::EDGetTokenT< HBHERecHitCollection > tok_hbhe_
void SetEcalSeveritiesToBeUsedInBadTowers(const std::vector< int > &ecalSev)
void setRecoveredEcalHitsAreUsed(bool flag)
ParameterDescriptionBase * add(U const &iLabel, T const &value)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
edm::ESWatcher< HcalChannelQualityRcd > hcalChStatusWatcher_
void process(const HBHERecHitCollection &hbhe)
void setHESEScale(double scale)
void setHEDEScale(double scale)
void setEEEScale(double scale)
std::string instanceLabel
unsigned int theHcalAcceptSeverityLevelForRejectedHit_
void setRecoveredHcalHitsAreUsed(bool flag)
void setUseRejectedHitsOnly(bool flag)
bool check(const edm::EventSetup &iSetup)
void setMissingHcalRescaleFactorForEcal(float factor)
void setHOEScale(double scale)
unsigned int theHcalAcceptSeverityLevel_
bool theRecoveredEcalHitsAreUsed_
void setHcalAcceptSeverityLevel(unsigned int level)
bool useRejectedRecoveredHcalHits_
std::vector< edm::InputTag > ecalLabels_
edm::ESWatcher< HcalSeverityLevelComputerRcd > hcalSevLevelWatcher_
void setEcalSevLvlAlgo(const EcalSeverityLevelAlgo *a)
void setUseRejectedRecoveredHcalHits(bool flag)
edm::ESWatcher< IdealGeometryRecord > caloTowerConstituentsWatcher_
void setEBEScale(double scale)
T const * product() const
std::vector< int > theEcalSeveritiesToBeUsedInBadTowers_
math::XYZTLorentzVector LorentzVector
Lorentz vector.
edm::EDGetTokenT< HFRecHitCollection > tok_hf_
const_iterator begin() const
edm::ESWatcher< EcalSeverityLevelAlgoRcd > ecalSevLevelWatcher_
bool useRejectedRecoveredEcalHits_