12 #include "StContainers.h"
13 #include "StEvent/StEventTypes.h"
14 #include "StEvent/StTriggerData.h"
15 #include "StEvent/StTriggerData2003.h"
16 #include "StEvent/StTriggerData2004.h"
17 #include "StEvent/StTriggerData2005.h"
18 #include "StEvent/StTriggerData2007.h"
19 #include "StEvent/StTriggerData2008.h"
20 #include "StEvent/StTriggerData2009.h"
22 #include "StarClassLibrary/StTimer.hh"
23 #include "StMuDstMaker.h"
24 #include "StMuEvent.h"
25 #include "StMuPrimaryVertex.h"
26 #include "StMuRpsCollection.h"
27 #include "StMuMtdCollection.h"
28 #include "StMuTrack.h"
29 #include "StMuDebug.h"
30 #include "StMuEmcUtil.h"
31 #include "StMuFmsUtil.h"
32 #include "StMuRHICfUtil.h"
33 #include "StMuFcsUtil.h"
34 #include "StMuFttUtil.h"
35 #include "StMuFstUtil.h"
36 #include "StMuFwdTrackUtil.h"
37 #include "StMuPmdUtil.h"
39 #include "StBTofCollection.h"
40 #include "StBTofRawHit.h"
41 #include "StBTofHeader.h"
42 #include "StBTofPidTraits.h"
43 #include "StMuBTofHit.h"
44 #include "StETofCollection.h"
45 #include "StMuETofCollection.h"
46 #include "StMuETofHeader.h"
47 #include "StMuETofDigi.h"
48 #include "StMuETofHit.h"
49 #include "StMuEpdHitCollection.h"
50 #include "StMuEpdHit.h"
51 #include "StMuMtdHit.h"
52 #include "StMuMtdHeader.h"
53 #include "TClonesArray.h"
55 #ifndef __NO_STRANGE_MUDST__
56 #include "StStrangeMuDstMaker/StV0MuDst.hh"
57 #include "StStrangeMuDstMaker/StXiMuDst.hh"
58 #include "StStrangeMuDstMaker/StKinkMuDst.hh"
61 #ifndef __NO_STRANGE_MUDST__
64 #include "StMuMcVertex.h"
65 #include "StMuMcTrack.h"
66 TClonesArray** StMuDst::mcArrays = 0;
81 TClonesArray *StMuDst::mMuEmcCollectionArray = 0;
89 TClonesArray *StMuDst::mMuPmdCollectionArray = 0;
109 #ifndef __NO_STRANGE_MUDST__
127 mMuEmcCollectionArray = 0;
135 mMuPmdCollectionArray = 0;
148 if (!maker) { DEBUGVALUE(maker);
return;}
150 #ifndef __NO_STRANGE_MUDST__
153 mcArrays = maker->mMCArrays;
170 mMuEmcCollectionArray = maker->mEmcCollectionArray;
178 mMuPmdCollectionArray = maker->mPmdCollectionArray;
182 #ifndef __NO_STRANGE_MUDST__
184 int nV0s =
v0s()->GetEntriesFast();
for (
int i=0;i<nV0s; i++)
v0s(i)->SetEvent(ev);
185 int nXis =
xis()->GetEntriesFast();
for (
int i=0;i<nXis; i++)
xis(i)->SetEvent(ev);
193 #ifndef __NO_STRANGE_MUDST__
194 TClonesArray** theStrangeArrays,
196 TClonesArray** theMCArrays,
197 TClonesArray** theEmcArrays,
198 TClonesArray** theFmsArrays,
199 TClonesArray** theRHICfArrays,
200 TClonesArray** theFcsArrays,
201 TClonesArray** theFttArrays,
202 TClonesArray** theFstArrays,
203 TClonesArray** theFwdTrackArrays,
204 TClonesArray** thePmdArrays,
205 TClonesArray** theTofArrays,
206 TClonesArray** theBTofArrays,
207 TClonesArray** theETofArrays,
208 TClonesArray** theEpdArrays,
209 TClonesArray** theMTDArrays,
210 TClonesArray** theFgtArrays,
211 TClonesArray** theEztArrays,
212 TClonesArray* emc_arr,
220 TClonesArray* pmd_arr,
227 #ifndef __NO_STRANGE_MUDST__
230 mcArrays = theMCArrays;
244 mMuEmcCollectionArray = emc_arr;
252 mMuPmdCollectionArray = pmd_arr;
263 Int_t n_track =
arrays[muPrimary]->GetEntriesFast();
265 for (Int_t i_track = 0; i_track < n_track; i_track++) {
300 if ( !(global&&primary) )
return;
305 static int warningPrinted = 0;
306 if (!warningPrinted) {
307 LOG_WARN <<
"WARNING: You are using " << __PRETTY_FUNCTION__
308 <<
" which does not work properly "
309 " for productions with FTPC >= SL04d and <= SL05g" << endm;
312 int nGlobals = global->GetEntriesFast();
313 int nPrimaries = primary->GetEntriesFast();
315 map<short,unsigned short> globalIndex;
317 for (
int i=0; i<nGlobals; i++) {
320 globalIndex[g->
id()] = i+1;
325 DEBUGVALUE2(primary->GetEntriesFast());
326 for (
int i=0; i<nPrimaries; i++) {
329 if (globalIndex[p->
id()])
335 DEBUGVALUE2(timer.elapsedTime());
343 if(!(fabs(
event()->primaryVertexPosition().x()) < 1.e-5 && fabs(
event()->primaryVertexPosition().y()) < 1.e-5 && fabs(
event()->primaryVertexPosition().z()) < 1.e-5)){
355 if (j==startpos) startpos++;
358 else if (pid > tid)
break;
370 for(
int i=0;i<Nvert;i++) startpos[i]=0;
379 for(
int j=0;j<Nvert;j++){
383 for(
int k=startpos[j];k<
primaryTracks()->GetEntriesFast();k++){
388 if (k==startpos[j]) startpos[j]++;
391 else if (pid > tid)
break;
411 if ( !(primary&&global&&btofHit) )
return;
416 int nPrimarys = primary->GetEntriesFast();
417 int nGlobals = global->GetEntriesFast();
418 int nBTofHits = btofHit->GetEntriesFast();
420 map<short,unsigned short> tofIndex;
421 map<short,unsigned short> globalIndex;
422 map<short,unsigned short> primaryIndex;
424 for (
int i=0; i<nBTofHits; i++) {
427 tofIndex[t->associatedTrackId()] = i+1;
431 for (
int i=0; i<nGlobals; i++) {
434 globalIndex[g->
id()] = i+1;
436 if(tofIndex[g->
id()])
437 g->setIndex2BTofHit( tofIndex[g->
id()]-1 );
439 g->setIndex2BTofHit(-1);
442 for (
int i=0; i<nPrimarys; i++) {
445 primaryIndex[p->
id()] = i+1;
447 if(tofIndex[p->
id()])
448 p->setIndex2BTofHit( tofIndex[p->
id()]-1 );
450 p->setIndex2BTofHit(-1);
455 for (
int i=0; i<nBTofHits; i++) {
458 if(globalIndex[t->associatedTrackId()])
459 t->setIndex2Global( globalIndex[t->associatedTrackId()]-1 );
461 t->setIndex2Global(-1);
463 if(primaryIndex[t->associatedTrackId()])
464 t->setIndex2Primary( primaryIndex[t->associatedTrackId()]-1 );
466 t->setIndex2Primary(-1);
470 DEBUGVALUE2(timer.elapsedTime());
487 if( !( primary && global && etofHit ) )
return;
492 int nPrimaries = primary->GetEntriesFast();
493 int nGlobals = global->GetEntriesFast();
494 int nETofHits = etofHit->GetEntriesFast();
496 map<short,unsigned short> etofIndex;
497 map<short,unsigned short> globalIndex;
498 map<short,unsigned short> primaryIndex;
500 for(
int i=0; i<nETofHits; i++ ) {
507 for(
int i=0; i<nGlobals; i++ ) {
510 globalIndex[g->
id()] = i+1;
512 if( etofIndex[g->
id()] ) {
520 for(
int i=0; i<nPrimaries; i++ ) {
523 primaryIndex[p->
id()] = i+1;
525 if( etofIndex[p->
id()] ) {
535 for(
int i=0; i<nETofHits; i++ ) {
541 t->setIndex2Global( -1 );
546 t->setIndex2Primary( -1 );
550 DEBUGVALUE2(timer.elapsedTime());
567 if ( !(primary&&global&&mtdHit) )
return;
572 int nPrimarys = primary->GetEntriesFast();
573 int nGlobals = global->GetEntriesFast();
574 int nMtdHits = mtdHit->GetEntriesFast();
576 map<short,unsigned short> mtdIndex;
577 map<short,unsigned short> globalIndex;
578 map<short,unsigned short> primaryIndex;
580 for (
int i=0; i<nMtdHits; i++) {
583 mtdIndex[t->associatedTrackKey()] = i+1;
587 for (
int i=0; i<nGlobals; i++) {
590 globalIndex[g->
id()] = i+1;
592 if(mtdIndex[g->
id()])
593 g->setIndex2MtdHit( mtdIndex[g->
id()]-1 );
595 g->setIndex2MtdHit(-1);
598 for (
int i=0; i<nPrimarys; i++) {
601 primaryIndex[p->
id()] = i+1;
603 if(mtdIndex[p->
id()])
604 p->setIndex2MtdHit( mtdIndex[p->
id()]-1 );
606 p->setIndex2MtdHit(-1);
611 for (
int i=0; i<nMtdHits; i++) {
614 if(globalIndex[t->associatedTrackKey()])
615 t->setIndex2Global( globalIndex[t->associatedTrackKey()]-1 );
617 t->setIndex2Global(-1);
619 if(primaryIndex[t->associatedTrackKey()])
620 t->setIndex2Primary( primaryIndex[t->associatedTrackKey()]-1 );
622 t->setIndex2Primary(-1);
626 DEBUGVALUE2(timer.elapsedTime());
638 for(
size_t i=0; i < (size_t)mMTD.hitsPresent(); i++)
661 for(
size_t i=0; i < (size_t) muETofColl.digisPresent(); i++ ) {
666 for(
size_t i=0; i < (size_t) muETofColl.hitsPresent(); i++ ) {
682 unsigned int index =
etofArrays[ muETofHit ]->GetEntriesFast();
683 LOG_DEBUG <<
"hit will be added as index: " << index << endm;
687 LOG_DEBUG <<
"done. -> new array size: " <<
etofArrays[ muETofHit ]->GetEntriesFast() << endm;
712 ev->setRunInfo(
new StRunInfo(mu->runInfo()) );
724 trg_coll->vpd()=mu->vpdTriggerDetector();
725 trg_coll->bbc()=mu->bbcTriggerDetector();
726 trg_coll->ctb()=mu->ctbTriggerDetector();
727 trg_coll->emc()=mu->emcTriggerDetector();
728 trg_coll->fpd()=mu->fpdTriggerDetector();
729 trg_coll->zdc()=mu->zdcTriggerDetector();
730 ev->setTriggerDetectorCollection(trg_coll);
734 ev->setL0Trigger (
new StL0Trigger(mu->l0Trigger()) );
739 ev->addPrimaryVertex(vp);
740 vp->setPosition( mu->eventSummary().primaryVertexPosition() );
742 int nGlobals =
arrays[muGlobal]->GetEntriesFast();
744 StSPtrVecTrackNode &trackNodes = ev->trackNodes();
745 TArrayI global_indices(nGlobals);
748 for (
int i=0; i<nGlobals; i++) {
752 trackNodes.push_back(node);
753 global_indices[i]=trackNodes.size()-1;
756 global_indices[i]=-1;
767 int nPrimaries = prim_tracks->GetEntriesFast();
771 if (global_idx >= 0 && global_indices[global_idx] >= 0)
772 trackNodes[global_indices[global_idx]]->addTrack( t );
776 trackNodes.push_back(node);
778 vp->addDaughter( t );
787 int nStates =
arrays[muState]->GetEntriesFast();
788 for (
int i=0; i<nStates; i++) {
790 ev->addDetectorState(det);
799 if(EMC) ev->setEmcCollection(EMC);
806 if(FMS) ev->setFmsCollection(FMS);
813 if(RHICf) ev->setRHICfCollection(RHICf);
820 if(FCS) ev->setFcsCollection(FCS);
827 if(FTT) ev->setFttCollection(FTT);
834 if(FST) ev->setFstHitCollection(FST);
841 if(theFwdTrack) ev->setFwdTrackCollection(theFwdTrack);
848 if(PMD) ev->setPhmdCollection(PMD);
853 ev->setTofCollection(tofcoll);
854 int nTofData =
tofArrays[muTofData]->GetEntriesFast();
855 for(
int i=0;i<nTofData;i++) {
858 unsigned short id =
tofData(i)->dataIndex();
859 unsigned short adc =
tofData(i)->adc();
860 unsigned short tdc =
tofData(i)->tdc();
862 unsigned short sc =
tofData(i)->sc();
864 aData =
new StTofData(
id, adc, tdc, tc, sc, 0, 0);
866 aData =
new StTofData(0, 0, 0, 0, 0, 0, 0);
868 tofcoll->addData(aData);
871 int nTofRawData =
tofArrays[muTofRawData]->GetEntriesFast();
872 for(
int i=0;i<nTofRawData;i++) {
876 unsigned short leteFlag =
tofRawData(i)->leteFlag();
877 unsigned short channel =
tofRawData(i)->channel();
879 unsigned int triggertime =
tofRawData(i)->triggertime();
880 unsigned short quality =
tofRawData(i)->quality();
881 aRawData =
new StTofRawData(leteFlag,tray,channel,tdc,triggertime,quality);
885 tofcoll->addRawData(aRawData);
890 ev->setBTofCollection(btofcoll);
891 int nBTofRawHits =
btofArrays[muBTofRawHit]->GetEntriesFast();
892 for(
int i=0;i<nBTofRawHits;i++) {
899 btofcoll->addRawHit(aRawHit);
905 triggerId = mu->triggerIdCollection().l1();
906 if ( !StMuTriggerIdCollection::isEmpty( triggerId ) ) triggerIdCollection->setL1(
new StTriggerId( triggerId ) );
907 triggerId = mu->triggerIdCollection().l2();
908 if ( !StMuTriggerIdCollection::isEmpty( triggerId ) ) triggerIdCollection->setL2(
new StTriggerId( triggerId ) );
909 triggerId = mu->triggerIdCollection().l3();
910 if ( !StMuTriggerIdCollection::isEmpty( triggerId ) ) triggerIdCollection->setL3(
new StTriggerId( triggerId ) );
911 triggerId = mu->triggerIdCollection().nominal();
912 if ( !StMuTriggerIdCollection::isEmpty( triggerId ) ) triggerIdCollection->setNominal(
new StTriggerId( triggerId ) );
913 ev->setTriggerIdCollection( triggerIdCollection );
916 DEBUGVALUE2(timer.elapsedTime());
920 #include "StarClassLibrary/SystemOfUnits.h"
921 #include "StarClassLibrary/PhysicalConstants.h"
925 if (nullHelix==*h)
return 0;
926 if (fabs(h->curvature()) > 100)
return 0;
927 if (fabs(h->
origin().x())>1000)
return 0;
928 if (fabs(h->
origin().y())>1000)
return 0;
929 if (fabs(h->
origin().z())>1000)
return 0;
932 h->momentumAt(0,
event()->runInfo().magneticField()*kilogauss), h->
h());
939 if (track->bad())
return 0;
944 t->setFlag( track->
flag() );
945 t->setFlagExtension( track->flagExtension() );
946 t->setKey( track->
id() );
949 helix = track->
helix();
951 if (tg) t->setGeometry( tg );
954 if (tg) t->setOuterGeometry( tg );
956 t->setIdTruth(track->idTruth(), track->qaTruth());
957 t->setIdParentVx( track->idParentVx() );
958 t->setLength(track->
length());
959 t->setImpactParameter(track->
dca().mag());
964 memset(b,0,15*
sizeof(Float_t));
967 traits.setNumberOfFitPoints(track->
nHitsFit(kTpcId),kTpcId);
968 traits.setNumberOfFitPoints(track->
nHitsFit(kFtpcEastId),kFtpcEastId);
969 traits.setNumberOfFitPoints(track->
nHitsFit(kFtpcWestId),kFtpcWestId);
970 traits.setNumberOfFitPoints(track->
nHitsFit(kSvtId),kSvtId);
971 traits.setNumberOfFitPoints(track->
nHitsFit(kSsdId),kSsdId);
974 if (track->
type() == primary && track->mNHitsFitTpc != 255)
975 traits.setPrimaryVertexUsedInFit(kTRUE);
976 t->setFitTraits(traits);
978 t->setNumberOfPossiblePoints(track->
nHitsPoss(kTpcId),kTpcId);
979 t->setNumberOfPossiblePoints(track->
nHitsPoss(kFtpcEastId),kFtpcEastId);
980 t->setNumberOfPossiblePoints(track->
nHitsPoss(kFtpcWestId),kFtpcWestId);
981 t->setNumberOfPossiblePoints(track->
nHitsPoss(kSvtId),kSvtId);
982 t->setNumberOfPossiblePoints(track->
nHitsPoss(kSsdId),kSsdId);
983 t->setNumberOfPossiblePoints(track->
nHitsPoss(kSstId), kSstId);
984 t->setNumberOfPossiblePoints(track->
nHitsPoss(kPxlId), kPxlId);
985 t->setNumberOfPossiblePoints(track->
nHitsPoss(kIstId), kIstId);
991 t->addPidTraits(track->btofPidTraits().createBTofPidTraits());
994 t->addPidTraits(track->
etofPidTraits().createETofPidTraits());
1002 cout <<
"++++++++++++++ MuDst run " <<
event->runId() <<
" event " <<
event->eventId() <<
" ++++++++++++++" << endl;
1003 cout << endl <<
"primary vertex pos " <<
event->primaryVertexPosition() << endl;
1006 cout <<
"No event structure (StMuEvent) found!" << endl;
1009 cout << numberOfPrimaryVertices() <<
" vertices reconstructed" << endl;
1010 cout << numberOfPrimaryTracks() <<
" primary tracks, ";
1013 cout << numberOfGlobalTracks() <<
" global " << endl;
1015 #ifndef __NO_STRANGE_MUDST__
1016 cout << numberOfV0s() <<
" V0s, " << numberOfXis() <<
" Xis "
1017 << numberOfKinks() <<
" kinks" << endl;
1021 cout <<
"EMC data present" << endl;
1023 cout <<
"No EMC data present" << endl;
1026 cout <<
"FMS data present" << endl;
1028 cout <<
"No FMS data present" << endl;
1030 cout <<
"RHICf data present" << endl;
1032 cout <<
"No RHICf data present" << endl;
1034 cout <<
"PMD data present" << endl;
1036 cout <<
"No PMD data present" << endl;
1038 if (numberOfTofHit())
1039 cout <<
"TOF data present" << endl;
1041 cout <<
"No TOF data present" << endl;
1045 void StMuDst::printVertices() {
1046 if (numberOfPrimaryVertices() == 0) {
1047 cout <<
"No vertices stored (for older data, check StMuEvent)" << endl;
1051 cout <<
"+++++++++ vertex list ( " << numberOfPrimaryVertices() <<
" entries )" << endl << endl;
1052 for (UInt_t i_vtx = 0; i_vtx < numberOfPrimaryVertices(); i_vtx++) {
1053 cout <<
"+++ Vertex " << i_vtx << endl;
1059 void StMuDst::printPrimaryTracks() {
1060 if (numberOfPrimaryTracks() == 0) {
1061 cout <<
"No primary tracks found!" << endl;
1065 cout <<
"+++++++++ PRIMARY track list ( " << numberOfPrimaryTracks() <<
" entries )" << endl << endl;
1066 for (UInt_t i_trk = 0; i_trk < numberOfPrimaryTracks(); i_trk++) {
1067 cout <<
"+++ Primary track " << i_trk << endl;
1073 void StMuDst::printGlobalTracks() {
1074 if (numberOfGlobalTracks() == 0) {
1075 cout <<
"No global tracks found!" << endl;
1079 cout <<
"+++++++++ GLOBAL track list ( " << numberOfGlobalTracks() <<
" entries )" << endl << endl;
1080 for (UInt_t i_trk = 0; i_trk < numberOfGlobalTracks(); i_trk++) {
1081 cout <<
"+++ Global track " << i_trk << endl;
static TObjArray * mCurrPrimaryTracks
Temporary array to collect tracks from currect primary vertex.
static StMuFcsCollection * muFcsCollection()
returns pointer to current StMuFcsCollection
static void unset()
resets the pointers to the TClonesArrays to 0
static TClonesArray ** tofArrays
array of TClonesArrays for the stuff inherited from the TOF
static StMuFstCollection * mMuFstCollection
pointer to FstCollection (manages the FstArrays)
static StMuPrimaryVertex * primaryVertex()
return pointer to current primary vertex
short type() const
Returns the track type: 0=global, 1=primary, etc (see StEvent manual for type information) ...
static StMuFmsCollection * muFmsCollection()
returns pointer to current StMuFmsCollection
static TObjArray * globalTracks()
returns pointer to the global tracks list
void fixTofTrackIndices()
static StMuPmdCollection * pmdCollection()
returns pointer to current StMuPmdCollection
static StMuFttCollection * muFttCollection()
returns pointer to current StMuFttCollection
static void set(StMuDstMaker *maker)
set the pointers to the TClonesArrays
static StMuFttCollection * mMuFttCollection
pointer to FttCollection (manages the FttArrays)
static StMuFmsCollection * mMuFmsCollection
pointer to FmsCollection (manages the FmsArrays)
int h() const
y-center of circle in xy-plane
short id() const
Returns the track id(or key), is unique for a track node, i.e. global and primary tracks have the sam...
static TClonesArray ** fgtArrays
array of TClonesArrays for the stuff inherited from the Fgt
UShort_t nHitsDedx() const
Return number of hits used for dEdx.
Double_t length() const
Returns length of track (cm) from primary vertex to last measured point.
static StTofRawData * tofRawData(int i)
returns pointer to the i-th tofRawData
void setETofArray(const StETofCollection *etof_coll)
static TClonesArray ** pmdArrays
array of TClonesArrays for the stuff inherited from the Pmd
static StMuEmcCollection * mMuEmcCollection
pointer to EmcCollection (manages the EmcArrays)
Double_t chi2() const
Returns chi2 of fit.
static StMuETofHit * etofHit(int i)
returns pointer to the i-th StMuETofHit
static TClonesArray * v0s()
returns pointer to the v0 list
const StMuETofPidTraits & etofPidTraits() const
dongx
static TClonesArray * primaryVertices()
returns pointer to the primary vertex list
static StMuRHICfCollection * mMuRHICfCollection
pointer to RHICfCollection (manages the RHICfArrays)
virtual void Print(Option_t *option="") const
Print basic event info.
static TClonesArray ** fmsArrays
array of TClonesArrays for the stuff inherited from the Fms
static void collectVertexTracks()
Helper function to collect tracks for the current prim vertex.
static void fixTrackIndicesG(int mult=1)
void fixTrackIndices()
checks and if necessary corrects the indecies of elements pointing to each other (e.g., a primary track's index to the corresponding global track)
static TClonesArray ** mtdArrays
array of TClonesArrays for the stuff inherited from the Mtd
void setIndex2Global(Int_t i)
Set index of associated global track.
static StMuFwdTrackCollection * muFwdTrackCollection()
returns pointer to current StMuFwdTrackCollection
void fixETofTrackIndices()
static StTofData * tofData(int i)
returns pointer to the i-th tofData
static StEmcCollection * mEmcCollection
pointer to EmcCollecion (for Emc clusterfinding etc)
static TClonesArray ** eztArrays
array of TClonesArrays for the stuff inherited from the EZT (ezTree)
static TClonesArray ** fttArrays
array of TClonesArrays for the stuff inherited from the Ftt
static StMuPmdCollection * mMuPmdCollection
pointer to PmdCollection (manages the PmdArrays)
StPhysicalHelixD helix() const
Returns inner helix (first measured point)
UShort_t nHitsFit() const
Return total number of hits used in fit.
static StStrangeEvMuDst * strangeEvent()
returns pointer to current StStrangeEvMuDst (class holding the event wise information, e.g. event number, run number)
void fixMtdTrackIndices()
short flag() const
Returns flag, (see StEvent manual for type information)
Short_t charge() const
Returns charge.
static TClonesArray ** fcsArrays
array of TClonesArrays for the stuff inherited from the Fcs
static StMuRHICfCollection * muRHICfCollection()
returns pointer to current StMuRHICfCollection
Collection of trigger ids as stored in StEvent.
static StBTofRawHit * btofRawHit(int i)
returns pointer to the i-th btofRawHit - dongx
static TClonesArray * detectorStates()
returns pointer to the list of detector states
static StMuFstCollection * muFstCollection()
returns pointer to current StMuFstCollection
int associatedTrackId() const
id to the track which has been matched to this hit
static TObjArray * primaryTracks()
returns pointer to a list of tracks belonging to the selected primary vertex
static TClonesArray ** rhicfArrays
array of TClonesArrays for the stuff inherited from the RHICf
const StThreeVector< double > & origin() const
-sign(q*B);
UShort_t nHitsPoss() const
Return number of possible hits on track.
TClonesArray ** mBTofArrays
dongx
static StMuEmcCollection * muEmcCollection()
returns pointer to current StMuEmcCollection
static StMuEvent * event()
returns pointer to current StMuEvent (class holding the event wise information, e.g. event number, run number)
static StRHICfCollection * mRHICfCollection
pointer to RHICfCollecion (for RHICf clusterfinding etc)
static StTrackGeometry * trackGeometry(int q, StPhysicalHelixD *h)
helper function to create a StTrackGeometry
static StMuETofDigi * etofDigi(int i)
returns pointer to the i-th StMuEtofDigi
static StTrack * createStTrack(const StMuTrack *)
creates a StTrack from an StMuTrack and return pointer to it
StThreeVectorF dca(Int_t vtx_id=-1) const
Returns 3D distance of closest approach to primary vertex.
static TClonesArray * xis()
returns pointer to the xi list
Double_t dEdx() const
Returns measured dE/dx value.
static TClonesArray ** strangeArrays
array of TClonesArrays for the stuff inherited from the StStrangeMuDst
void addETofHit(const StMuETofHit *hit)
static TClonesArray ** emcArrays
array of TClonesArrays for the stuff inherited from the Emc
static StBTofHeader * btofHeader()
returns pointer to the btofHeader - dongx
static StMuFcsCollection * mMuFcsCollection
pointer to FcsCollection (manages the FcsArrays)
static TClonesArray ** epdArrays
array of TClonesArrays for Epd
void setMtdArray(StMtdCollection *mtd_coll)
static Int_t currentVertexIndex()
Get the index number of the current primary vertex.
static TClonesArray ** etofArrays
array of TClonesArrays for ETof
StEvent * createStEvent()
creates a StEvent from the StMuDst (this) and returns a pointer to it. (This function is not yet fini...
static TClonesArray ** fstArrays
array of TClonesArrays for the stuff inherited from the Fst
static TClonesArray ** fwdTrackArrays
array of TClonesArrays for the stuff inherited from the FWD Tracks
StPhysicalHelixD outerHelix() const
Returns outer helix (last measured point)
static void setVertexIndex(Int_t vtx_id)
Set the index number of the current primary vertex (used by both primaryTracks() functions and for St...
static TClonesArray ** arrays
array of TClonesArrays
static StMuFwdTrackCollection * mMuFwdTrackCollection
pointer to FwdTrackCollection (manages the FwdTrackArrays)
StTrackTopologyMap topologyMap() const
Returns topology map.
static Int_t mCurrVertexId
Index number of current primary vertex.
static TClonesArray ** btofArrays
array of TClonesArrays for the stuff inherited from the BTOF // dongx
double phase() const
1/R in xy-plane
static StFmsCollection * mFmsCollection
pointer to FmsCollecion (for Fms clusterfinding etc)
virtual void Print(Option_t *option="") const
Print essential vertex info.
void setIndex2ETofHit(Int_t i)
dongx