00001
00002 class StChain;
00003 class StMuEmcCollection;
00004
00005 class StMuDstMaker;
00006 class TChain;
00007
00008 StMuDstMaker* muMk;
00009 StChain *chain=0;
00010
00011 int rdMu2bbc(
00012 TString fullName="ccX",
00013 int nEve=10000,
00014 Int_t nFiles = 4,
00015 char* file="inp/R5112017.lis",
00016
00017 char* inDir = "./",
00018 char* outDir = "outBbc/"
00019 ){
00020
00021 gROOT->LoadMacro("$STAR/StRoot/StMuDSTMaker/COMMON/macros/loadSharedLibraries.C");
00022 loadSharedLibraries();
00023 cout << " loading done " << endl;
00024 gSystem->Load("myTest1");
00025
00026
00027 chain = new StChain("StChain");
00028
00029 printf("adding muDst from '%s' ....\n",file);
00030
00031 muMk = new StMuDstMaker(0,0,inDir,file,"MuDst.root",nFiles);
00032 TChain* tree=muMk->chain(); assert(tree);
00033 int nEntries=tree->GetEntries();
00034 printf("total eve in chain =%d\n",nEntries);
00035
00036 myMk3=new StBbcVertexMaker("bbcVertex","MuDst");
00037 TObjArray HList;
00038 myMk3->SetHList(&HList);
00039 myMk3->readCalib("outBbc/bbcEcalib2.dat");
00040 myMk3->readCalib("outBbc/bbcWcalib2.dat");
00041 myMk3->setTdcCalib(2.0);
00042
00043 gMessMgr->SwitchOff("D");
00044 gMessMgr->SwitchOn("I");
00045
00046 chain->Init();
00047 chain->ls(3);
00048
00049 int eventCounter=0;
00050 int stat=0;
00051 int t1=time(0);
00052
00053 while ( stat==0 ) {
00054 if(eventCounter>=nEve) break;
00055 eventCounter++;
00056 chain->Clear();
00057 stat = chain->Make();
00058
00059 if(eventCounter%1000!=0)continue;
00060
00061 printf("\n\n ====================%d processing ==============\n", eventCounter);
00062
00063 }
00064 printf("sorting done, nEve=%d of %d\n",nEve, nEntries);
00065 int t2=time(0);
00066 float rate=1.*eventCounter/(t2-t1);
00067 float nMnts=(t2-t1)/60.;
00068 printf("sorting done %d of nEve=%d, CPU rate=%.1f Hz, tot %.1f minutes\n",eventCounter,nEntries,rate,nMnts);
00069
00070 chain->Finish();
00071
00072 fullName+=".hist.root";
00073 TFile f( outDir+fullName,"recreate");
00074 assert(f.IsOpen());
00075 printf("%d histos are written to '%s' ...\n",HList.GetEntries(),fullName.Data());
00076 HList.Write();
00077 f.Close();
00078 assert(!f.IsOpen());
00079
00080 }