00001
00002
00003 class StChain;
00004 StChain *chain=0;
00005
00006 void DoMatch(Int_t nevents=110){
00007
00008 char *fname="/star/data22/MC/balewski/dAu_MC/rcf1197_95_5899evts-a*.event.root";
00009 TString miniF="dAu1K.eeTree";
00010
00011
00012
00013
00014 gSystem->Load("St_base");
00015 gSystem->Load("StChain");
00016 gSystem->Load("libglobal_Tables");
00017 gSystem->Load("libsim_Tables");
00018 gSystem->Load("libgen_Tables");
00019 gSystem->Load("St_Tables");
00020 gSystem->Load("StDbLib");
00021 gSystem->Load("StDbBroker");
00022 gSystem->Load("St_db_Maker");
00023 gSystem->Load("StUtilities");
00024 gSystem->Load("StIOMaker");
00025 gSystem->Load("StMagF");
00026 gSystem->Load("StarClassLibrary");
00027 gSystem->Load("StAnalysisUtilities");
00028 gSystem->Load("StEvent");
00029 gSystem->Load("StTpcDb");
00030 gSystem->Load("StEventMaker");
00031 gSystem->Load("StMcEvent");
00032 gSystem->Load("StMcEventMaker");
00033 gSystem->Load("libgeometry_Tables");
00034 gSystem->Load("StEmcUtil");
00035
00036
00037
00038 gSystem->Load("StEEmcUtil");
00039
00040
00041
00042 TFile *f = new TFile(miniF+".root");
00043 assert(f->IsOpen());
00044 TTree *t4 = (TTree*)f->Get("EEtree");
00045 assert(t4);
00046
00047
00048 EEeventDst *event = new EEeventDst();
00049
00050
00051 TBranch *br = t4->GetBranch("EEdst");
00052 br->SetAddress(&event);
00053 Int_t nevent = (Int_t)t4->GetEntries();
00054
00055 printf("\n\n XXXXXXXXXXXXXXXXXXXXXXXXXX eeTree - events XXXXXXXXXX\n");
00056
00057 for (Int_t ie=0;ie<nevent;ie++) {
00058 if(ie>=nevents) break;
00059
00060 br->GetEntry(ie);
00061
00062 printf("\niEve=%d ---------- ID=%d token=%d timeSTamp=%d\n",ie,event->ID,event->token,event->timeStamp);
00063
00064 }
00065 printf("XXXXXXXXXXXXXXXXXXXXXXXXXX eeTree - done XXXXXXXXXX\n\n");
00066
00067 chain = new StChain("bfc");
00068
00069 StIOMaker* ioMaker = new StIOMaker();
00070 ioMaker->SetFile(fname);
00071
00072 ioMaker->SetIOMode("r");
00073 ioMaker->SetBranch("*",0,"0");
00074 ioMaker->SetBranch("geantBranch",0,"r");
00075 ioMaker->SetBranch("eventBranch",0,"r");
00076 ioMaker->SetIOMode("r");
00077
00078 St_db_Maker *dbMk = new St_db_Maker("StarDb","MySQL:StarDb");
00079
00080 chain->PrintInfo();
00081 chain->ls(3);
00082 Int_t initStat = chain->Init();
00083 if (initStat) chain->Fatal(initStat, "during Init()");
00084
00085 int istat=0,iev=1;
00086
00087 printf(" XXXXXXXXXXXXXXXXXXXXXXXXXX StEvent - events XXXXXXXXXX\n");
00088
00089 EventLoop:
00090 if (iev<=nevents && istat!=2)
00091 {
00092 chain->Clear();
00093 cout << "---------------------- Processing Event : " << iev << " ----------------------" << endl;
00094 istat = chain->Make(iev);
00095 StEvent *stEvent= (StEvent *) chain->GetInputDS("StEvent");
00096 printf("StEvent time=%d, ID=%d, runID=%d\n",(int)stEvent->time(),(int)stEvent->id(),(int)stEvent->runId());
00097
00098 StEvtHddr* fEvtHddr = (StEvtHddr*)chain->GetDataSet("EvtHddr");
00099 printf("EvtHddr actual event time stamp= %d, yyyy/mm/dd=%d hh/mm/ss=%d\n",
00100 (int)fEvtHddr->GetUTime(),fEvtHddr->GetDate(),fEvtHddr->GetTime());
00101 StL0Trigger* L0=(StL0Trigger*)stEvent->l0Trigger();
00102
00103 StTriggerId* trg=(StTriggerId*) stEvent->triggerIdCollection()->nominal();
00104
00105
00106
00107 if (istat == 2) { cout << "Last Event Processed. Status = " << istat << endl; }
00108 if (istat == 3) { cout << "Error Event Processed. Status = " << istat << endl; }
00109 iev++;
00110 goto EventLoop;
00111 }
00112 chain->Finish();
00113
00114
00115 }
00116
00117
00118
00119
00120