CMS 3D CMS Logo

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

Producer for PFRecTracks and PFSimParticles. More...

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

Public Types

typedef edm::Handle< reco::PFRecTrackCollectionTrackHandle
 
- Public Types inherited from edm::stream::EDProducer<>
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 

Public Member Functions

void getSimIDs (const TrackHandle &trackh, std::vector< unsigned > &recTrackSimID)
 
 PFSimParticleProducer (const edm::ParameterSet &)
 
void produce (edm::Event &, const edm::EventSetup &) override
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 

Private Attributes

edm::InputTag inputTagEcalRecHitsEB_
 
edm::InputTag inputTagEcalRecHitsEE_
 
edm::InputTag inputTagFastSimProducer_
 
edm::InputTag inputTagRecTracks_
 
edm::InputTag inputTagSim_
 module label for retrieving input simtrack and simvertex More...
 
bool mctruthMatchingInfo_
 
std::unique_ptr< FSimEventmySimEvent
 
edm::ParameterSet particleFilter_
 
bool processParticles_
 process particles on/off More...
 
edm::EDGetTokenT< EcalRecHitCollectiontokenEcalRecHitsEB_
 
edm::EDGetTokenT< EcalRecHitCollectiontokenEcalRecHitsEE_
 
edm::EDGetTokenT< edm::PCaloHitContainertokenFastSimProducer_
 
edm::EDGetTokenT< reco::PFRecTrackCollectiontokenRecTracks_
 
edm::EDGetTokenT< std::vector< SimTrack > > tokenSim_
 
edm::EDGetTokenT< std::vector< SimVertex > > tokenSimVertices_
 
bool verbose_
 verbose ? More...
 

Detailed Description

Producer for PFRecTracks and PFSimParticles.

Author
Colin Bernet
Date
April 2007

Definition at line 66 of file PFSimParticleProducer.cc.

Member Typedef Documentation

◆ TrackHandle

Definition at line 74 of file PFSimParticleProducer.cc.

Constructor & Destructor Documentation

◆ PFSimParticleProducer()

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

Definition at line 140 of file PFSimParticleProducer.cc.

140  {
141  processParticles_ = iConfig.getUntrackedParameter<bool>("process_Particles", true);
142 
143  inputTagSim_ = iConfig.getParameter<InputTag>("sim");
144  tokenSim_ = consumes<std::vector<SimTrack> >(inputTagSim_);
145  tokenSimVertices_ = consumes<std::vector<SimVertex> >(inputTagSim_);
146 
147  //retrieving collections for MC Truth Matching
148 
149  //modif-beg
150  inputTagFastSimProducer_ = iConfig.getUntrackedParameter<InputTag>("fastSimProducer");
151  tokenFastSimProducer_ = consumes<edm::PCaloHitContainer>(inputTagFastSimProducer_);
152  mctruthMatchingInfo_ = iConfig.getUntrackedParameter<bool>("MCTruthMatchingInfo", false);
153  //modif-end
154 
155  inputTagRecTracks_ = iConfig.getParameter<InputTag>("RecTracks");
156  tokenRecTracks_ = consumes<reco::PFRecTrackCollection>(inputTagRecTracks_);
157 
158  inputTagEcalRecHitsEB_ = iConfig.getParameter<InputTag>("ecalRecHitsEB");
159  tokenEcalRecHitsEB_ = consumes<EcalRecHitCollection>(inputTagEcalRecHitsEB_);
160  inputTagEcalRecHitsEE_ = iConfig.getParameter<InputTag>("ecalRecHitsEE");
161  tokenEcalRecHitsEE_ = consumes<EcalRecHitCollection>(inputTagEcalRecHitsEE_);
162 
163  verbose_ = iConfig.getUntrackedParameter<bool>("verbose", false);
164 
165  // register products
166  produces<reco::PFSimParticleCollection>();
167 
168  particleFilter_ = iConfig.getParameter<ParameterSet>("ParticleFilter");
169 
170  mySimEvent = std::make_unique<FSimEvent>(particleFilter_);
171 }

References edm::ParameterSet::getParameter(), and edm::ParameterSet::getUntrackedParameter().

Member Function Documentation

◆ fillDescriptions()

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

