17 #include "StEventMaker/StEventMaker.h"
18 #include "StEventMaker/StRootEventManager.hh"
19 #include "PhysicalConstants.h"
20 #include "SystemOfUnits.h"
21 #include "StEventTypes.h"
22 #include "StMessMgr.h"
23 #include "StMemoryInfo.hh"
25 #include "StGlobals.hh"
26 #include "StEvtHddr.h"
27 #include "StTpcDb/StTpcDb.h"
28 #include "StDetectorDbMaker/StDetectorDbRichScalers.h"
29 #include "StDetectorDbMaker/StDetectorDbBeamInfo.h"
30 #include "StDetectorDbMaker/StDetectorDbTriggerID.h"
31 #include "StDetectorDbMaker/St_trigDetSumsC.h"
32 #include "tables/St_trgOfflineFilter_Table.h"
33 #include "StDAQMaker/StDAQReader.h"
34 #include "StPrompt.hh"
38 #include "StarMagField.h"
39 #include "TUnixTime.h"
40 #if !defined(ST_NO_NAMESPACES)
47 #if defined(ST_NO_TEMPLATE_DEF_ARGS)
48 #define StVector(T) vector<T, allocator<T> >
50 #define StVector(T) vector<T>
53 static const char rcsid[] =
"$Id: StEventMaker.cxx,v 2.97 2014/01/08 21:10:22 fisyak Exp $";
60 if(title) SetTitle(title);
62 mEventManager->setMaker(
this);
64 doLoadTpcHits = kTRUE;
65 doLoadFtpcHits = kTRUE;
66 doLoadSvtHits = kTRUE;
67 doLoadSsdHits = kTRUE;
68 doLoadTptTracks = kFALSE;
69 doLoadEstTracks = kTRUE;
70 doPrintEventInfo = kFALSE;
71 doPrintMemoryInfo = kFALSE;
72 doPrintCpuInfo = kFALSE;
73 mCreateEmptyInstance = kFALSE;
76 StEventMaker::~StEventMaker()
82 StEventMaker::Clear(
const char*)
89 StEventMaker::eventManager() {
return mEventManager;};
91 StEventMaker::event() {
return mCurrentEvent;};
101 return StMaker::Init();
120 if (doPrintCpuInfo) timer.start();
131 if (TString(
GetName()) ==
"0Event") mCreateEmptyInstance = kTRUE;
132 else mCreateEmptyInstance = kFALSE;
136 Int_t status = makeEvent();
138 gMessMgr->Warning() <<
"StEventMaker::Make(): error in makeEvent(), no StEvent object created." << endm;
140 mEventManager->closeEvent();
145 if (doPrintEventInfo) printEventInfo();
147 StMemoryInfo::instance()->snapshot();
148 StMemoryInfo::instance()->print();
150 if (doPrintCpuInfo) {
152 LOG_DEBUG <<
"CPU time for StEventMaker::Make(): "
153 << timer.elapsedTime() <<
" sec\n" << endm;
160 StEventMaker::getStEventInstance()
164 gMessMgr->Info() <<
"StEventMaker::getStEventInstance(): existing instance found, no new object created." << endm;
175 StEventMaker::makeEvent()
183 if (! mCreateEmptyInstance && mCurrentEvent)
return kStOK;
191 mCurrentEvent = getStEventInstance();
196 dst_TrgDet_st* dstTriggerDetectors = mEventManager->returnTable_dst_TrgDet(nrows);
197 dst_L0_Trigger_st* dstL0Trigger = mEventManager->returnTable_dst_L0_Trigger(nrows);
198 dst_L1_Trigger_st* dstL1Trigger = mEventManager->returnTable_dst_L1_Trigger(nrows);
200 evinfo->setType(
"Collision");
202 evinfo->setId(GetEventNumber());
203 evinfo->setTime(TUnixTime::Convert(GetDateTime(),1));
204 mCurrentEvent->setInfo(evinfo);
206 Float_t xlocal[3] = {0,0,0}, bfield[3] = {0,0,0};
207 if (StarMagField::Instance()) StarMagField::Instance()->BField(xlocal,bfield);
209 evsum->setMagneticField(bfield[2]);
210 mCurrentEvent->setSummary(evsum);
217 if (!mCurrentEvent->triggerData()) {
222 assert(os->IsOwner());
224 mCurrentEvent->setTriggerData(pTrg);
227 theInfo->setBunchCrossingNumber(pTrg->bunchCounterLow(),0);
228 theInfo->setBunchCrossingNumber(pTrg->bunchCounterHigh(),1);
232 header->SetBunchCrossingNumber(pTrg->bunchCounterLow(),pTrg->bunchCounterHigh());
243 if (!mCurrentEvent->triggerDetectorCollection()) {
244 if (mCurrentEvent->triggerData() && mCurrentEvent->triggerData()->year() >= 2003)
246 else if (dstTriggerDetectors)
251 if (!l0t) mCurrentEvent->setL0Trigger((l0t =
new StL0Trigger()));
252 if (mCurrentEvent->triggerData() && mCurrentEvent->triggerData()->year() >= 2003){
253 l0t->set(mCurrentEvent->triggerData());
256 l0t->set(dstL0Trigger );
257 l0t->set(dstTriggerDetectors);
260 if (dstL0Trigger && dstL1Trigger && !mCurrentEvent->l1Trigger())
261 mCurrentEvent->setL1Trigger(
new StL1Trigger(*dstL0Trigger, *dstL1Trigger));
267 if (!triggerIdColl) {
268 mCurrentEvent->setTriggerIdCollection((triggerIdColl =
272 triggerIdColl->setL1((trigId[0] =
new StTriggerId()));
273 triggerIdColl->setL2((trigId[1] =
new StTriggerId()));
274 triggerIdColl->setL3((trigId[2] =
new StTriggerId()));
276 St_trigDetSums *table = 0;
278 if ( St_trigDetSumsC::GetInstance()) {
279 table =
new St_trigDetSums(*((St_trigDetSums *)St_trigDetSumsC::GetInstance()->Table()));
280 table->Shunt(mCurrentEvent);
283 TDataSet *set = GetDataSet(
"inputStream_DAQ");
284 if (set) table = (St_trigDetSums *) set->
Find(
"trigDetSums");
286 gMessMgr->Info(
"get trigDetSums from inputStream_DAQ");
287 St_trigDetSums *copytable =
new St_trigDetSums(*table);
288 copytable->Shunt(mCurrentEvent);
291 table = (St_trigDetSums *) GetDataBase(
"Calibrations/rich/trigDetSums");
292 if ( table) { gMessMgr->Info(
"get trigDetSums from Calibrations/rich/trigDetSums");}
298 St_DataSet *daqReaderSet=GetDataSet(
"StDAQReader");
302 if (!trigSummary) gMessMgr->Warning(
"StEventMaker: No StTrigSummary found");
305 if (!dbTriggerId) gMessMgr->Warning(
"StEventMaker: No StDetectorDbTriggerID found");
307 if (trigSummary && dbTriggerId) {
311 if (mCurrentEvent->runId()> 12000000) {
314 mask = (
unsigned int) trigSummary->L1summary[1];
316 mask += (
unsigned int) trigSummary->L1summary[0];
317 trigId[0]->setMask(mask);
319 mask = (
unsigned int) trigSummary->L2summary[1];
321 mask += (
unsigned int) trigSummary->L2summary[0];
322 trigId[1]->setMask(mask);
324 mask = (
unsigned int) trigSummary->L3summary[1];
326 mask += (
unsigned int) trigSummary->L3summary[0];
327 trigId[2]->setMask(mask);
333 trigId[0]->setMask(trigSummary->L1summary[0]);
334 trigId[1]->setMask(trigSummary->L2summary[0]);
335 trigId[2]->setMask(trigSummary->L3summary[0]);
340 for(
unsigned int trglevel=0 ; trglevel < 3 ; trglevel++){
344 for (
unsigned int iTrg = 0; iTrg < dbTriggerId->
getIDNumRows() ; iTrg++){
346 if ( whichTrig->mask() & ((uint64_t)1 << (dbTriggerId->getDaqTrgId(iTrg)) ) ) {
350 UInt_t offlineId = dbTriggerId->getOfflineTrgId(iTrg);
351 if (mCurrentEvent->triggerData()){
352 if (mCurrentEvent->triggerData()->errorFlag()>0) {
354 printf(
"StEventMaker: StTriggerData found partial corruption, thus adding 9000 to offline trigger id =%d\n",offlineId);
358 whichTrig->addTrigger(
361 dbTriggerId->getTrgVersion(iTrg),
362 dbTriggerId->getTrgNameVersion(iTrg),
363 dbTriggerId->getThreashVersion(iTrg),
364 dbTriggerId->getPsVersion(iTrg)
373 int checkRun = dbTriggerId->getAdditionalTriggerIDRunNumber(iTrg);
374 int checkEvent = dbTriggerId->getAdditionalTriggerIDEventNumber(iTrg);
376 if (mCurrentEvent->runId() == checkRun &&
377 mCurrentEvent->id() == checkEvent )
379 whichTrig->addTrigger(
380 dbTriggerId->getAdditionalTriggerIDOfflineTrgId(iTrg),
381 dbTriggerId->getAdditionalTriggerIDTrgVersion(iTrg),
382 dbTriggerId->getAdditionalTriggerIDTrgNameVersion(iTrg),
383 dbTriggerId->getAdditionalTriggerIDThreashVersion(iTrg),
384 dbTriggerId->getAdditionalTriggerIDPsVersion(iTrg)
392 triggerIdColl->setNominal(trigId[idx-1]);
397 if (mCurrentEvent->triggerData() && mCurrentEvent->runId()>7000000 && mCurrentEvent->runId()<8000000) {
398 gMessMgr->Info(
"StEventMaker::Run 6, expanding L3 trigger id");
401 map<string,StL2TriggerResultType> mapDbToStL2TriggerResultType;
403 mapDbToStL2TriggerResultType[
"l2Trg2006BEMCGammaPi"] = l2Trg2006BEMCGammaPi;
404 mapDbToStL2TriggerResultType[
"l2Trg2006BEMCGammaPiRandom"] = l2Trg2006BEMCGammaPiRandom;
405 mapDbToStL2TriggerResultType[
"l2Trg2006EEMCGammaPi"] = l2Trg2006EEMCGammaPi;
406 mapDbToStL2TriggerResultType[
"l2Trg2006EEMCGammaPiRandom"] = l2Trg2006EEMCGammaPiRandom;
407 mapDbToStL2TriggerResultType[
"l2Trg2006MonoJet"] = l2Trg2006MonoJet;
408 mapDbToStL2TriggerResultType[
"l2Trg2006DiJet"] = l2Trg2006DiJet;
409 mapDbToStL2TriggerResultType[
"l2Trg2006RandomJet"] = l2Trg2006RandomJet;
415 triggerIdColl->setL3Expanded(whichTrig);
417 triggerIdColl->setNominal(whichTrig);
420 unsigned int oldtid = dbTriggerId->getTrigL3ExpandedL3TrgId(irow);
421 unsigned int newtid = dbTriggerId->getTrigL3ExpandedL3ExpandedTrgId(irow);
424 string testString = string(dbTriggerId->getTrigL3ExpandedL2TriggerResultType(irow));
427 map<string,StL2TriggerResultType>::const_iterator p =
428 mapDbToStL2TriggerResultType.find(
431 if (p != mapDbToStL2TriggerResultType.end()) {
432 StL2TriggerResultType l2Test = (*p).second;
433 if (whichTrig->isTrigger(oldtid) &&
434 mCurrentEvent->triggerData()->isL2Triggered(l2Test)) {
436 whichTrig->addTrigger(newtid,
437 whichTrig->version(oldtid),
438 whichTrig->nameVersion(oldtid),
439 whichTrig->thresholdVersion(oldtid),
440 whichTrig->prescaleVersion(oldtid)
447 if (triggerIdColl->nominal()) triggerIdColl->setNominal(
new StTriggerId(*(triggerIdColl->nominal())));
448 if (StTpcDb::instance()) {
449 Int_t TriggerId = -1;
451 static Int_t goodIds[5] = {9200,9201,310811,310812,310813};
452 const StTriggerId *nominal = triggerIdColl->nominal();
455 for (Int_t i = 0; i < 5; i++) {
456 if (nominal->isTrigger(goodIds[i])) {TriggerId = goodIds[i];
break;}
460 StTpcDb::instance()->SetTriggerId(TriggerId);
464 Int_t FiltTrg = IAttr(
"FiltTrg");
466 bool unmatched =
true;
467 St_trgOfflineFilter* flaggedTrgs =
468 (St_trgOfflineFilter *) GetDataBase(
"Calibrations/trg/trgOfflineFilter");
470 LOG_ERROR <<
"Could not find Calibrations/trg/trgOfflineFilter in database" << endm;
475 vector<unsigned int> idVec = tr->triggerIds();
476 long nFlaggedTrgs = flaggedTrgs->GetNRows();
477 for (
unsigned int iTrg = 0;
478 unmatched && (iTrg < idVec.size()) ; iTrg++) {
479 trgOfflineFilter_st* flaggedTrg = flaggedTrgs->GetTable();
480 for (
long iFlaggedTrg = 0;
481 unmatched && iFlaggedTrg < nFlaggedTrgs; iFlaggedTrg++, flaggedTrg++) {
482 unmatched = (idVec[iTrg] != flaggedTrg->trigid);
486 if ((unmatched && FiltTrg>0) ||
487 (!unmatched && FiltTrg<0)) {
488 LOG_INFO <<
"Event failed trigger filter...skipping" << endm;
497 gMessMgr->Warning(
"StEventMaker: No StDAQReader found");
506 if (theInfo && dstTriggerDetectors) {
507 theInfo->setBunchCrossingNumber(dstTriggerDetectors->bunchXing_lo,0);
508 theInfo->setBunchCrossingNumber(dstTriggerDetectors->bunchXing_hi,1);
515 mCurrentEvent->setTriggerMask(header->GetTriggerMask());
516 if (mCurrentEvent->info())
517 mCurrentEvent->info()->setEventSize(header->GetEventSize());
527 mCurrentRunInfo->setRunId(mCurrentEvent->runId());
528 mCurrentRunInfo->setProductionTime(time(0));
529 mCurrentRunInfo->setProductionVersion(getenv(
"STAR_VERSION"));
530 if (mCurrentEvent->summary())
531 mCurrentRunInfo->setMagneticField(mCurrentEvent->summary()->magneticField());
533 mCurrentRunInfo->setTpcDriftVelocity(east, gStTpcDb->DriftVelocity());
534 mCurrentRunInfo->setTpcDriftVelocity(west, gStTpcDb->DriftVelocity());
537 mCurrentRunInfo->setCenterOfMassEnergy(dbBeamInfo->getBlueEnergy() + dbBeamInfo->getYellowEnergy());
538 mCurrentRunInfo->setBeamMassNumber(blue, dbBeamInfo->getBlueMassNumber());
539 mCurrentRunInfo->setBeamMassNumber(yellow, dbBeamInfo->getYellowMassNumber());
540 mCurrentRunInfo->setBeamEnergy(blue, dbBeamInfo->getBlueEnergy());
541 mCurrentRunInfo->setBeamEnergy(yellow, dbBeamInfo->getYellowEnergy());
542 mCurrentRunInfo->setInitialBeamIntensity(blue, dbBeamInfo->getBlueIntensity());
543 mCurrentRunInfo->setInitialBeamIntensity(yellow, dbBeamInfo->getYellowIntensity());
544 mCurrentRunInfo->setBeamLifeTime(blue, dbBeamInfo->getBlueLifeTime());
545 mCurrentRunInfo->setBeamLifeTime(yellow, dbBeamInfo->getYellowLifeTime());
546 mCurrentRunInfo->setBeamFillNumber(blue, dbBeamInfo->getBlueFillNumber());
547 mCurrentRunInfo->setBeamFillNumber(yellow, dbBeamInfo->getYellowFillNumber());
550 mCurrentRunInfo->setZdcWestRate(richScalers->getZDCWest());
551 mCurrentRunInfo->setZdcEastRate(richScalers->getZDCEast());
552 mCurrentRunInfo->setZdcCoincidenceRate(richScalers->getZDCX());
553 mCurrentRunInfo->setBackgroundRate(richScalers->getMult());
554 mCurrentRunInfo->setL0RateToRich(richScalers->getL0());
555 mCurrentRunInfo->setBbcCoincidenceRate(richScalers->getBBCX());
556 mCurrentRunInfo->setBbcEastRate(richScalers->getBBCEast());
557 mCurrentRunInfo->setBbcWestRate(richScalers->getBBCWest());
558 mCurrentRunInfo->setBbcBlueBackgroundRate(richScalers->getBBCBlueBkg());
559 mCurrentRunInfo->setBbcYellowBackgroundRate(richScalers->getBBCYellowBkg());
563 mCurrentEvent->setRunInfo(mCurrentRunInfo);
569 mCurrentEvent->addDetectorState(
new StDetectorState(kRichId, richScalers->getRichHVStatus()));
575 StEventMaker::printEventInfo()
577 LOG_INFO <<
"*********************************************************" << endm;
578 LOG_INFO <<
"* StEvent Information *" << endm;
579 LOG_INFO <<
"*********************************************************" << endm;
581 LOG_INFO <<
"---------------------------------------------------------" << endm;
582 LOG_INFO <<
"StEvent at " << (
void*) mCurrentEvent << endm;
583 LOG_INFO <<
"---------------------------------------------------------" << endm;
585 mCurrentEvent->Dump();
589 LOG_INFO <<
"---------------------------------------------------------" << endm;
590 LOG_INFO <<
"StRunInfo at " << (
void*) mCurrentEvent->runInfo() << endm;
591 LOG_INFO <<
"---------------------------------------------------------" << endm;
592 if (mCurrentEvent->runInfo())
593 mCurrentEvent->runInfo()->Dump();
595 LOG_INFO <<
"---------------------------------------------------------" << endm;
596 LOG_INFO <<
"StEventInfo at " << (
void*) mCurrentEvent->info() << endm;
597 LOG_INFO <<
"---------------------------------------------------------" << endm;
598 if (mCurrentEvent->info())
599 mCurrentEvent->info()->Dump();
601 LOG_INFO <<
"---------------------------------------------------------" << endm;
602 LOG_INFO <<
"StEventSummary at " << (
void*) (mCurrentEvent->summary()) << endm;
603 LOG_INFO <<
"---------------------------------------------------------" << endm;
604 if (mCurrentEvent->summary()) mCurrentEvent->summary()->Dump();
605 if (mCurrentEvent->summary()) {
608 LOG_INFO <<
"--> StEventSummary quasi-histograms" << endm;
609 LOG_INFO <<
"--> StEventSummary quasi-histogram -> # of tracks vs. eta" << endm;
610 for (k=0; k<evtsum->numberOfBins(); k++) {
611 LOG_INFO << k <<
"\t[" << evtsum->lowerEdgeEtaBin(k)
612 <<
" - " << evtsum->upperEdgeEtaBin(k)
613 <<
"] : \t" << evtsum->tracksInEtaBin(k) << endm;
615 LOG_INFO <<
"--> StEventSummary quasi-histogram -> # of tracks vs. phi" << endm;
616 for (k=0; k<evtsum->numberOfBins(); k++) {
617 LOG_INFO << k <<
"\t[" << evtsum->lowerEdgePhiBin(k)
618 <<
" - " << evtsum->upperEdgePhiBin(k)
619 <<
"] : \t" << evtsum->tracksInPhiBin(k) << endm;
621 LOG_INFO <<
"--> StEventSummary quasi-histogram -> # of tracks vs. pt" << endm;
622 for (k=0; k<evtsum->numberOfBins(); k++) {
623 LOG_INFO << k <<
"\t[" << evtsum->lowerEdgePtBin(k)
624 <<
" - " << evtsum->upperEdgePtBin(k)
625 <<
"] : \t" << evtsum->tracksInPtBin(k) << endm;
627 LOG_INFO <<
"--> StEventSummary quasi-histogram -> energy vs. eta" << endm;
628 for (k=0; k<evtsum->numberOfBins(); k++) {
629 LOG_INFO << k <<
"\t[" << evtsum->lowerEdgeEtaBin(k)
630 <<
" - " << evtsum->upperEdgeEtaBin(k)
631 <<
"] : \t" << evtsum->energyInEtaBin(k) << endm;
633 LOG_INFO <<
"--> StEventSummary quasi-histogram -> energy vs. phi" << endm;
634 for (k=0; k<evtsum->numberOfBins(); k++) {
635 LOG_INFO << k <<
"\t[" << evtsum->lowerEdgePhiBin(k)
636 <<
" - " << evtsum->upperEdgePhiBin(k)
637 <<
"] : \t" << evtsum->energyInPhiBin(k) << endm;
640 LOG_INFO <<
"---------------------------------------------------------" << endm;
641 LOG_INFO <<
"StL0Trigger at "
642 << (
void*) (mCurrentEvent->l0Trigger()) << endm;
643 LOG_INFO <<
"---------------------------------------------------------" << endm;
644 if (mCurrentEvent->l0Trigger()) mCurrentEvent->l0Trigger()->Dump();
646 LOG_INFO <<
"---------------------------------------------------------" << endm;
647 LOG_INFO <<
"StTriggerDetectorCollection at "
648 << (
void*) (mCurrentEvent->triggerDetectorCollection()) << endm;
649 LOG_INFO <<
"---------------------------------------------------------" << endm;
650 if (mCurrentEvent->triggerDetectorCollection())
651 mCurrentEvent->triggerDetectorCollection()->Dump();
653 if (mCurrentEvent->triggerDetectorCollection()) {
654 LOG_INFO <<
"---------------------------------------------------------" << endm;
655 LOG_INFO <<
"StCtbTriggerDetector" << endm;
656 LOG_INFO <<
"---------------------------------------------------------" << endm;
657 mCurrentEvent->triggerDetectorCollection()->ctb().Dump();
659 LOG_INFO <<
"---------------------------------------------------------" << endm;
660 LOG_INFO <<
"StMwcTriggerDetector" << endm;
661 LOG_INFO <<
"---------------------------------------------------------" << endm;
662 mCurrentEvent->triggerDetectorCollection()->mwc().Dump();
664 LOG_INFO <<
"---------------------------------------------------------" << endm;
665 LOG_INFO <<
"StVpdTriggerDetector" << endm;
666 LOG_INFO <<
"---------------------------------------------------------" << endm;
667 mCurrentEvent->triggerDetectorCollection()->vpd().Dump();
669 LOG_INFO <<
"---------------------------------------------------------" << endm;
670 LOG_INFO <<
"StZdcTriggerDetector" << endm;
671 LOG_INFO <<
"---------------------------------------------------------" << endm;
672 mCurrentEvent->triggerDetectorCollection()->zdc().Dump();
675 LOG_INFO <<
"---------------------------------------------------------" << endm;
676 LOG_INFO <<
"StSPtrVecTrackDetectorInfo" << endm;
677 LOG_INFO <<
"Dumping first element in collection only (if available). " << endm;
678 LOG_INFO <<
"---------------------------------------------------------" << endm;
679 LOG_INFO <<
"collection size = "
680 << mCurrentEvent->trackDetectorInfo().size() << endm;
682 if (mCurrentEvent->trackDetectorInfo().size()) {
683 LOG_INFO <<
"---------------------------------------------------------" << endm;
684 LOG_INFO <<
"StTrackDetectorInfo at "
685 << (
void*) mCurrentEvent->trackDetectorInfo()[0] << endm;
686 LOG_INFO <<
"---------------------------------------------------------" << endm;
687 mCurrentEvent->trackDetectorInfo()[0]->Dump();
690 LOG_INFO <<
"---------------------------------------------------------" << endm;
691 LOG_INFO <<
"StSPtrVecTrackNode" << endm;
692 LOG_INFO <<
"Dumping first element in collection only (if available). " << endm;
693 LOG_INFO <<
"All tracks in the first node are printed separately " << endm;
694 LOG_INFO <<
"after the node info. " << endm;
695 LOG_INFO <<
"---------------------------------------------------------" << endm;
696 LOG_INFO <<
"collection size = "
697 << mCurrentEvent->trackNodes().size() << endm;
700 if (mCurrentEvent->trackNodes().size()) {
701 LOG_INFO <<
"# tracks in first element = "
702 << mCurrentEvent->trackNodes()[0]->entries() << endm;
703 LOG_INFO <<
"---------------------------------------------------------" << endm;
704 LOG_INFO <<
"StTrackNode at "
705 << (
void*) mCurrentEvent->trackNodes()[0] << endm;
706 LOG_INFO <<
"---------------------------------------------------------" << endm;
707 mCurrentEvent->trackNodes()[0]->Dump();
708 for (i=0; i<mCurrentEvent->trackNodes()[0]->entries(); i++)
709 printTrackInfo(mCurrentEvent->trackNodes()[0]->track(i));
712 LOG_INFO <<
"---------------------------------------------------------" << endm;
713 LOG_INFO <<
"StSPtrVecPrimaryVertex" << endm;
714 LOG_INFO <<
"Dumping first element in collection only (if available). " << endm;
715 LOG_INFO <<
"The first daughter track (primary track) in the first " << endm;
716 LOG_INFO <<
"vertex is printed separately after the vertex info. " << endm;
717 LOG_INFO <<
"---------------------------------------------------------" << endm;
718 LOG_INFO <<
"collection size = "
719 << mCurrentEvent->numberOfPrimaryVertices() << endm;
721 if (mCurrentEvent->numberOfPrimaryVertices()) {
722 LOG_INFO <<
"# primary tracks in first element = "
723 << mCurrentEvent->primaryVertex()->numberOfDaughters() << endm;
724 LOG_INFO <<
"---------------------------------------------------------" << endm;
725 LOG_INFO <<
"StPrimaryVertex at "
726 << (
void*) mCurrentEvent->primaryVertex() << endm;
727 LOG_INFO <<
"---------------------------------------------------------" << endm;
728 mCurrentEvent->primaryVertex()->Dump();
729 if (mCurrentEvent->primaryVertex()->numberOfDaughters())
730 printTrackInfo(mCurrentEvent->primaryVertex()->daughter(0));
733 LOG_INFO <<
"---------------------------------------------------------" << endm;
734 LOG_INFO <<
"StSPtrVecCalibrationVertex" << endm;
735 LOG_INFO <<
"Dumping first element in collection only (if available). " << endm;
736 LOG_INFO <<
"---------------------------------------------------------" << endm;
737 LOG_INFO <<
"collection size = "
738 << mCurrentEvent->numberOfCalibrationVertices() << endm;
740 if (mCurrentEvent->numberOfCalibrationVertices())
741 mCurrentEvent->calibrationVertex(0)->Dump();
743 LOG_INFO <<
"---------------------------------------------------------" << endm;
744 LOG_INFO <<
"StSPtrVecV0Vertex" << endm;
745 LOG_INFO <<
"Dumping first element in collection only (if available). " << endm;
746 LOG_INFO <<
"---------------------------------------------------------" << endm;
747 LOG_INFO <<
"collection size = "
748 << mCurrentEvent->v0Vertices().size() << endm;
750 if (mCurrentEvent->v0Vertices().size()) {
751 LOG_INFO <<
"---------------------------------------------------------" << endm;
752 LOG_INFO <<
"StV0Vertex at "
753 << (
void*) mCurrentEvent->v0Vertices()[0] << endm;
754 LOG_INFO <<
"---------------------------------------------------------" << endm;
755 mCurrentEvent->v0Vertices()[0]->Dump();
758 LOG_INFO <<
"---------------------------------------------------------" << endm;
759 LOG_INFO <<
"StSPtrVecXiVertex" << endm;
760 LOG_INFO <<
"Dumping first element in collection only (if available). " << endm;
761 LOG_INFO <<
"---------------------------------------------------------" << endm;
762 LOG_INFO <<
"collection size = "
763 << mCurrentEvent->xiVertices().size() << endm;
765 if (mCurrentEvent->xiVertices().size()) {
766 LOG_INFO <<
"---------------------------------------------------------" << endm;
767 LOG_INFO <<
"StXiVertex at "
768 << (
void*) mCurrentEvent->xiVertices()[0] << endm;
769 LOG_INFO <<
"---------------------------------------------------------" << endm;
770 mCurrentEvent->xiVertices()[0]->Dump();
773 LOG_INFO <<
"---------------------------------------------------------" << endm;
774 LOG_INFO <<
"StSPtrVecKinkVertex" << endm;
775 LOG_INFO <<
"Dumping first element in collection only (if available). " << endm;
776 LOG_INFO <<
"---------------------------------------------------------" << endm;
777 LOG_INFO <<
"collection size = "
778 << mCurrentEvent->kinkVertices().size() << endm;
780 if (mCurrentEvent->kinkVertices().size()) {
781 LOG_INFO <<
"---------------------------------------------------------" << endm;
782 LOG_INFO <<
"StKinkVertex at "
783 << (
void*) mCurrentEvent->kinkVertices()[0] << endm;
784 LOG_INFO <<
"---------------------------------------------------------" << endm;
785 mCurrentEvent->kinkVertices()[0]->Dump();
788 unsigned int j=0, k=0, nhits=0;
791 LOG_INFO <<
"---------------------------------------------------------" << endm;
792 LOG_INFO <<
"StTpcHitCollection at " << (
void*) tpcColl << endm;
793 LOG_INFO <<
"Dumping collection size and one hit only." << endm;
794 LOG_INFO <<
"---------------------------------------------------------" << endm;
796 nhits = tpcColl->numberOfHits();
797 LOG_INFO <<
"# of hits in collection = " << nhits << endm;
799 for (k=0; !gotOneHit && k<tpcColl->numberOfSectors(); k++)
800 for (j=0; !gotOneHit && j<tpcColl->sector(k)->numberOfPadrows(); j++)
801 if (tpcColl->sector(k)->padrow(j)->hits().size()) {
802 tpcColl->sector(k)->padrow(j)->hits()[0]->Dump();
808 LOG_INFO <<
"---------------------------------------------------------" << endm;
809 LOG_INFO <<
"StFtpcHitCollection at " << (
void*) ftpcColl << endm;
810 LOG_INFO <<
"Dumping collection size and one hit only." << endm;
811 LOG_INFO <<
"---------------------------------------------------------" << endm;
813 nhits = ftpcColl->numberOfHits();
814 LOG_INFO <<
"# of hits in collection = " << nhits << endm;
816 for (k=0; !gotOneHit && k<ftpcColl->numberOfPlanes(); k++)
817 for (j=0; !gotOneHit && j<ftpcColl->plane(k)->numberOfSectors(); j++)
818 if (ftpcColl->plane(k)->sector(j)->hits().size()) {
819 ftpcColl->plane(k)->sector(j)->hits()[0]->Dump();
825 LOG_INFO <<
"---------------------------------------------------------" << endm;
826 LOG_INFO <<
"StSvtHitCollection at " << (
void*) svtColl << endm;
827 LOG_INFO <<
"Dumping collection size and one hit only." << endm;
828 LOG_INFO <<
"---------------------------------------------------------" << endm;
830 nhits = svtColl->numberOfHits();
831 LOG_INFO <<
"# of hits in collection = " << nhits << endm;
833 for (k=0; !gotOneHit && k<svtColl->numberOfBarrels(); k++)
834 for (j=0; !gotOneHit && j<svtColl->barrel(k)->numberOfLadders(); j++)
835 for (i=0; !gotOneHit && i<svtColl->barrel(k)->ladder(j)->numberOfWafers(); i++)
836 if (svtColl->barrel(k)->ladder(j)->wafer(i)->hits().size()) {
837 svtColl->barrel(k)->ladder(j)->wafer(i)->hits()[0]->Dump();
843 LOG_INFO <<
"---------------------------------------------------------" << endm;
844 LOG_INFO <<
"StSsdHitCollection at " << (
void*) ssdColl << endm;
845 LOG_INFO <<
"Dumping collection size and one hit only." << endm;
846 LOG_INFO <<
"---------------------------------------------------------" << endm;
848 nhits = ssdColl->numberOfHits();
849 LOG_INFO <<
"# of hits in collection = " << nhits << endm;
851 for (k=0; !gotOneHit && k<ssdColl->numberOfLadders(); k++)
852 for (i=0; !gotOneHit && i<ssdColl->ladder(j)->numberOfWafers(); i++)
853 if (ssdColl->ladder(j)->wafer(i)->hits().size()) {
854 ssdColl->ladder(j)->wafer(i)->hits()[0]->Dump();
865 LOG_INFO <<
"*********************************************************" << endm;
866 LOG_INFO <<
"* Table Information *" << endm;
867 LOG_INFO <<
"*********************************************************" << endm;
874 LOG_INFO <<
"---------------------------------------------------------" << endm;
875 LOG_INFO <<
"StTrack (" << (track ? track->GetName() :
"n/a")
876 <<
") at " << (
void*) track << endm;
877 LOG_INFO << "---------------------------------------------------------" << endm;
880 LOG_INFO <<
"covariantMatrix():" << track->fitTraits().covariantMatrix() << endm;
882 LOG_INFO <<
"---> StTrack -> StGeometry ("<< track->geometry()->GetName()
883 <<
") at " << (
void*) (track->geometry()) << endm;
884 if (track->geometry()) track->geometry()->Dump();
886 LOG_INFO <<
"---> StTrack -> StGeometry (outer) ("<< track->outerGeometry()->GetName()
887 <<
") at " << (
void*) (track->outerGeometry()) << endm;
888 if (track->outerGeometry()) track->outerGeometry()->Dump();
890 LOG_INFO <<
"---> StTrack -> StDetectorInfo at "
891 << (
void*) (track->detectorInfo()) << endm;
892 if (track->detectorInfo()) track->detectorInfo()->Dump();
894 LOG_INFO <<
"---> StTrack -> StTrackNode at "
895 << (
void*) (track->node()) << endm;
896 if (track->node()) track->node()->Dump();
898 LOG_INFO <<
"---> StTrack -> StPidTraits ("
899 << (track->pidTraits().size() ? 1 : 0 ) <<
" of "
900 << track->pidTraits().size() <<
" entries shown)" << endm;
901 if (track->pidTraits().size()) track->pidTraits()[0]->Dump();
UInt_t getAdditionalTriggerIDNumRows()
virtual void AddData(TDataSet *data, const char *dir=".data")
User methods.
virtual Bool_t DoOwner(Bool_t done=kTRUE)
virtual void Clear(Option_t *option="")
User defined functions.
Accessor to the database for trigger id information.
Collection of trigger ids as stored in StEvent.
virtual TObject * GetObject() const
The depricated method (left here for the sake of the backward compatibility)
UInt_t getDefaultTriggerLevel()
virtual const char * GetName() const
special overload
virtual Int_t GetRunNumber() const
Returns the current RunNumber.
UInt_t getTrigL3ExpandedNumRows()
virtual TObject * GetObject() const
The depricated method (left here for the sake of the backward compatibility)
Bool_t doPrintMemoryInfo
lots of screen output
virtual TDataSet * Find(const char *path) const