00001 class StChain;
00002 StChain *chain=0;
00003
00004 int rdGeant( int maxEve=2){
00005
00006 TString geantFile = "/star/data26/reco/pp200/pythia_6.203/default/minbias/year2003/hadronic_on/trs_ic/rcf1200_2723_2000evts.geant.root";
00007
00008
00009 gROOT->LoadMacro("$STAR/StRoot/StMuDSTMaker/COMMON/macros/loadSharedLibraries.C");
00010 loadSharedLibraries();
00011 cout << " loading done " << endl;
00012
00013
00014
00015 chain = new StChain("StChain");
00016
00017
00018
00019
00020 StIOMaker* IOMk = new StIOMaker("IO","r",geantFile,"bfcTree");
00021 IOMk->SetDebug();
00022 IOMk->SetIOMode("r");
00023 IOMk->SetBranch("*",0,"0");
00024 IOMk->SetBranch("geantBranch",0,"r");
00025
00026 chain->Init();
00027 chain->ls(3);
00028
00029
00030
00031 int eventCounter=0;
00032
00033 printf(" requested maxEve=%d\n",maxEve);
00034
00035 while ( 1) {
00036 eventCounter++;;
00037 if(eventCounter >maxEve) break;
00038 chain->Clear();
00039 int stat = chain->Make();
00040 if(stat) break;
00041
00042
00043
00044 St_DataSet* Event = chain->GetDataSet("geant");
00045
00046 St_DataSetIter geantDstI(Event);
00047
00048
00049 St_g2t_event *Pg2t_event=(St_g2t_event *) geantDstI("g2t_event");
00050
00051 g2t_event_st *g2t_event1=Pg2t_event->GetTable();
00052 printf("nr=%d %p\n",Pg2t_event->GetNRows(),g2t_event1);
00053 int k1= g2t_event1->eg_label;
00054 int k2= g2t_event1->n_event;
00055 int k3= g2t_event1->subprocess_id;
00056
00057 printf("eg_label=%d n_event=%d subprocess_id=%d\n", k1,k2,k3);
00058
00059
00060
00061 St_particle *particleTabPtr = (St_particle *) geantDstI("particle");
00062 particle_st* particleTable = particleTabPtr->GetTable();
00063
00064 for (int i=0; i<particleTabPtr->GetNRows();++i) {
00065 if(i>10) break;
00066 cout << "track " << i << endl;
00067 cout << " id = " << particleTable[i].idhep << endl;
00068 cout << " px = " << particleTable[i].phep[0] << endl;
00069 cout << " py = " << particleTable[i].phep[1] << endl;
00070 cout << " pz = " << particleTable[i].phep[2] << endl;
00071 cout << " e = " << particleTable[i].phep[3] << endl;
00072 cout << " m = " << particleTable[i].phep[4] << endl;
00073 cout << " moth1 = " << particleTable[i].jmohep[0] << endl;
00074 cout << " moth2 = " << particleTable[i].jmohep[1] << endl;
00075 }
00076
00077 }
00078
00079
00080
00081 }
00082
00083
00084
00085
00086
00087
00088
00089