00001 #include <vector>
00002 using namespace std;
00003 class StChain;
00004 StChain *chain;
00005 int total=0;
00006
00007 void RunTriggerStudyMaker(int nevents=10,
00008 const char* file = "test.list",
00009 const char* outfile = "triggerstudy.root",
00010
00011 const char* dir = "./",
00012 const char *filter = "",
00013 const char* outPath = "./")
00014 {
00015 cout <<"MuDst chain file:\t"<<file<<endl;
00016
00017 gROOT->Macro("LoadLogger.C");
00018 gROOT->Macro("loadMuDst.C");
00019 gSystem->Load("StDaqLib");
00020 gSystem->Load("StDbBroker");
00021 gSystem->Load("StDetectorDbMaker");
00022 gSystem->Load("St_db_Maker");
00023 gSystem->Load("StEEmcUtil");
00024 gSystem->Load("StEEmcDbMaker");
00025 gSystem->Load("StTriggerFilterMaker");
00026 gSystem->Load("StEmcRawMaker");
00027 gSystem->Load("StEmcADCtoEMaker");
00028 gSystem->Load("StTriggerUtilities");
00029 gSystem->Load("StTriggerStudyMaker");
00030
00031
00032 double pi = atan(1.0)*4.0;
00033 cout << " loading done " << endl;
00034
00035 chain= new StChain("StChain");
00036 chain->SetDebug(1);
00037
00038
00039
00040
00041 StMuDebug::setLevel(1);
00042 StMuDstMaker* muDstMaker = new StMuDstMaker(0,0,dir,file,filter,1000000,"MuDst");
00043
00044
00045 St_db_Maker *dbMk = new St_db_Maker("StarDb", "MySQL:StarDb");
00046 StEEmcDbMaker* eemcb = new StEEmcDbMaker("eemcDb");
00047
00048
00049
00050 StEmcADCtoEMaker *adc = new StEmcADCtoEMaker();
00051
00052 StTriggerSimuMaker* trigsim = new StTriggerSimuMaker();
00053 trigsim->useBbc();
00054 trigsim->useBemc();
00055 trigsim->bemc->setConfig(StBemcTriggerSimu::kOffline);
00056 StGenericL2Emulator* simL2Mk = new StL2_2006EmulatorMaker;
00057 assert(simL2Mk);
00058 simL2Mk->setSetupPath("/afs/rhic.bnl.gov/star/users/kocolosk/public/StarTrigSimuSetup/");
00059 simL2Mk->setOutPath(outPath);
00060 trigsim->useL2(simL2Mk);
00061
00062 StTriggerStudyMaker* trigstudy = new StTriggerStudyMaker(outfile);
00063
00064
00065
00066 chain->Init();
00067
00068 chain->PrintInfo();
00069
00070 for (Int_t iev=0;iev<nevents; iev++) {
00071
00072
00073
00074
00075
00076 chain->Clear();
00077 int iret = chain->Make(iev);
00078 total++;
00079
00080 if (iret && iret!=kStSkip) {
00081 cout << "Bad return code!" <<iret<< endl;
00082 break;
00083 }
00084
00085
00086 }
00087 chain->Finish();
00088 cout << "****************************************** " << endl;
00089 cout << "total number of events " << total << endl;
00090 cout << "****************************************** " << endl;
00091
00092
00093 }