Definition at line 114 of file PFSimParticleProducer.cc.

114  {
115  // particleFlowSimParticle
117  desc.addUntracked<edm::InputTag>("fastSimProducer", edm::InputTag("fastSimProducer", "EcalHitsEB"));
118  desc.addUntracked<bool>("MCTruthMatchingInfo", false);
119  desc.add<edm::InputTag>("RecTracks", edm::InputTag("trackerDrivenElectronSeeds"));
120  desc.add<std::string>("Fitter", "KFFittingSmoother");
121  desc.add<edm::InputTag>("ecalRecHitsEE", edm::InputTag("caloRecHits", "EcalRecHitsEE"));
122  desc.add<edm::InputTag>("ecalRecHitsEB", edm::InputTag("caloRecHits", "EcalRecHitsEB"));
123  desc.addUntracked<bool>("process_RecTracks", false);
124  {
126  psd0.setUnknown();
127  desc.add<edm::ParameterSetDescription>("ParticleFilter", psd0);
128  }
129  desc.add<std::string>("TTRHBuilder", "WithTrackAngle");
130  desc.addUntracked<bool>("process_Particles", true);
131  desc.add<std::string>("Propagator", "PropagatorWithMaterial");
132  desc.add<edm::InputTag>("sim", edm::InputTag("g4SimHits"));
133  desc.addUntracked<bool>("verbose", false);
134  descriptions.add("particleFlowSimParticle", desc);
135 }

References edm::ConfigurationDescriptions::add(), submitPVResolutionJobs::desc, HLT_FULL_cff::InputTag, edm::ParameterSetDescription::setUnknown(), and AlCaHLTBitMon_QueryRunRegistry::string.

◆ getSimIDs()

void PFSimParticleProducer::getSimIDs ( const TrackHandle trackh,
std::vector< unsigned > &  recTrackSimID 
)

Definition at line 461 of file PFSimParticleProducer.cc.

461  {
462  if (trackh.isValid()) {
463  for (unsigned i = 0; i < trackh->size(); i++) {
464  const reco::PFRecTrackRef ref(trackh, i);
465 
466  for (auto const& hit : ref->trackRef()->recHits()) {
467  if (hit->isValid()) {
468  auto rechit = dynamic_cast<const FastTrackerRecHit*>(hit);
469 
470  for (unsigned int st_index = 0; st_index < rechit->nSimTrackIds(); ++st_index) {
471  recTrackSimID.push_back(rechit->simTrackId(st_index));
472  }
473  break;
474  }
475  } //loop track rechit
476  } //loop recTracks
477  } //track handle valid
478 }

References mps_fire::i, and edm::HandleBase::isValid().

◆ produce()

void PFSimParticleProducer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
override

Definition at line 173 of file PFSimParticleProducer.cc.

