CMS 3D CMS Logo

JetMatchingTools.cc
Go to the documentation of this file.
1 #include <set>
2 
4 
7 
14 
15 using namespace edm;
16 
17 namespace {
18  template <class T>
19  const typename T::value_type* getHit(const T& fCollection, DetId fId) {
20  typename T::const_iterator hit = fCollection.find(fId);
21  if (hit != fCollection.end())
22  return &*hit;
23  return nullptr;
24  }
25 
26  std::vector<const PCaloHit*> getSimHits(const PCaloHitContainer& fCollection, DetId fId) {
27  std::vector<const PCaloHit*> result;
28  for (unsigned i = 0; i < fCollection.size(); ++i) {
29  if (fCollection[i].id() == fId.rawId()) {
30  result.push_back(&(fCollection[i]));
31  }
32  }
33  return result;
34  }
35 } // namespace
36 
38  : mEvent(&fEvent),
39  mEBRecHitCollection(nullptr),
40  mEERecHitCollection(nullptr),
41  mHBHERecHitCollection(nullptr),
42  mHORecHitCollection(nullptr),
43  mHFRecHitCollection(nullptr),
44  mEBSimHitCollection(nullptr),
45  mEESimHitCollection(nullptr),
46  mHcalSimHitCollection(nullptr),
47  mSimTrackCollection(nullptr),
48  mSimVertexCollection(nullptr),
49  mGenParticleCollection(nullptr) {
50  input_ebrechits_token_ = iC.mayConsume<EBRecHitCollection>(edm::InputTag("ecalRecHit:EcalRecHitsEB"));
51  input_eerechits_token_ = iC.mayConsume<EERecHitCollection>(edm::InputTag("ecalRecHit:EcalRecHitsEE"));
52  input_hbherechits_token_ = iC.mayConsume<HBHERecHitCollection>(edm::InputTag("hbhereco"));
53  input_horechits_token_ = iC.mayConsume<HORecHitCollection>(edm::InputTag("horeco"));
54  input_hfrechits_token_ = iC.mayConsume<HFRecHitCollection>(edm::InputTag("hfreco"));
55  input_pcalohits_ebcal_token_ = iC.mayConsume<edm::PCaloHitContainer>(edm::InputTag("g4SimHits:EcalHitsEB"));
56  input_pcalohits_eecal_token_ = iC.mayConsume<edm::PCaloHitContainer>(edm::InputTag("g4SimHits:EcalHitsEE"));
57  input_pcalohits_hcal_token_ = iC.mayConsume<edm::PCaloHitContainer>(edm::InputTag("g4SimHits:HcalHits"));
58  input_simtrack_token_ = iC.mayConsume<edm::SimTrackContainer>(edm::InputTag("g4SimHits"));
59  input_simvertex_token_ = iC.mayConsume<edm::SimVertexContainer>(edm::InputTag("g4SimHits"));
60  input_cands_token_ = iC.mayConsume<reco::CandidateCollection>(edm::InputTag("genParticleCandidates"));
61 }
62 
64 
66  if (!mEBRecHitCollection) {
70  }
71  return mEBRecHitCollection;
72 }
74  if (!mEERecHitCollection) {
78  }
79  return mEERecHitCollection;
80 }
82  if (!mHBHERecHitCollection) {
86  }
87  return mHBHERecHitCollection;
88 }
90  if (!mHORecHitCollection) {
94  }
95  return mHORecHitCollection;
96 }
98  if (!mHFRecHitCollection) {
102  }
103  return mHFRecHitCollection;
104 }
106  if (!mEBSimHitCollection) {
110  }
111  return mEBSimHitCollection;
112 }
114  if (!mEESimHitCollection) {
118  }
119  return mEESimHitCollection;
120 }
122  if (!mHcalSimHitCollection) {
126  }
127  return mHcalSimHitCollection;
128 }
130  if (!mSimTrackCollection) {
134  }
135  return mSimTrackCollection;
136 }
138  if (!mSimVertexCollection) {
142  }
143  return mSimVertexCollection;
144 }
146  if (!mGenParticleCollection) {
150  }
151  return mGenParticleCollection;
152 }
153 
155 std::vector<const CaloTower*> JetMatchingTools::getConstituents(const reco::CaloJet& fJet) {
156  std::vector<const CaloTower*> result;
157  std::vector<CaloTowerPtr> constituents = fJet.getCaloConstituents();
158  for (unsigned i = 0; i < constituents.size(); ++i)
159  result.push_back(&*(constituents[i]));
160  return result;
161 }
162 
164 std::vector<JetMatchingTools::JetConstituent> JetMatchingTools::getConstituentHits(const CaloTower& fTower) {
165  std::vector<JetConstituent> result;
166 
167  for (unsigned i = 0; i < fTower.constituentsSize(); ++i) {
168  DetId id = fTower.constituent(i);
169 
170  if (id.det() == DetId::Ecal) {
171  const EcalRecHit* hit = nullptr;
172 
173  if ((EcalSubdetector)id.subdetId() == EcalBarrel) {
174  hit = getHit(*getEBRecHitCollection(), id);
175  } else if ((EcalSubdetector)id.subdetId() == EcalEndcap) {
176  hit = getHit(*getEERecHitCollection(), id);
177  }
178 
179  assert(hit != nullptr);
180  if (hit)
181  result.push_back(JetConstituent(*hit));
182  else
183  std::cerr << "Can not find rechit for id " << id.rawId() << std::endl;
184  } else if (id.det() == DetId::Hcal) {
185  const CaloRecHit* hit = nullptr;
186 
187  if ((HcalSubdetector)id.subdetId() == HcalBarrel || (HcalSubdetector)id.subdetId() == HcalEndcap) {
188  hit = getHit(*getHBHERecHitCollection(), id);
189  } else if ((HcalSubdetector)id.subdetId() == HcalOuter) {
190  hit = getHit(*getHORecHitCollection(), id);
191  }
192  if ((HcalSubdetector)id.subdetId() == HcalForward) {
193  hit = getHit(*getHFRecHitCollection(), id);
194  }
195 
196  if (hit)
197  result.push_back(JetConstituent(*hit));
198  else
199  std::cerr << "Can not find rechit for id " << id.rawId() << std::endl;
200  }
201  }
202 
203  return result;
204 }
205 
207 std::vector<DetId> JetMatchingTools::getConstituentIds(const CaloTower& fTower) {
208  std::vector<DetId> result;
209  for (unsigned i = 0; i < fTower.constituentsSize(); ++i) {
210  DetId id = fTower.constituent(i);
211  result.push_back(id);
212  }
213  return result;
214 }
216 std::vector<const PCaloHit*> JetMatchingTools::getPCaloHits(DetId fId) {
217  std::vector<const PCaloHit*> result;
218  if (fId.det() == DetId::Ecal) {
219  if ((EcalSubdetector)fId.subdetId() == EcalBarrel) {
220  result = getSimHits(*getEBSimHitCollection(), fId);
221  } else if ((EcalSubdetector)fId.subdetId() == EcalEndcap) {
222  result = getSimHits(*getEESimHitCollection(), fId);
223  }
224  } else if (fId.det() == DetId::Hcal) {
225  result = getSimHits(*getHcalSimHitCollection(), fId);
226  }
227  return result;
228 }
230 int JetMatchingTools::getTrackId(const PCaloHit& fHit) { return fHit.geantTrackId(); }
232 const SimTrack* JetMatchingTools::getTrack(unsigned fSimTrackId) {
233  for (unsigned i = 0; i < getSimTrackCollection()->size(); ++i) {
234  if ((*getSimTrackCollection())[i].trackId() == fSimTrackId)
235  return &(*getSimTrackCollection())[i];
236  }
237  return nullptr;
238 }
240 int JetMatchingTools::generatorId(unsigned fSimTrackId) {
241  const SimTrack* track = getTrack(fSimTrackId);
242  if (!track)
243  return -1;
244  while (track->noGenpart()) {
245  if (track->noVertex()) {
246  std::cerr << "JetMatchingTools::generatorId-> No vertex for track " << *track << std::endl;
247  return -1;
248  }
249  const SimVertex* vertex = &((*getSimVertexCollection())[track->vertIndex()]);
250  if (vertex->noParent()) {
251  std::cerr << "JetMatchingTools::generatorId-> No track for vertex " << *vertex << std::endl;
252  return -1;
253  }
254  track = getTrack(vertex->parentIndex());
255  }
256  return track->genpartIndex();
257 }
258 
261  if (fGeneratorId > int(getGenParticlesCollection()->size())) {
262  std::cerr << "JetMatchingTools::getGenParticle-> requested index " << fGeneratorId
263  << " is grater then container size " << getGenParticlesCollection()->size() << std::endl;
264  return nullptr;
265  }
267  &(*getGenParticlesCollection())[fGeneratorId - 1]); // knowhow: index is shifted by 1
268 }
269 
271 std::vector<const reco::GenParticle*> JetMatchingTools::getGenParticles(const reco::CaloJet& fJet, bool fVerbose) {
272  std::set<const reco::GenParticle*> result;
273  // follow the chain
274  std::vector<const CaloTower*> towers = getConstituents(fJet);
275  for (unsigned itower = 0; itower < towers.size(); ++itower) {
276  std::vector<DetId> detids = getConstituentIds(*(towers[itower]));
277  for (unsigned iid = 0; iid < detids.size(); ++iid) {
278  std::vector<const PCaloHit*> phits = getPCaloHits(detids[iid]);
279  for (unsigned iphit = 0; iphit < phits.size(); ++iphit) {
280  int trackId = getTrackId(*(phits[iphit]));
281  if (trackId >= 0) {
282  int genId = generatorId(trackId);
283  if (genId >= 0) {
284  const reco::GenParticle* genPart = getGenParticle(genId);
285  if (genPart) {
286  result.insert(genPart);
287  } else if (fVerbose) {
288  std::cerr << "JetMatchingTools::getGenParticles-> Can not convert genId " << genId << " to GenParticle"
289  << std::endl;
290  }
291  } else if (fVerbose) {
292  std::cerr << "JetMatchingTools::getGenParticles-> Can not convert trackId " << trackId << " to genId"
293  << std::endl;
294  }
295  } else if (fVerbose) {
296  std::cerr << "JetMatchingTools::getGenParticles-> Unknown trackId for PCaloHit " << *(phits[iphit])
297  << std::endl;
298  }
299  }
300  }
301  }
302  return std::vector<const reco::GenParticle*>(result.begin(), result.end());
303 }
304 
306 std::vector<const reco::GenParticle*> JetMatchingTools::getGenParticles(const reco::GenJet& fJet) {
307  return fJet.getGenConstituents();
308 }
309 
312  double totalEnergy = 0;
313  double lostEnergy = 0;
314  // follow the chain
315  std::vector<const CaloTower*> towers = getConstituents(fJet);
316  for (unsigned itower = 0; itower < towers.size(); ++itower) {
317  std::vector<JetConstituent> recHits = getConstituentHits(*(towers[itower]));
318  for (unsigned ihit = 0; ihit < recHits.size(); ++ihit) {
319  double foundSimEnergy = 0;
320  double lostSimEnergy = 0;
321  std::vector<const PCaloHit*> phits = getPCaloHits(recHits[ihit].id);
322  for (unsigned iphit = 0; iphit < phits.size(); ++iphit) {
323  double simEnergy = phits[iphit]->energy();
324  int trackId = getTrackId(*(phits[iphit]));
325  if (trackId < 0 || generatorId(trackId) < 0)
326  lostSimEnergy += simEnergy;
327  else
328  foundSimEnergy += simEnergy;
329  }
330  if (foundSimEnergy > 0 || lostSimEnergy > 0) {
331  totalEnergy += recHits[ihit].energy;
332  lostEnergy += recHits[ihit].energy * lostSimEnergy / (foundSimEnergy + lostSimEnergy);
333  }
334  }
335  }
336  return lostEnergy / totalEnergy;
337 }
338 
340 double JetMatchingTools::overlapEnergyFraction(const std::vector<const reco::GenParticle*>& fObject,
341  const std::vector<const reco::GenParticle*>& fReference) const {
342  if (fObject.empty())
343  return 0;
344  double totalEnergy = 0;
345  double overlapEnergy = 0;
346  for (unsigned i = 0; i < fObject.size(); ++i) {
347  totalEnergy += fObject[i]->energy();
348  if (find(fReference.begin(), fReference.end(), fObject[i]) != fReference.end())
349  overlapEnergy += fObject[i]->energy();
350  }
351  return overlapEnergy / totalEnergy;
352 }
JetMatchingTools::getGenParticles
std::vector< const reco::GenParticle * > getGenParticles(const reco::CaloJet &fJet, bool fVerbose=true)
GenParticles for CaloJet.
Definition: JetMatchingTools.cc:271
JetMatchingTools::getEESimHitCollection
const edm::PCaloHitContainer * getEESimHitCollection()
Definition: JetMatchingTools.cc:113
JetMatchingTools::getConstituentHits
std::vector< JetConstituent > getConstituentHits(const CaloTower &fTower)
get CaloRecHits contributing to the tower
Definition: JetMatchingTools.cc:164
reco::GenJet::getGenConstituents
virtual std::vector< const GenParticle * > getGenConstituents() const
get all constituents
Definition: GenJet.cc:51
reco::CaloJet
Jets made from CaloTowers.
Definition: CaloJet.h:27
EcalRecHit
Definition: EcalRecHit.h:15
JetMatchingTools::mEESimHitCollection
const edm::PCaloHitContainer * mEESimHitCollection
Definition: JetMatchingTools.h:98
Handle.h
CaloJet.h
mps_fire.i
i
Definition: mps_fire.py:355
JetMatchingTools::mSimTrackCollection
const edm::SimTrackContainer * mSimTrackCollection
Definition: JetMatchingTools.h:100
SimVertex
Definition: SimVertex.h:5
reco::GenJet
Jets made from MC generator particles.
Definition: GenJet.h:23
reco::GenParticle
Definition: GenParticle.h:21
patZpeak.handle
handle
Definition: patZpeak.py:23
edm
HLT enums.
Definition: AlignableModifier.h:19
JetMatchingTools::mEvent
const edm::Event * mEvent
Definition: JetMatchingTools.h:91
DetId::det
constexpr Detector det() const
get the detector field from this detid
Definition: DetId.h:46
JetMatchingTools::getEBRecHitCollection
const EBRecHitCollection * getEBRecHitCollection()
Definition: JetMatchingTools.cc:65
EBDetId.h
EEDetId.h
DetId::Hcal
Definition: DetId.h:28
JetMatchingTools::getConstituents
std::vector< const CaloTower * > getConstituents(const reco::CaloJet &fJet)
get towers contributing to CaloJet
Definition: JetMatchingTools.cc:155
JetMatchingTools::mEERecHitCollection
const EERecHitCollection * mEERecHitCollection
Definition: JetMatchingTools.h:93
cms::cuda::assert
assert(be >=bs)
FastTrackerRecHitCombiner_cfi.simHits
simHits
Definition: FastTrackerRecHitCombiner_cfi.py:5
edm::SortedCollection< EcalRecHit >
JetMatchingTools.h
EcalSubdetector
EcalSubdetector
Definition: EcalSubdetector.h:10
JetMatchingTools::input_hbherechits_token_
edm::EDGetTokenT< HBHERecHitCollection > input_hbherechits_token_
Definition: JetMatchingTools.h:106
JetMatchingTools::mHFRecHitCollection
const HFRecHitCollection * mHFRecHitCollection
Definition: JetMatchingTools.h:96
CaloRecHit
Definition: CaloRecHit.h:23
HcalBarrel
Definition: HcalAssistant.h:33
spr::find
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
edm::Handle
Definition: AssociativeIterator.h:50
JetMatchingTools::mHcalSimHitCollection
const edm::PCaloHitContainer * mHcalSimHitCollection
Definition: JetMatchingTools.h:99
EcalBarrel
Definition: EcalSubdetector.h:10
JetMatchingTools::input_hfrechits_token_
edm::EDGetTokenT< HFRecHitCollection > input_hfrechits_token_
Definition: JetMatchingTools.h:108
JetMatchingTools::getPCaloHits
std::vector< const PCaloHit * > getPCaloHits(DetId fId)
get PCaloHits contributing to the detId
Definition: JetMatchingTools.cc:216
JetMatchingTools::input_pcalohits_hcal_token_
edm::EDGetTokenT< edm::PCaloHitContainer > input_pcalohits_hcal_token_
Definition: JetMatchingTools.h:111
GenParticle.h
DetId
Definition: DetId.h:17
JetMatchingTools::input_simtrack_token_
edm::EDGetTokenT< edm::SimTrackContainer > input_simtrack_token_
Definition: JetMatchingTools.h:112
JetMatchingTools::getSimVertexCollection
const edm::SimVertexContainer * getSimVertexCollection()
Definition: JetMatchingTools.cc:137
JetMatchingTools::input_pcalohits_eecal_token_
edm::EDGetTokenT< edm::PCaloHitContainer > input_pcalohits_eecal_token_
Definition: JetMatchingTools.h:109
JetMatchingTools::getConstituentIds
std::vector< DetId > getConstituentIds(const CaloTower &fTower)
get cells contributing to the tower
Definition: JetMatchingTools.cc:207
JetMatchingTools::getSimTrackCollection
const edm::SimTrackContainer * getSimTrackCollection()
Definition: JetMatchingTools.cc:129
JetMatchingTools::generatorId
int generatorId(unsigned fSimTrackId)
Generator ID.
Definition: JetMatchingTools.cc:240
JetMatchingTools::getHcalSimHitCollection
const edm::PCaloHitContainer * getHcalSimHitCollection()
Definition: JetMatchingTools.cc:121
JetMatchingTools::lostEnergyFraction
double lostEnergyFraction(const reco::CaloJet &fJet)
energy in broken links
Definition: JetMatchingTools.cc:311
CaloTower::constituentsSize
size_t constituentsSize() const
Definition: CaloTower.h:129
JetMatchingTools::input_pcalohits_ebcal_token_
edm::EDGetTokenT< edm::PCaloHitContainer > input_pcalohits_ebcal_token_
Definition: JetMatchingTools.h:110
JetMatchingTools::getGenParticlesCollection
const reco::CandidateCollection * getGenParticlesCollection()
Definition: JetMatchingTools.cc:145
HcalOuter
Definition: HcalAssistant.h:35
JetMatchingTools::mSimVertexCollection
const edm::SimVertexContainer * mSimVertexCollection
Definition: JetMatchingTools.h:101
HCALHighEnergyHPDFilter_cfi.energy
energy
Definition: HCALHighEnergyHPDFilter_cfi.py:5
edm::Event::getByToken
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:528
JetMatchingTools::input_simvertex_token_
edm::EDGetTokenT< edm::SimVertexContainer > input_simvertex_token_
Definition: JetMatchingTools.h:113
DetId::subdetId
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum)
Definition: DetId.h:48
EcalEndcap
Definition: EcalSubdetector.h:10
FastTrackerRecHitMaskProducer_cfi.recHits
recHits
Definition: FastTrackerRecHitMaskProducer_cfi.py:8
JetMatchingTools::input_eerechits_token_
edm::EDGetTokenT< EERecHitCollection > input_eerechits_token_
Definition: JetMatchingTools.h:105
bphysicsOniaDQM_cfi.vertex
vertex
Definition: bphysicsOniaDQM_cfi.py:7
HLT_2018_cff.InputTag
InputTag
Definition: HLT_2018_cff.py:79016
Event.h
JetMatchingTools::getTrack
const SimTrack * getTrack(unsigned fSimTrackId)
convert trackId to SimTrack
Definition: JetMatchingTools.cc:232
JetMatchingTools::getTrackId
int getTrackId(const PCaloHit &fHit)
GEANT track ID.
Definition: JetMatchingTools.cc:230
beam_dqm_sourceclient-live_cfg.cerr
cerr
Definition: beam_dqm_sourceclient-live_cfg.py:17
HcalDetId.h
JetMatchingTools::mHORecHitCollection
const HORecHitCollection * mHORecHitCollection
Definition: JetMatchingTools.h:95
CaloTower
Definition: CaloTower.h:26
reco::CaloJet::getCaloConstituents
virtual std::vector< CaloTowerPtr > getCaloConstituents() const
get all constituents
Definition: CaloJet.cc:78
JetMatchingTools::JetConstituent
Definition: JetMatchingTools.h:30
PCaloHit
Definition: PCaloHit.h:8
reco::JetExtendedAssociation::value_type
Container::value_type value_type
Definition: JetExtendedAssociation.h:30
DetId::Ecal
Definition: DetId.h:27
JetMatchingTools::input_cands_token_
edm::EDGetTokenT< reco::CandidateCollection > input_cands_token_
Definition: JetMatchingTools.h:114
JetMatchingTools::mHBHERecHitCollection
const HBHERecHitCollection * mHBHERecHitCollection
Definition: JetMatchingTools.h:94
HcalSubdetector
HcalSubdetector
Definition: HcalAssistant.h:31
HcalForward
Definition: HcalAssistant.h:36
hcaldqm::fEvent
Definition: DQTask.h:32
JetMatchingTools::overlapEnergyFraction
double overlapEnergyFraction(const std::vector< const reco::GenParticle * > &fObject, const std::vector< const reco::GenParticle * > &fReference) const
energy overlap
Definition: JetMatchingTools.cc:340
JetMatchingTools::mEBRecHitCollection
const EBRecHitCollection * mEBRecHitCollection
Definition: JetMatchingTools.h:92
CaloTower::constituent
DetId constituent(size_t i) const
Definition: CaloTower.h:130
HLT_2018_cff.towers
towers
Definition: HLT_2018_cff.py:35030
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
JetMatchingTools::mEBSimHitCollection
const edm::PCaloHitContainer * mEBSimHitCollection
Definition: JetMatchingTools.h:97
edm::SimTrackContainer
std::vector< SimTrack > SimTrackContainer
Definition: SimTrackContainer.h:12
HcalEndcap
Definition: HcalAssistant.h:34
SimTrack
Definition: SimTrack.h:6
T
long double T
Definition: Basic3DVectorLD.h:48
PCaloHit::geantTrackId
int geantTrackId() const
Definition: PCaloHit.h:33
JetMatchingTools::getHFRecHitCollection
const HFRecHitCollection * getHFRecHitCollection()
Definition: JetMatchingTools.cc:97
reco::GenJet::genParticle
static const GenParticle * genParticle(const reco::Candidate *fConstituent)
convert generic constituent to specific type
Definition: GenJet.cc:28
JetMatchingTools::JetMatchingTools
JetMatchingTools(const edm::Event &fEvent, edm::ConsumesCollector &&iC)
Definition: JetMatchingTools.cc:37
JetMatchingTools::getEBSimHitCollection
const edm::PCaloHitContainer * getEBSimHitCollection()
Definition: JetMatchingTools.cc:105
edm::PCaloHitContainer
std::vector< PCaloHit > PCaloHitContainer
Definition: PCaloHitContainer.h:8
JetMatchingTools::getEERecHitCollection
const EERecHitCollection * getEERecHitCollection()
Definition: JetMatchingTools.cc:73
JetMatchingTools::getHORecHitCollection
const HORecHitCollection * getHORecHitCollection()
Definition: JetMatchingTools.cc:89
HLT_2018_cff.track
track
Definition: HLT_2018_cff.py:10352
mps_fire.result
result
Definition: mps_fire.py:303
GenJet.h
JetMatchingTools::getGenParticle
const reco::GenParticle * getGenParticle(int fGeneratorId)
GenParticle.
Definition: JetMatchingTools.cc:260
JetMatchingTools::mGenParticleCollection
const reco::CandidateCollection * mGenParticleCollection
Definition: JetMatchingTools.h:102
JetMatchingTools::input_horechits_token_
edm::EDGetTokenT< HORecHitCollection > input_horechits_token_
Definition: JetMatchingTools.h:107
edm::Event
Definition: Event.h:73
JetMatchingTools::~JetMatchingTools
~JetMatchingTools()
Definition: JetMatchingTools.cc:63
edm::OwnVector::size
size_type size() const
Definition: OwnVector.h:300
JetMatchingTools::getHBHERecHitCollection
const HBHERecHitCollection * getHBHERecHitCollection()
Definition: JetMatchingTools.cc:81
edm::SimVertexContainer
std::vector< SimVertex > SimVertexContainer
Definition: SimVertexContainer.h:12
edm::ConsumesCollector
Definition: ConsumesCollector.h:39
hit
Definition: SiStripHitEffFromCalibTree.cc:88
JetMatchingTools::input_ebrechits_token_
edm::EDGetTokenT< EBRecHitCollection > input_ebrechits_token_
Definition: JetMatchingTools.h:104
edm::OwnVector
Definition: OwnVector.h:24
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443