StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StMcTrack.cc
1 
229 #include <algorithm>
230 #include <assert.h>
231 #ifndef ST_NO_NAMESPACES
232 using std::find;
233 #endif
234 
235 #include "StMcTrack.hh"
236 
237 #include "StMcContainers.hh"
238 #include "StParticleTable.hh"
239 #include "StParticleDefinition.hh"
240 
241 #include "tables/St_g2t_track_Table.h"
242 #include "tables/St_particle_Table.h"
243 
244 static const char rcsid[] = "$Id: StMcTrack.cc,v 2.38 2016/05/16 23:47:09 perev Exp $";
245 
246 ClassImp(StMcTrack);
247 
248 StMcTrack::StMcTrack()
249 {
250  initToZero();
251 }
252 
253 
254 
255 StMcTrack::StMcTrack(g2t_track_st* trk) {
256  initToZero();
257  mFourMomentum.setPx(trk->p[0]);
258  mFourMomentum.setPy(trk->p[1]);
259  mFourMomentum.setPz(trk->p[2]);
260  mFourMomentum.setE(trk->e);
261  mIsShower = trk->is_shower;
262  mGeantId = trk->ge_pid;
263  assert(mGeantId>=0 && mGeantId<=0xFFFF);
264  mPdgId = trk->eg_pid;
265  mKey = trk->id;
266  mParticleDefinition = StParticleTable::instance()->findParticleByGeantId(trk->ge_pid);
267  mEventGenLabel = trk->eg_label;
268  mIsPrimary = kFALSE;
269  // The information to fill the collections
270  // is not available directly from the tables.
271  // We need to decode from trk->hit_tpc_p,
272  // trk->hit_svt_p, trk->hit_ftp_p, and trk-next_vtx_trk_p
273  // the actual Collection objects, not just the id's stored in the table.
274 }
275 
276 StMcTrack::StMcTrack(particle_st* trk) {
277  initToZero();
278  mFourMomentum.setPx(trk->phep[0]);
279  mFourMomentum.setPy(trk->phep[1]);
280  mFourMomentum.setPz(trk->phep[2]);
281  mFourMomentum.setE(trk->phep[3]);
282  mParticleDefinition = StParticleTable::instance()->findParticle(trk->idhep);
283  mPdgId = trk->idhep;
284  mIsPrimary = kFALSE;
285  // This constructor is used for particles coming from the
286  // particle table.
287 }
288 
289 
290 
291 StMcTrack::~StMcTrack() {
292  // Not owner, so we don't have to delete.
293  mIntermediateVertices.clear();
294  mTpcHits.clear();
295  mSvtHits.clear();
296  mSsdHits.clear();
297  mFtpcHits.clear();
298  mRichHits.clear();
299  mCtbHits.clear();
300  mBemcHits.clear();
301  mBprsHits.clear();
302  mBsmdeHits.clear();
303  mBsmdpHits.clear();
304  mTofHits.clear();
305  mMtdHits.clear();
306  mEemcHits.clear();
307  mEprsHits.clear();
308  mEsmduHits.clear();
309  mEsmdvHits.clear();
310  mPxlHits.clear();
311  mIstHits.clear();
312  mFgtHits.clear();
313  mEtrHits.clear();
314 }
315 
316 void StMcTrack::initToZero()
317 {
318 
319  mStartVertex = 0;
320  mStopVertex = 0;
321  mParticleDefinition = 0;
322  mParent = 0;
323  mIsShower = 0;
324  mGeantId = 0;
325  mPdgId = 0;
326  mKey = 0;
327  mEventGenLabel = 0;
328  mIsPrimary = 0;
329 }
330 
331 int StMcTrack::operator==(const StMcTrack& t) const
332 {
333  return (t.mFourMomentum == mFourMomentum &&
334  t.mStartVertex == mStartVertex &&
335  t.mStopVertex == mStopVertex );
336 }
337 
338 int StMcTrack::operator!=(const StMcTrack& t) const
339 {
340  return !(t == *this);
341 }
342 
343 ostream& operator<<(ostream& os, const StMcTrack& t)
344 {
345  if (t.particleDefinition())
346  os << "Particle : " << t.particleDefinition()->name().c_str() << endl;
347  os << "Four Momentum : " << t.fourMomentum() << endl;
348  os << "Pt : " << t.pt() << endl;
349  os << "Rapidity : " << t.rapidity() << endl;
350  os << "PseudoRapidity: " << t.pseudoRapidity() << endl;
351  os << "No. Tpc Hits: " << t.tpcHits().size() << endl;
352  os << "No. Svt Hits: " << t.svtHits().size() << endl;
353  os << "No. Ssd Hits: " << t.ssdHits().size() << endl;
354  os << "No. Ftpc Hits: " << t.ftpcHits().size() << endl;
355  os << "No. Rich Hits: " << t.richHits().size() << endl;
356  os << "No. Ctb Hits: " << t.ctbHits().size() << endl;
357  os << "No. Bemc Hits: " << t.bemcHits().size() << endl;
358  os << "No. Bprs Hits: " << t.bprsHits().size() << endl;
359  os << "No. Bsmde Hits: " << t.bsmdeHits().size() << endl;
360  os << "No. Bsmdp Hits: " << t.bsmdpHits().size() << endl;
361  os << "No. Tof Hits: " << t.tofHits().size() << endl;
362  os << "No. Mtd Hits: " << t.mtdHits().size() << endl;
363  os << "No. Eemc Hits: " << t.eemcHits().size() << endl;
364  os << "No. Eprs Hits: " << t.eprsHits().size() << endl;
365  os << "No. Esmdu Hits: " << t.esmduHits().size() << endl;
366  os << "No. Esmdv Hits: " << t.esmdvHits().size() << endl;
367  os << "No. Pxl Hits : " << t.pxlHits().size() << endl;
368  os << "No. Ist Hits : " << t.istHits().size() << endl;
369  os << "No. Fgt Hits : " << t.fgtHits().size() << endl;
370  os << "No. Fsc Hits : " << t.fscHits().size() << endl;
371  os << "No. Etr Hits : " << t.etrHits().size() << endl;
372  os << "Is Shower : " << t.isShower() << endl;
373  os << "Geant Id : " << t.geantId() << endl;
374  os << "Pdg Code : " << t.pdgId() << endl;
375  os << "Event Gen. Lab: " << t.eventGenLabel() << endl;
376  os << "Key from g2t : " << t.key() << endl;
377 
378  return os;
379 }
380 void StMcTrack::Print(Option_t *option) const {
381  TString opt(option);
382  if (opt == "") {cout << *this << endl; return;}
383  if (opt.Contains("desc",TString::kIgnoreCase)) {
384  // 0 1 2 3 4
385  // 1234567890123456789012345678901234567890
386  cout << "Particle"
387  << " Four Momentum "
388  << "Pt "
389  << "Rapidity"
390  << " Pseudo"
391  << " Id"
392  << " Pdg"
393  << "Egl"
394  << "Key"
395  << "Hit"
396  << "Tpc"
397  << "Svt"
398  << "Ssd"
399  << "Fpc"
400  << "Rch"
401  << "Ctb"
402  << "Bmc"
403  << "Bpr"
404  << "Bse"
405  << "Bsp"
406  << "Tof"
407  << "Mtd"
408  << "Emc"
409  << "Eps"
410  << "Esu"
411  << "Esv"
412  << "Pxl"
413  << "Ist"
414  << "Fgt"
415  << "Etr"
416  << "ISh" << endl;
417  return;
418  }
419  TString Name(" ");
420  if (particleDefinition()) Name = particleDefinition()->name().c_str();
421  Double_t eta = pseudoRapidity();
422  if (TMath::Abs(eta) > 999.999) eta = TMath::Sign(999.999, eta);
423  Double_t y = rapidity();
424  if (TMath::Abs(y) > 999.999) y = TMath::Sign(999.999, y);
425  cout <<
426  Form("%8s%8.3f%8.3f%8.3f%8.3f%8.3f%8.3f%8.3f%3li%6li%3li%3li%6li%3li%3li%3li%3li%3li%3li%3li%3li%3li%3li%3li%3li%3li%3li%3li%3li%3li%3li%3li%3li",
427  Name.Data(),
428  fourMomentum().x(), fourMomentum().y(), fourMomentum().z(), fourMomentum().t(),
429  pt(),
430  y,
431  eta,
432  (long int)(geantId()),
433  (long int)(pdgId()),
434  (long int)(eventGenLabel()),
435  (long int)(key()),
436  (long int)(tpcHits().size()),
437  (long int)(svtHits().size()),
438  (long int)(ssdHits().size()),
439  (long int)(ftpcHits().size()),
440  (long int)(richHits().size()),
441  (long int)(ctbHits().size()),
442  (long int)(bemcHits().size()),
443  (long int)(bprsHits().size()),
444  (long int)(bsmdeHits().size()),
445  (long int)(bsmdpHits().size()),
446  (long int)(tofHits().size()),
447  (long int)(mtdHits().size()),
448  (long int)(eemcHits().size()),
449  (long int)(eprsHits().size()),
450  (long int)(esmduHits().size()),
451  (long int)(esmdvHits().size()),
452  (long int)(pxlHits().size()),
453  (long int)(istHits().size()),
454  (long int)(fgtHits().size()),
455  (long int)(etrHits().size()),
456  (long int)(isShower()))
457  << endl;
458 }
459 void StMcTrack::setFourMomentum(const StLorentzVectorF& val) { mFourMomentum = val; }
460 
461 void StMcTrack::setStartVertex(StMcVertex* val) { mStartVertex = val; }
462 
463 void StMcTrack::setStopVertex(StMcVertex* val) { mStopVertex = val; }
464 
465 void StMcTrack::setIntermediateVertices(StPtrVecMcVertex& val) { mIntermediateVertices = val; }
466 
467 void StMcTrack::setTpcHits(StPtrVecMcTpcHit& val) { mTpcHits = val; }
468 
469 void StMcTrack::setSvtHits(StPtrVecMcSvtHit& val) { mSvtHits = val; }
470 
471 void StMcTrack::setSsdHits(StPtrVecMcSsdHit& val) { mSsdHits = val; }
472 
473 void StMcTrack::setFtpcHits(StPtrVecMcFtpcHit& val) { mFtpcHits = val; }
474 
475 void StMcTrack::setRichHits(StPtrVecMcRichHit& val) { mRichHits = val; }
476 
477 void StMcTrack::setCtbHits(StPtrVecMcCtbHit& val) { mCtbHits = val; }
478 
479 void StMcTrack::setBemcHits(StPtrVecMcCalorimeterHit& val) { mBemcHits = val; }
480 
481 void StMcTrack::setBprsHits(StPtrVecMcCalorimeterHit& val) { mBprsHits = val; }
482 
483 void StMcTrack::setBsmdeHits(StPtrVecMcCalorimeterHit& val) { mBsmdeHits = val; }
484 
485 void StMcTrack::setBsmdpHits(StPtrVecMcCalorimeterHit& val) { mBsmdpHits = val; }
486 
487 void StMcTrack::setTofHits(StPtrVecMcTofHit& val) { mTofHits = val; }
488 
489 void StMcTrack::setMtdHits(StPtrVecMcMtdHit& val) { mMtdHits = val; }
490 
491 void StMcTrack::setEemcHits(StPtrVecMcCalorimeterHit& val) { mEemcHits = val; }
492 
493 void StMcTrack::setEprsHits(StPtrVecMcCalorimeterHit& val) { mEprsHits = val; }
494 
495 void StMcTrack::setEsmduHits(StPtrVecMcCalorimeterHit& val) { mEsmduHits = val; }
496 
497 void StMcTrack::setEsmdvHits(StPtrVecMcCalorimeterHit& val) { mEsmdvHits = val; }
498 
499 void StMcTrack::setFscHits(StPtrVecMcCalorimeterHit& val) { mFscHits = val; }
500 
501 void StMcTrack::setPxlHits(StPtrVecMcPxlHit& val) { mPxlHits = val; }
502 
503 void StMcTrack::setIstHits(StPtrVecMcIstHit& val) { mIstHits = val; }
504 
505 void StMcTrack::setFgtHits(StPtrVecMcFgtHit& val) { mFgtHits = val; }
506 
507 void StMcTrack::setEtrHits(StPtrVecMcEtrHit& val) { mEtrHits = val; }
508 
509 void StMcTrack::setShower(char val) { mIsShower = val; }
510 
511 void StMcTrack::setGeantId(long val) { mGeantId = val; assert(mGeantId>=0 && mGeantId<=0xFFFF); }
512 
513 void StMcTrack::setPdgId(long val) { mPdgId = val; }
514 
515 void StMcTrack::setKey(long val) { mKey = val; }
516 
517 void StMcTrack::setEventGenLabel(long val) { mEventGenLabel = val; }
518 
519 void StMcTrack::setParent(StMcTrack* val) { mParent = val; }
520 
521 void StMcTrack::addTpcHit(StMcTpcHit* hit)
522 {
523  mTpcHits.push_back(hit);
524 }
525 
526 void StMcTrack::addFtpcHit(StMcFtpcHit* hit)
527 {
528  mFtpcHits.push_back(hit);
529 }
530 
531 void StMcTrack::addSvtHit(StMcSvtHit* hit)
532 {
533  mSvtHits.push_back(hit);
534 }
535 
536 void StMcTrack::addSsdHit(StMcSsdHit* hit)
537 {
538  mSsdHits.push_back(hit);
539 }
540 
541 void StMcTrack::addRichHit(StMcRichHit* hit)
542 {
543  mRichHits.push_back(hit);
544 }
545 
546 void StMcTrack::addCtbHit(StMcCtbHit* hit)
547 {
548  mCtbHits.push_back(hit);
549 }
550 
551 void StMcTrack::addBemcHit(StMcCalorimeterHit* hit)
552 {
553  mBemcHits.push_back(hit);
554 }
555 
556 void StMcTrack::addBprsHit(StMcCalorimeterHit* hit)
557 {
558  mBprsHits.push_back(hit);
559 }
560 
561 void StMcTrack::addBsmdeHit(StMcCalorimeterHit* hit)
562 {
563  mBsmdeHits.push_back(hit);
564 }
565 
566 void StMcTrack::addBsmdpHit(StMcCalorimeterHit* hit)
567 {
568  mBsmdpHits.push_back(hit);
569 }
570 
571 void StMcTrack::addTofHit(StMcTofHit* hit)
572 {
573  mTofHits.push_back(hit);
574 }
575 
576 void StMcTrack::addMtdHit(StMcMtdHit* hit)
577 {
578  mMtdHits.push_back(hit);
579 }
580 
581 void StMcTrack::addEemcHit(StMcCalorimeterHit* hit)
582 {
583  mEemcHits.push_back(hit);
584 }
585 
586 void StMcTrack::addEprsHit(StMcCalorimeterHit* hit)
587 {
588  mEprsHits.push_back(hit);
589 }
590 
591 void StMcTrack::addEsmduHit(StMcCalorimeterHit* hit)
592 {
593  mEsmduHits.push_back(hit);
594 }
595 
596 void StMcTrack::addEsmdvHit(StMcCalorimeterHit* hit)
597 {
598  mEsmdvHits.push_back(hit);
599 }
600 
601 void StMcTrack::addFpdHit(StMcCalorimeterHit* hit)
602 {
603  mFpdHits.push_back(hit);
604 }
605 
606 void StMcTrack::addFscHit(StMcCalorimeterHit* hit)
607 {
608  mFscHits.push_back(hit);
609 }
610 
611 void StMcTrack::addPxlHit(StMcPxlHit* hit)
612 {
613  mPxlHits.push_back(hit);
614 }
615 
616 void StMcTrack::addIstHit(StMcIstHit* hit)
617 {
618  mIstHits.push_back(hit);
619 }
620 
621 void StMcTrack::addFgtHit(StMcFgtHit* hit)
622 {
623  mFgtHits.push_back(hit);
624 }
625 
626 void StMcTrack::addEtrHit(StMcEtrHit* hit)
627 {
628  mEtrHits.push_back(hit);
629 }
630 
631 // Not very elegant. Maybe should have kept all collections as
632 // vector<StMcHit*> so that then we could have used the same
633 // routine for all of them...
634 void StMcTrack::removeTpcHit(StMcTpcHit* hit)
635 {
636  StMcTpcHitIterator iter = find (mTpcHits.begin(), mTpcHits.end(), hit);
637  if (iter != mTpcHits.end()) {
638  mTpcHits.erase(iter);
639  }
640 }
641 
642 void StMcTrack::removeFtpcHit(StMcFtpcHit* hit)
643 {
644  StMcFtpcHitIterator iter = find (mFtpcHits.begin(), mFtpcHits.end(),hit);
645  if (iter != mFtpcHits.end()) {
646  mFtpcHits.erase(iter);
647  }
648 }
649 
650 void StMcTrack::removeSvtHit(StMcSvtHit* hit)
651 {
652  StMcSvtHitIterator iter = find(mSvtHits.begin(), mSvtHits.end(), hit);
653  if (iter != mSvtHits.end()) {
654  mSvtHits.erase(iter);
655  }
656 }
657 
658 void StMcTrack::removeSsdHit(StMcSsdHit* hit)
659 {
660  StMcSsdHitIterator iter = find(mSsdHits.begin(), mSsdHits.end(), hit);
661  if (iter != mSsdHits.end()) {
662  mSsdHits.erase(iter);
663  }
664 }
665 
666 void StMcTrack::removeRichHit(StMcRichHit* hit)
667 {
668  StMcRichHitIterator iter = find(mRichHits.begin(), mRichHits.end(), hit);
669  if (iter != mRichHits.end()){
670  mRichHits.erase(iter);
671  }
672 }
673 
674 void StMcTrack::removeCtbHit(StMcCtbHit* hit)
675 {
676  StMcCtbHitIterator iter = find(mCtbHits.begin(), mCtbHits.end(), hit);
677  if (iter != mCtbHits.end()){
678  mCtbHits.erase(iter);
679  }
680 }
681 
682 void StMcTrack::removeCalorimeterHit(StPtrVecMcCalorimeterHit& vch, StMcCalorimeterHit* hit)
683 {
684  StMcCalorimeterHitIterator iter = find(vch.begin(), vch.end(), hit);
685  if (iter != vch.end()) {
686  vch.erase(iter);
687  }
688 
689 }
690 void StMcTrack::removeBemcHit(StMcCalorimeterHit* hit)
691 {
692  removeCalorimeterHit(mBemcHits, hit);
693 }
694 void StMcTrack::removeBprsHit(StMcCalorimeterHit* hit)
695 {
696  removeCalorimeterHit(mBprsHits, hit);
697 }
698 void StMcTrack::removeBsmdeHit(StMcCalorimeterHit* hit)
699 {
700  removeCalorimeterHit(mBsmdeHits, hit);
701 }
702 void StMcTrack::removeBsmdpHit(StMcCalorimeterHit* hit)
703 {
704  removeCalorimeterHit(mBsmdpHits, hit);
705 }
706 
707 void StMcTrack::removeTofHit(StMcTofHit* hit)
708 {
709  StMcTofHitIterator iter = find(mTofHits.begin(), mTofHits.end(), hit);
710  if (iter != mTofHits.end()){
711  mTofHits.erase(iter);
712  }
713 }
714 
715 void StMcTrack::removeMtdHit(StMcMtdHit* hit)
716 {
717  StMcMtdHitIterator iter = find(mMtdHits.begin(), mMtdHits.end(), hit);
718  if (iter != mMtdHits.end()){
719  mMtdHits.erase(iter);
720  }
721 }
722 
723 void StMcTrack::removeEemcHit(StMcCalorimeterHit* hit)
724 {
725  removeCalorimeterHit(mEemcHits, hit);
726 }
727 
728 void StMcTrack::removeEprsHit(StMcCalorimeterHit* hit)
729 {
730  removeCalorimeterHit(mEprsHits, hit);
731 }
732 
733 void StMcTrack::removeEsmduHit(StMcCalorimeterHit* hit)
734 {
735  removeCalorimeterHit(mEsmduHits, hit);
736 }
737 
738 void StMcTrack::removeEsmdvHit(StMcCalorimeterHit* hit)
739 {
740  removeCalorimeterHit(mEsmdvHits, hit);
741 }
742 
743 void StMcTrack::removePxlHit(StMcPxlHit* hit)
744 {
745  StMcPxlHitIterator iter = find (mPxlHits.begin(), mPxlHits.end(),hit);
746  if (iter != mPxlHits.end()) {
747  mPxlHits.erase(iter);
748  }
749 }
750 
751 void StMcTrack::removeIstHit(StMcIstHit* hit)
752 {
753  StMcIstHitIterator iter = find (mIstHits.begin(), mIstHits.end(),hit);
754  if (iter != mIstHits.end()) {
755  mIstHits.erase(iter);
756  }
757 }
758 
759 
760 void StMcTrack::removeFgtHit(StMcFgtHit* hit)
761 {
762  StMcFgtHitIterator iter = find (mFgtHits.begin(), mFgtHits.end(),hit);
763  if (iter != mFgtHits.end()) {
764  mFgtHits.erase(iter);
765  }
766 }
767 
768 void StMcTrack::removeEtrHit(StMcEtrHit* hit)
769 {
770  StMcEtrHitIterator iter = find (mEtrHits.begin(), mEtrHits.end(),hit);
771  if (iter != mEtrHits.end()) {
772  mEtrHits.erase(iter);
773  }
774 }
775 
776 //void StMcTrack::setTopologyMap(StTrackTopologyMap& val) { mTopologyMap = val; }
777 StParticleDefinition* StMcTrack::particleDefinition() {
778  if (mParticleDefinition) return mParticleDefinition;
779  if (mGeantId > 0) mParticleDefinition = StParticleTable::instance()->findParticleByGeantId(mGeantId);
780  if (mParticleDefinition) return mParticleDefinition;
781  if (mPdgId) mParticleDefinition = StParticleTable::instance()->findParticle(mPdgId);
782  return mParticleDefinition;
783 }
784 //--------------------------------------------------------------------------------
785 const StPtrVecMcHit *StMcTrack::Hits(StDetectorId Id) const {
786  StPtrVecMcHit *coll = 0;
787  switch (Id) {
788  case kTpcId: coll = (StPtrVecMcHit *) &mTpcHits; break;
789  case kSvtId: coll = (StPtrVecMcHit *) &mSvtHits; break;
790  case kRichId: coll = (StPtrVecMcHit *) &mRichHits; break;
791  case kFtpcWestId:
792  case kFtpcEastId: coll = (StPtrVecMcHit *) &mFtpcHits; break;
793  case kTofId: coll = (StPtrVecMcHit *) &mTofHits; break;
794  case kMtdId: coll = (StPtrVecMcHit *) &mMtdHits; break;
795  case kCtbId: coll = (StPtrVecMcHit *) &mCtbHits; break;
796  case kSsdId: coll = (StPtrVecMcHit *) &mSsdHits; break;
797  case kBarrelEmcTowerId: break;
798  case kBarrelEmcPreShowerId: break;
799  case kBarrelSmdEtaStripId: break;
800  case kBarrelSmdPhiStripId: break;
801  case kEndcapEmcTowerId: break;
802  case kEndcapEmcPreShowerId: break;
803  case kEndcapSmdUStripId: break;
804  case kEndcapSmdVStripId: break;
805  case kZdcWestId:
806  case kZdcEastId: break;
807  case kMwpcWestId:
808  case kMwpcEastId: break;
809  case kPhmdCpvId: break;
810  case kPhmdId: break;
811  case kPxlId: coll = (StPtrVecMcHit *) &mPxlHits; break;
812  case kIstId: coll = (StPtrVecMcHit *) &mIstHits; break;
813  case kFgtId: coll = (StPtrVecMcHit *) &mFgtHits; break;
814  case kEtrId: coll = (StPtrVecMcHit *) &mEtrHits; break;
815  default: break;
816  };
817  return coll;
818 }
819 //--------------------------------------------------------------------------------
820 const StPtrVecMcCalorimeterHit *StMcTrack::CalorimeterHits(StDetectorId Id) const {
821  StPtrVecMcCalorimeterHit *coll = 0;
822  switch (Id) {
823  case kTpcId: break;
824  case kSvtId: break;
825  case kRichId: break;
826  case kFtpcWestId:
827  case kFtpcEastId: break;
828  case kTofId: break;
829  case kMtdId: break;
830  case kCtbId: break;
831  case kSsdId: break;
832  case kBarrelEmcTowerId: coll = (StPtrVecMcCalorimeterHit *) &mBemcHits; break;
833  case kBarrelEmcPreShowerId: coll = (StPtrVecMcCalorimeterHit *) &mBprsHits; break;
834  case kBarrelSmdEtaStripId: coll = (StPtrVecMcCalorimeterHit *) &mBsmdeHits; break;
835  case kBarrelSmdPhiStripId: coll = (StPtrVecMcCalorimeterHit *) &mBsmdpHits; break;
836  case kEndcapEmcTowerId: coll = (StPtrVecMcCalorimeterHit *) &mEemcHits; break;
837  case kEndcapEmcPreShowerId: coll = (StPtrVecMcCalorimeterHit *) &mEprsHits; break;
838  case kEndcapSmdUStripId: coll = (StPtrVecMcCalorimeterHit *) &mEsmduHits; break;
839  case kEndcapSmdVStripId: coll = (StPtrVecMcCalorimeterHit *) &mEsmdvHits; break;
840  case kZdcWestId:
841  case kZdcEastId: break;
842  case kMwpcWestId:
843  case kMwpcEastId: break;
844  case kPhmdCpvId: break;
845  case kPhmdId: break;
846  case kPxlId: break;
847  case kIstId: break;
848  case kFgtId: break;
849  case kEtrId: break;
850  default: break;
851  };
852  return coll;
853 }
Monte Carlo Track class All information on a simulated track is stored in this class: kinematics...
Definition: StMcTrack.hh:144