173  {
174  // init Particle data table (from Pythia)
176  // edm::ESHandle < DefaultConfig::ParticleDataTable > pdt;
177  iSetup.getData(pdt);
178  mySimEvent->initializePdt(&(*pdt));
179 
180  LogDebug("PFSimParticleProducer") << "START event: " << iEvent.id().event() << " in run " << iEvent.id().run()
181  << endl;
182 
183  //MC Truth Matching only with Famos and UnFoldedMode option to true!!
184 
185  //vector to store the trackIDs of rectracks corresponding
186  //to the simulated particle.
187  std::vector<unsigned> recTrackSimID;
188 
189  //In order to know which simparticule contribute to
190  //a given Ecal RecHit energy, we need to access
191  //the PCAloHit from FastSim.
192 
193  typedef std::pair<double, unsigned> hitSimID;
194  std::vector<std::list<hitSimID> > caloHitsEBID(62000);
195  std::vector<double> caloHitsEBTotE(62000, 0.0);
196 
197  if (mctruthMatchingInfo_) {
198  //getting the PCAloHit
199  auto pcalohits = iEvent.getHandle(tokenFastSimProducer_);
200 
201  if (!pcalohits) {
202  ostringstream err;
203  err << "could not find pcaloHit "
204  << "fastSimProducer:EcalHitsEB";
205  LogError("PFSimParticleProducer") << err.str() << endl;
206 
207  throw cms::Exception("MissingProduct", err.str());
208  } else {
209  assert(pcalohits.isValid());
210 
211  edm::PCaloHitContainer::const_iterator it = pcalohits.product()->begin();
212  edm::PCaloHitContainer::const_iterator itend = pcalohits.product()->end();
213 
214  //loop on the PCaloHit from FastSim Calorimetry
215  for (; it != itend; ++it) {
216  EBDetId detid(it->id());
217 
218  if (it->energy() > 0.0) {
219  std::pair<double, unsigned> phitsimid = make_pair(it->energy(), it->geantTrackId());
220  caloHitsEBID[detid.hashedIndex()].push_back(phitsimid);
221  caloHitsEBTotE[detid.hashedIndex()] += it->energy(); //summing pcalhit energy
222  } //energy > 0
223 
224  } //loop PcaloHits
225  } //pcalohit handle access
226 
227  //Retrieving the PFRecTrack collection for
228  //Monte Carlo Truth Matching tool
230  try {
231  LogDebug("PFSimParticleProducer") << "getting PFRecTracks" << endl;
232  iEvent.getByToken(tokenRecTracks_, recTracks);
233 
234  } catch (cms::Exception& err) {
235  LogError("PFSimParticleProducer") << err << " cannot get collection "
236  << "particleFlowBlock"
237  << ":"
238  << "" << endl;
239  } //pfrectrack handle access
240 
241  //getting the simID corresponding to
242  //each of the PFRecTracks
243  getSimIDs(recTracks, recTrackSimID);
244 
245  } //mctruthMatchingInfo_ //modif
246 
247  // deal with true particles
248  if (processParticles_) {
249  auto pOutputPFSimParticleCollection = std::make_unique<reco::PFSimParticleCollection>();
250 
252  bool found = iEvent.getByToken(tokenSim_, simTracks);
253  if (!found) {
254  ostringstream err;
255  err << "cannot find sim tracks: " << inputTagSim_;
256  LogError("PFSimParticleProducer") << err.str() << endl;
257 
258  throw cms::Exception("MissingProduct", err.str());
259  }
260 
262  found = iEvent.getByToken(tokenSimVertices_, simVertices);
263  if (!found) {
264  LogError("PFSimParticleProducer") << "cannot find sim vertices: " << inputTagSim_ << endl;
265  return;
266  }
267 
268  mySimEvent->fill(*simTracks, *simVertices);
269 
270  if (verbose_)
271  mySimEvent->print();
272 
273  for (unsigned i = 0; i < mySimEvent->nTracks(); i++) {
274  const FSimTrack& fst = mySimEvent->track(i);
275 
276  int motherId = -1;
277  if (!fst.noMother()) // a mother exist
278  motherId = fst.mother().id();
279 
280  //This is finding out the simID corresponding
281  //to the recTrack
282 
283  //GETTING THE TRACK ID
284  unsigned recTrackID = 99999;
285  vector<unsigned> recHitContrib; //modif
286  vector<double> recHitContribFrac; //modif
287 
288  if (mctruthMatchingInfo_) { //modif
289 
290  for (unsigned lo = 0; lo < recTrackSimID.size(); lo++) {
291  if (i == recTrackSimID[lo]) {
292  recTrackID = lo;
293  } //match track
294  } //loop rectrack
295 
296  // get the ecalBarrel rechits for MC truth matching tool
298  bool found = iEvent.getByToken(tokenEcalRecHitsEB_, rhcHandle);
299  if (!found) {
300  ostringstream err;
301  err << "could not find rechits " << inputTagEcalRecHitsEB_;
302  LogError("PFSimParticleProducer") << err.str() << endl;
303 
304  throw cms::Exception("MissingProduct", err.str());
305  } else {
306  assert(rhcHandle.isValid());
307 
308  EBRecHitCollection::const_iterator it_rh = rhcHandle.product()->begin();
309  EBRecHitCollection::const_iterator itend_rh = rhcHandle.product()->end();
310 
311  for (; it_rh != itend_rh; ++it_rh) {
312  unsigned rhit_hi = EBDetId(it_rh->id()).hashedIndex();
313  EBDetId detid(it_rh->id());
314 
315  auto it_phit = caloHitsEBID[rhit_hi].begin();
316  auto itend_phit = caloHitsEBID[rhit_hi].end();
317  for (; it_phit != itend_phit; ++it_phit) {
318  if (i == it_phit->second) {
319  //Alex (08/10/08) TO BE REMOVED, eliminating
320  //duplicated rechits
321  bool alreadyin = false;
322  for (unsigned ihit = 0; ihit < recHitContrib.size(); ++ihit)
323  if (detid.rawId() == recHitContrib[ihit])
324  alreadyin = true;
325 
326  if (!alreadyin) {
327  double pcalofraction = 0.0;
328  if (caloHitsEBTotE[rhit_hi] != 0.0)
329  pcalofraction = (it_phit->first / caloHitsEBTotE[rhit_hi]) * 100.0;
330 
331  //store info
332  recHitContrib.push_back(it_rh->id());
333  recHitContribFrac.push_back(pcalofraction);
334  } //selected rechits
335  } //matching
336  } //loop pcalohit
337 
338  } //loop rechits
339 
340  } //getting the rechits
341 
342  } //mctruthMatchingInfo_ //modif
343 
344  reco::PFSimParticle particle(
345  fst.charge(), fst.type(), fst.id(), motherId, fst.daughters(), recTrackID, recHitContrib, recHitContribFrac);
346 
347  const FSimVertex& originVtx = fst.vertex();
348 
349  math::XYZPoint posOrig(originVtx.position().x(), originVtx.position().y(), originVtx.position().z());
350 
351  math::XYZTLorentzVector momOrig(
352  fst.momentum().px(), fst.momentum().py(), fst.momentum().pz(), fst.momentum().e());
353  reco::PFTrajectoryPoint pointOrig(-1, reco::PFTrajectoryPoint::ClosestApproach, posOrig, momOrig);
354 
355  // point 0 is origin vertex
356  particle.addPoint(pointOrig);
357 
358  if (!fst.noEndVertex()) {
359  const FSimVertex& endVtx = fst.endVertex();
360 
361  math::XYZPoint posEnd(endVtx.position().x(), endVtx.position().y(), endVtx.position().z());
362 
364 
366 
367  particle.addPoint(pointEnd);
368  } else { // add a dummy point
370  particle.addPoint(dummy);
371  }
372 
373  if (fst.onLayer1()) { // PS layer1
374  const RawParticle& rp = fst.layer1Entrance();
375 
376  math::XYZPoint posLayer1(rp.x(), rp.y(), rp.z());
377  math::XYZTLorentzVector momLayer1(rp.px(), rp.py(), rp.pz(), rp.e());
378  reco::PFTrajectoryPoint layer1Pt(-1, reco::PFTrajectoryPoint::PS1, posLayer1, momLayer1);
379 
380  particle.addPoint(layer1Pt);
381 
382  // extrapolate to cluster depth
383  } else { // add a dummy point
385  particle.addPoint(dummy);
386  }
387 
388  if (fst.onLayer2()) { // PS layer2
389  const RawParticle& rp = fst.layer2Entrance();
390 
391  math::XYZPoint posLayer2(rp.x(), rp.y(), rp.z());
392  math::XYZTLorentzVector momLayer2(rp.px(), rp.py(), rp.pz(), rp.e());
393  reco::PFTrajectoryPoint layer2Pt(-1, reco::PFTrajectoryPoint::PS2, posLayer2, momLayer2);
394 
395  particle.addPoint(layer2Pt);
396 
397  // extrapolate to cluster depth
398  } else { // add a dummy point
400  particle.addPoint(dummy);
401  }
402 
403  if (fst.onEcal()) {
404  const RawParticle& rp = fst.ecalEntrance();
405 
406  math::XYZPoint posECAL(rp.x(), rp.y(), rp.z());
407  math::XYZTLorentzVector momECAL(rp.px(), rp.py(), rp.pz(), rp.e());
409 
410  particle.addPoint(ecalPt);
411 
412  // extrapolate to cluster depth
413  } else { // add a dummy point
415  particle.addPoint(dummy);
416  }
417 
418  // add a dummy point for ECAL Shower max
420  particle.addPoint(dummy);
421 
422  if (fst.onHcal()) {
423  const RawParticle& rpin = fst.hcalEntrance();
424 
425  math::XYZPoint posHCALin(rpin.x(), rpin.y(), rpin.z());
426  math::XYZTLorentzVector momHCALin(rpin.px(), rpin.py(), rpin.pz(), rpin.e());
427  reco::PFTrajectoryPoint hcalPtin(-1, reco::PFTrajectoryPoint::HCALEntrance, posHCALin, momHCALin);
428 
429  particle.addPoint(hcalPtin);
430 
431  const RawParticle& rpout = fst.hcalExit();
432 
433  math::XYZPoint posHCALout(rpout.x(), rpout.y(), rpout.z());
434  math::XYZTLorentzVector momHCALout(rpout.px(), rpout.py(), rpout.pz(), rpout.e());
435  reco::PFTrajectoryPoint hcalPtout(-1, reco::PFTrajectoryPoint::HCALExit, posHCALout, momHCALout);
436 
437  particle.addPoint(hcalPtout);
438 
439  const RawParticle& rpho = fst.hoEntrance();
440 
441  math::XYZPoint posHOEntrance(rpho.x(), rpho.y(), rpho.z());
442  math::XYZTLorentzVector momHOEntrance(rpho.px(), rpho.py(), rpho.pz(), rpho.e());
443  reco::PFTrajectoryPoint hoPtin(-1, reco::PFTrajectoryPoint::HOLayer, posHOEntrance, momHOEntrance);
444 
445  particle.addPoint(hoPtin);
446 
447  } else { // add a dummy point
449  particle.addPoint(dummy);
450  }
451 
452  pOutputPFSimParticleCollection->push_back(particle);
453  }
454 
455  iEvent.put(std::move(pOutputPFSimParticleCollection));
456  }
457 
458  LogDebug("PFSimParticleProducer") << "STOP event: " << iEvent.id().event() << " in run " << iEvent.id().run() << endl;
459 }

