12 SaveGeneralInfo_(
pset.getUntrackedParameter<
bool>(
"SaveGeneralInfo")),
13 doCaloParticlePlots_(
pset.getUntrackedParameter<
bool>(
"doCaloParticlePlots")),
14 doCaloParticleSelection_(
pset.getUntrackedParameter<
bool>(
"doCaloParticleSelection")),
15 dolayerclustersPlots_(
pset.getUntrackedParameter<
bool>(
"dolayerclustersPlots")),
16 domulticlustersPlots_(
pset.getUntrackedParameter<
bool>(
"domulticlustersPlots")),
22 label_cp_effic = consumes<std::vector<CaloParticle>>(label_cp_effic_tag);
23 label_cp_fake = consumes<std::vector<CaloParticle>>(label_cp_fake_tag);
27 hitMap_ = consumes<std::unordered_map<DetId, const HGCRecHit*>>(
edm::InputTag(
"hgcalRecHitMapProducer"));
38 consumes<hgcal::LayerClusterToCaloParticleAssociator>(
edm::InputTag(
"lcAssocByEnergyScoreProducer"));
41 pset.getParameter<
double>(
"ptMaxCP"),
42 pset.getParameter<
double>(
"minRapidityCP"),
43 pset.getParameter<
double>(
"maxRapidityCP"),
44 pset.getParameter<
int>(
"minHitCP"),
45 pset.getParameter<
int>(
"maxSimClustersCP"),
46 pset.getParameter<
double>(
"tipCP"),
47 pset.getParameter<
double>(
"lipCP"),
48 pset.getParameter<
bool>(
"signalOnlyCP"),
49 pset.getParameter<
bool>(
"intimeOnlyCP"),
50 pset.getParameter<
bool>(
"chargedOnlyCP"),
51 pset.getParameter<
bool>(
"stableOnlyCP"),
52 pset.getParameter<std::vector<int>>(
"pdgIdCP"));
66 cummatbudg.insert(std::pair<double, double>(thelay, mbg));
112 for (
unsigned int www = 0; www <
label_mcl.size(); www++) {
116 if (!
algo.process().empty())
119 if (!
algo.label().empty())
122 if (!
algo.instance().empty())
142 std::vector<CaloParticle>
const& cPeff,
144 std::vector<size_t>& selected_cPeff)
const {
145 selected_cPeff.reserve(cPeff.size());
148 for (
auto const& caloParticle : cPeff) {
149 int id = caloParticle.pdgId();
152 selected_cPeff.push_back(
j);
164 using namespace reco;
166 LogDebug(
"HGCalValidator") <<
"\n===================================================="
168 <<
"Analyzing new event"
170 <<
"====================================================\n"
175 std::vector<SimVertex>
const&
simVertices = *simVerticesHandle;
179 std::vector<CaloParticle>
const&
caloParticles = *caloParticleHandle;
190 event.getByToken(
hitMap_, hitMapHandle);
191 const std::unordered_map<DetId, const HGCRecHit*>* hitMap = &*hitMapHandle;
199 std::vector<size_t> cPIndices;
202 for (
unsigned int cpId = 0; cpId < nCaloParticles; ++cpId) {
204 caloParticles[cpId].g4Tracks()[0].eventId().bunchCrossing() != 0) {
205 LogDebug(
"HGCalValidator") <<
"Excluding CaloParticles from event: "
207 <<
" with BX: " <<
caloParticles[cpId].g4Tracks()[0].eventId().bunchCrossing()
211 cPIndices.emplace_back(cpId);
218 std::vector<size_t> selected_cPeff;
229 event.getByToken(
density_, densityHandle);
230 const Density& densities = *densityHandle;
250 LCAssocByEnergyScoreHandle);
252 for (
unsigned int layerclusterIndex = 0; layerclusterIndex <
clusters.size(); layerclusterIndex++) {
268 const std::vector<reco::HGCalMultiCluster>& multiClusters = *multiClusterHandle;
280 LogTrace(
"HGCalValidator") <<
"\n# of multi clusters with " <<
label_mcl[wml].process() <<
":"
282 << multiClusters.size() <<
"\n";