00001 #include "iostream.h"
00002
00003 class StChain;
00004 StChain *chain=0;
00005 class St_db_Maker;
00006 St_db_Maker *dbMk =0;
00007
00008 Int_t iEvt=0,istat=0,nEvents=0;
00009 void doMuDstEvents(const Char_t *fileList = "StRoot/StTofPool/macros/test.lis",
00010 const Char_t *histname = "test.hist.root",
00011 const Char_t *ntuplename = "test.ntuple.root");
00012
00013 void doMuDstEvents(const Char_t *fileList, const Char_t *histname, const Char_t *ntuplename)
00014 {
00015 Int_t nEvents = 100;
00016 Int_t nfiles = 100;
00017
00018
00019
00020
00021 if (gClassTable->GetID("TTable") < 0) {
00022 gSystem->Load("libStar");
00023 gSystem->Load("libPhysics");
00024 }
00025 gROOT->LoadMacro("$STAR/StRoot/StMuDSTMaker/COMMON/macros/loadSharedLibraries.C");
00026 loadSharedLibraries();
00027 gSystem->Load("StarMagField");
00028 gSystem->Load("StMagF");
00029 gSystem->Load("StTpcDb");
00030
00031 gSystem->Load("StDaqLib");
00032 gSystem->Load("StDbBroker");
00033 gSystem->Load("StDetectorDbMaker");
00034 gSystem->Load("StDbUtilities");
00035 gSystem->Load("St_db_Maker");
00036
00037 gSystem->Load("StEvent");
00038 gSystem->Load("StEventMaker");
00039 gSystem->Load("StarMagField");
00040 gSystem->Load("StTofUtil");
00041 gSystem->Load("StTofMaker");
00042
00043 gSystem->Load("libtpc_Tables");
00044 gSystem->Load("libGeom");
00045 gSystem->Load("St_g2t");
00046 gSystem->Load("geometry");
00047 gSystem->Load("St_geant_Maker");
00048
00049 gSystem->Load("StTofrMatchMaker");
00050
00051
00052
00053 gSystem->Load("StTofrNtupleMaker");
00054
00055
00056
00057 chain = new StChain("StChain");
00058
00059
00060
00061
00062
00063
00064
00065
00066 int NwGeant=5000000, IwType=0, NwPaw=0;
00067 St_geant_Maker *geantMk = new St_geant_Maker("geant",NwGeant,NwPaw,IwType);
00068 geantMk->LoadGeometry("detp geometry y2008");
00069 geantMk->SetActive(kFALSE);
00070
00071 StMuDstMaker *muDstMaker = new StMuDstMaker(0,0,"",fileList,"MuDst.root",nfiles);
00072
00073 StMuDst2StEventMaker *muDst2StEventMaker = new StMuDst2StEventMaker();
00074
00075 cout<<endl<<"============ Data Base ========="<<endl;
00076 dbMk = new St_db_Maker("db","MySQL:StarDb","$STAR/StarDb","StarDb");
00077
00078 StTofrMatchMaker *matchMaker = new StTofrMatchMaker("tofrMatch");
00079 matchMaker->SetDebug(1);
00080 matchMaker->SetMode(1);
00081 matchMaker->setSaveGeometry(kTRUE);
00082 matchMaker->setCreateHistoFlag(kTRUE);
00083 matchMaker->setCreateTreeFlag(kFALSE);
00084 matchMaker->setHistoFileName(histname);
00085
00086
00087
00088
00089
00090 StTofrNtupleMaker *tofrNtuple = new StTofrNtupleMaker("tofrNtuple", ntuplename);
00091 tofrNtuple->SetDebug(0);
00092 tofrNtuple->setInitGeomFromOther(kTRUE);
00093
00094
00095
00096 Int_t iInit = chain->Init();
00097 if (iInit) chain->Fatal(iInit,"on init");
00098 chain->PrintInfo();
00099
00100
00101
00102 int istat = 0, i = 1;
00103 EventLoop: if (i <= nEvents && istat != 2) {
00104
00105 cout << endl << "============================ Event " << i
00106 << " start ============================" << endl;
00107
00108 chain->Clear();
00109 istat = chain->Make(i);
00110 if (istat == 2)
00111 {cout << "Last event processed. Status = " << istat << endl;}
00112 if (istat == 3)
00113 {cout << "Error event processed. Status = " << istat << endl;}
00114
00115
00116 i++;
00117 goto EventLoop;
00118 }
00119
00120 i--;
00121 cout<<endl<<"============================ Event "<<i<<" finish ============================"<<endl;
00122
00123
00124
00125
00126 if (nEvents > 1) {
00127 chain->Finish();
00128 }
00129
00130
00131 }