References cms::cuda::assert(), reco::PFTrajectoryPoint::BeamPipeOrEndVertex, edm::SortedCollection< T, SORT >::begin(), FSimTrack::charge(), reco::PFTrajectoryPoint::ClosestApproach, FSimTrack::daughters(), RawParticle::e(), reco::PFTrajectoryPoint::ECALEntrance, FSimTrack::ecalEntrance(), edm::SortedCollection< T, SORT >::end(), FSimTrack::endVertex(), submitPVResolutionJobs::err, Exception, newFWLiteAna::found, edm::EventSetup::getData(), ecalpyutils::hashedIndex(), reco::PFTrajectoryPoint::HCALEntrance, FSimTrack::hcalEntrance(), reco::PFTrajectoryPoint::HCALExit, FSimTrack::hcalExit(), FSimTrack::hoEntrance(), reco::PFTrajectoryPoint::HOLayer, mps_fire::i, FSimTrack::id(), iEvent, edm::HandleBase::isValid(), FSimTrack::layer1Entrance(), FSimTrack::layer2Entrance(), LogDebug, FSimTrack::momentum(), FSimTrack::mother(), objects.autophobj::motherId, eostools::move(), FSimTrack::noEndVertex(), FSimTrack::noMother(), FSimTrack::onEcal(), FSimTrack::onHcal(), FSimTrack::onLayer1(), FSimTrack::onLayer2(), FSimVertex::position(), edm::Handle< T >::product(), reco::PFTrajectoryPoint::PS1, reco::PFTrajectoryPoint::PS2, RawParticle::px(), RawParticle::py(), RawParticle::pz(), hiRegitInitialStep_cff::recTracks, TrackCandidateProducer_cfi::simTracks, HGCalValidator_cfi::simVertices, CoreSimTrack::type(), FSimTrack::vertex(), RawParticle::x(), RawParticle::y(), and RawParticle::z().

