00001
00002
00003
00004
00005
00006
00007 void TestJpsiTopo(int nevents = 1e6, const char* mudstfile = "/star/data28/reco/ppProductionJPsi/FullField/P06id/2006/139/7139023/st_jpsi_7139023_raw_1130010.MuDst.root")
00008 {
00009 gROOT->Macro("loadMuDst.C");
00010 gROOT->Macro("LoadLogger.C");
00011
00012
00013 gSystem->Load("StTpcDb");
00014 gSystem->Load("StDetectorDbMaker");
00015 gSystem->Load("StDbUtilities");
00016 gSystem->Load("StMcEvent");
00017 gSystem->Load("StMcEventMaker");
00018 gSystem->Load("StDaqLib");
00019 gSystem->Load("StEmcRawMaker");
00020 gSystem->Load("StEmcADCtoEMaker");
00021 gSystem->Load("StEpcMaker");
00022 gSystem->Load("StEmcSimulatorMaker");
00023 gSystem->Load("StDbBroker");
00024 gSystem->Load("St_db_Maker");
00025 gSystem->Load("StEEmcUtil");
00026 gSystem->Load("StEEmcDbMaker");
00027 gSystem->Load("StTriggerUtilities");
00028
00029
00030 StChain* chain = new StChain;
00031
00032
00033 StMuDstMaker* muDstMaker = new StMuDstMaker(0,0,"",mudstfile,"",100000,"MuDst");
00034
00035
00036 StMuDbReader* db = StMuDbReader::instance();
00037
00038
00039 St_db_Maker* starDb = new St_db_Maker("StarDb","MySQL:StarDb");
00040
00041
00042 StEEmcDbMaker* eemcDb = new StEEmcDbMaker;
00043
00044
00045 StEmcADCtoEMaker* adc2e = new StEmcADCtoEMaker;
00046
00047
00048 StTriggerSimuMaker* trigSimu = new StTriggerSimuMaker;
00049 trigSimu->setMC(false);
00050 trigSimu->useBemc();
00051 trigSimu->bemc->setConfig(StBemcTriggerSimu::kOffline);
00052
00053
00054 chain->Init();
00055
00056
00057 for (int iEvent = 1; iEvent <= nevents; ++iEvent) {
00058 chain->Clear();
00059 int status = chain->Make(iEvent);
00060 if (status == kStSkip) continue;
00061 if (status % 10 == kStEOF || status % 10 == kStFatal) break;
00062
00063 cout << "Run = " << chain->GetRunNumber() << ", Event = " << chain->GetEventNumber() << endl;
00064
00065
00066 if (trigSimu->isTrigger(117705) || trigSimu->isTrigger(137705)) {
00067
00068 cout << "Number of J/psi candidates = " << trigSimu->bemc->numberOfJpsiCandidates() << endl;
00069
00070 for (int i = 0; i < trigSimu->bemc->numberOfJpsiCandidates(); ++i) {
00071 cout << "J/psi candidate #" << i
00072 << ": towerId1 = " << trigSimu->bemc->jpsiCandidateFirstTowerId(i)
00073 << ", towerId2 = " << trigSimu->bemc->jpsiCandidateSecondTowerId(i)
00074 << endl;
00075 }
00076 }
00077
00078 }
00079 }