Member Data Documentation

◆ inputTagEcalRecHitsEB_

edm::InputTag PFSimParticleProducer::inputTagEcalRecHitsEB_
private

Definition at line 92 of file PFSimParticleProducer.cc.

◆ inputTagEcalRecHitsEE_

edm::InputTag PFSimParticleProducer::inputTagEcalRecHitsEE_
private

Definition at line 94 of file PFSimParticleProducer.cc.

◆ inputTagFastSimProducer_

edm::InputTag PFSimParticleProducer::inputTagFastSimProducer_
private

Definition at line 86 of file PFSimParticleProducer.cc.

◆ inputTagRecTracks_

edm::InputTag PFSimParticleProducer::inputTagRecTracks_
private

Definition at line 90 of file PFSimParticleProducer.cc.

◆ inputTagSim_

edm::InputTag PFSimParticleProducer::inputTagSim_
private

module label for retrieving input simtrack and simvertex

Definition at line 79 of file PFSimParticleProducer.cc.

◆ mctruthMatchingInfo_

bool PFSimParticleProducer::mctruthMatchingInfo_
private

Definition at line 85 of file PFSimParticleProducer.cc.

◆ mySimEvent

std::unique_ptr<FSimEvent> PFSimParticleProducer::mySimEvent
private

Definition at line 100 of file PFSimParticleProducer.cc.

◆ particleFilter_

edm::ParameterSet PFSimParticleProducer::particleFilter_
private

Definition at line 99 of file PFSimParticleProducer.cc.

◆ processParticles_

bool PFSimParticleProducer::processParticles_
private

process particles on/off

Definition at line 105 of file PFSimParticleProducer.cc.

◆ tokenEcalRecHitsEB_

edm::EDGetTokenT<EcalRecHitCollection> PFSimParticleProducer::tokenEcalRecHitsEB_
private

Definition at line 93 of file PFSimParticleProducer.cc.

◆ tokenEcalRecHitsEE_

edm::EDGetTokenT<EcalRecHitCollection> PFSimParticleProducer::tokenEcalRecHitsEE_
private

Definition at line 95 of file PFSimParticleProducer.cc.

◆ tokenFastSimProducer_

edm::EDGetTokenT<edm::PCaloHitContainer> PFSimParticleProducer::tokenFastSimProducer_
private

Definition at line 87 of file PFSimParticleProducer.cc.

◆ tokenRecTracks_

edm::EDGetTokenT<reco::PFRecTrackCollection> PFSimParticleProducer::tokenRecTracks_
private

Definition at line 91 of file PFSimParticleProducer.cc.

◆ tokenSim_

edm::EDGetTokenT<std::vector<SimTrack> > PFSimParticleProducer::tokenSim_
private

Definition at line 80 of file PFSimParticleProducer.cc.

◆ tokenSimVertices_

edm::EDGetTokenT<std::vector<SimVertex> > PFSimParticleProducer::tokenSimVertices_
private

Definition at line 81 of file PFSimParticleProducer.cc.

◆ verbose_

bool PFSimParticleProducer::verbose_
private

verbose ?

Definition at line 108 of file PFSimParticleProducer.cc.

RawParticle::x
double x() const
x of vertex
Definition: RawParticle.h:282
FSimTrack::charge
float charge() const
charge
Definition: FSimTrack.h:56
RawParticle
Definition: RawParticle.h:37
mps_fire.i
i
Definition: mps_fire.py:428
edm::SortedCollection< EcalRecHit >::const_iterator
std::vector< EcalRecHit >::const_iterator const_iterator
Definition: SortedCollection.h:80
PFSimParticleProducer::tokenSim_
edm::EDGetTokenT< std::vector< SimTrack > > tokenSim_
Definition: PFSimParticleProducer.cc:80
edm::Handle::product
T const * product() const
Definition: Handle.h:70
FSimTrack::onLayer2
int onLayer2() const
Definition: FSimTrack.h:106
FSimTrack::mother
const FSimTrack & mother() const
mother
PFSimParticleProducer::inputTagEcalRecHitsEB_
edm::InputTag inputTagEcalRecHitsEB_
Definition: PFSimParticleProducer.cc:92
FSimTrack::onLayer1
int onLayer1() const
Definition: FSimTrack.h:101
EBDetId
Definition: EBDetId.h:17
FSimTrack::hoEntrance
const RawParticle & hoEntrance() const
The particle at HCAL exir.
Definition: FSimTrack.h:155
reco::PFTrajectoryPoint::HCALExit
HCAL exit.
Definition: PFTrajectoryPoint.h:50
FSimTrack::layer1Entrance
const RawParticle & layer1Entrance() const
The particle at Preshower Layer 1.
Definition: FSimTrack.h:137
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89301
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
reco::PFTrajectoryPoint::HOLayer
HO layer.
Definition: PFTrajectoryPoint.h:52
cms::cuda::assert
assert(be >=bs)
PFSimParticleProducer::mctruthMatchingInfo_
bool mctruthMatchingInfo_
Definition: PFSimParticleProducer.cc:85
TrackCandidateProducer_cfi.simTracks
simTracks
Definition: TrackCandidateProducer_cfi.py:15
FSimTrack::endVertex
const FSimVertex & endVertex() const
end vertex
FSimTrack::daughters
const std::vector< int > & daughters() const
Vector of daughter indices.
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
FSimTrack::layer2Entrance
const RawParticle & layer2Entrance() const
The particle at Preshower Layer 2.
Definition: FSimTrack.h:140
FSimVertex
Definition: FSimVertex.h:19
newFWLiteAna.found
found
Definition: newFWLiteAna.py:118
edm::Handle
Definition: AssociativeIterator.h:50
edm::Ref< PFRecTrackCollection >
PFSimParticleProducer::tokenEcalRecHitsEB_
edm::EDGetTokenT< EcalRecHitCollection > tokenEcalRecHitsEB_
Definition: PFSimParticleProducer.cc:93
PFSimParticleProducer::tokenFastSimProducer_
edm::EDGetTokenT< edm::PCaloHitContainer > tokenFastSimProducer_
Definition: PFSimParticleProducer.cc:87
reco::PFTrajectoryPoint::BeamPipeOrEndVertex
Definition: PFTrajectoryPoint.h:37
PFSimParticleProducer::tokenSimVertices_
edm::EDGetTokenT< std::vector< SimVertex > > tokenSimVertices_
Definition: PFSimParticleProducer.cc:81
FSimTrack::onHcal
int onHcal() const
Definition: FSimTrack.h:116
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
RawParticle::px
double px() const
x of the momentum
Definition: RawParticle.h:296
RawParticle::py
double py() const
y of the momentum
Definition: RawParticle.h:299
PFSimParticleProducer::inputTagFastSimProducer_
edm::InputTag inputTagFastSimProducer_
Definition: PFSimParticleProducer.cc:86
edm::SortedCollection::begin
const_iterator begin() const
Definition: SortedCollection.h:262
FSimTrack::hcalEntrance
const RawParticle & hcalEntrance() const
The particle at HCAL entrance.
Definition: FSimTrack.h:146
edm::ESHandle< HepPDT::ParticleDataTable >
reco::PFSimParticle
true particle for particle flow
Definition: PFSimParticle.h:19
FSimTrack::ecalEntrance
const RawParticle & ecalEntrance() const
The particle at ECAL entrance.
Definition: FSimTrack.h:143
RawParticle::z
double z() const
z of vertex
Definition: RawParticle.h:284
PFSimParticleProducer::verbose_
bool verbose_
verbose ?
Definition: PFSimParticleProducer.cc:108
FSimTrack::id
int id() const
the index in FBaseSimEvent and other vectors
Definition: FSimTrack.h:96
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:233
edm::ParameterSet
Definition: ParameterSet.h:47
math::XYZPoint
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
FSimTrack::vertex
const FSimVertex vertex() const
Origin vertex.
RawParticle::pz
double pz() const
z of the momentum
Definition: RawParticle.h:302
edm::SortedCollection::end
const_iterator end() const
Definition: SortedCollection.h:267
FSimVertex::position
const math::XYZTLorentzVector & position() const
Temporary (until CMSSW moves to Mathcore) - No ! Actually very useful.
Definition: FSimVertex.h:48
reco::PFTrajectoryPoint::HCALEntrance
HCAL front face.
Definition: PFTrajectoryPoint.h:48
iEvent
int iEvent
Definition: GenABIO.cc:224
reco::PFTrajectoryPoint::PS2
Preshower layer 2.
Definition: PFTrajectoryPoint.h:41
PFSimParticleProducer::inputTagEcalRecHitsEE_
edm::InputTag inputTagEcalRecHitsEE_
Definition: PFSimParticleProducer.cc:94
PFSimParticleProducer::particleFilter_
edm::ParameterSet particleFilter_
Definition: PFSimParticleProducer.cc:99
edm::ParameterSetDescription::setUnknown
void setUnknown()
Definition: ParameterSetDescription.cc:39
PFSimParticleProducer::tokenEcalRecHitsEE_
edm::EDGetTokenT< EcalRecHitCollection > tokenEcalRecHitsEE_
Definition: PFSimParticleProducer.cc:95
CoreSimTrack::type
int type() const
particle type (HEP PDT convension)
Definition: CoreSimTrack.h:22
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
submitPVResolutionJobs.err
err
Definition: submitPVResolutionJobs.py:85
FSimTrack::momentum
const XYZTLorentzVector & momentum() const
Temporary (until move of SimTrack to Mathcore) - No! Actually very useful.
Definition: FSimTrack.h:209
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
PFSimParticleProducer::inputTagSim_
edm::InputTag inputTagSim_
module label for retrieving input simtrack and simvertex
Definition: PFSimParticleProducer.cc:79
FSimTrack::hcalExit
const RawParticle & hcalExit() const
The particle at HCAL exir.
Definition: FSimTrack.h:152
reco::PFTrajectoryPoint::PS1
Preshower layer 1.
Definition: PFTrajectoryPoint.h:39
edm::EventSetup::getData
bool getData(T &iHolder) const
Definition: EventSetup.h:127
RawParticle::y
double y() const
y of vertex
Definition: RawParticle.h:283
reco::PFTrajectoryPoint::ECALEntrance
ECAL front face.
Definition: PFTrajectoryPoint.h:43
objects.autophobj.motherId
motherId
Definition: autophobj.py:237
FSimTrack::noEndVertex
bool noEndVertex() const
no end vertex
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
eostools.move
def move(src, dest)
Definition: eostools.py:511
PFSimParticleProducer::tokenRecTracks_
edm::EDGetTokenT< reco::PFRecTrackCollection > tokenRecTracks_
Definition: PFSimParticleProducer.cc:91
PFSimParticleProducer::processParticles_
bool processParticles_
process particles on/off
Definition: PFSimParticleProducer.cc:105
RawParticle::e
double e() const
energy of the momentum
Definition: RawParticle.h:305
math::XYZTLorentzVector
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
PFSimParticleProducer::inputTagRecTracks_
edm::InputTag inputTagRecTracks_
Definition: PFSimParticleProducer.cc:90
reco::PFTrajectoryPoint
A PFTrack holds several trajectory points, which basically contain the position and momentum of a tra...
Definition: PFTrajectoryPoint.h:26
Exception
Definition: hltDiff.cc:245
PFSimParticleProducer::mySimEvent
std::unique_ptr< FSimEvent > mySimEvent
Definition: PFSimParticleProducer.cc:100
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
FSimTrack
Definition: FSimTrack.h:30
cms::Exception
Definition: Exception.h:70
HGCalValidator_cfi.simVertices
simVertices
Definition: HGCalValidator_cfi.py:57
FSimTrack::noMother
bool noMother() const
no mother particle
dummy
Definition: DummySelector.h:38
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
PFSimParticleProducer::getSimIDs
void getSimIDs(const TrackHandle &trackh, std::vector< unsigned > &recTrackSimID)
Definition: PFSimParticleProducer.cc:461
reco::PFTrajectoryPoint::ClosestApproach
Point of closest approach from beam axis (initial point in the case of PFSimParticle)
Definition: PFTrajectoryPoint.h:36
FSimTrack::onEcal
int onEcal() const
Definition: FSimTrack.h:111
hiRegitInitialStep_cff.recTracks
recTracks
Definition: hiRegitInitialStep_cff.py:14
ecalpyutils::hashedIndex
int hashedIndex(int ieta, int iphi)
Definition: EcalPyUtils.cc:38
edm::InputTag
Definition: InputTag.h:15
hit
Definition: SiStripHitEffFromCalibTree.cc:88