00001 TObjArray *HList;
00002
00003 int rdMu2Ped(
00004 int nEve=300,
00005 Int_t nFiles =20,
00006 char* file="Rnnn.lis"
00007 ){
00008 char* inDir = "./" ;
00009 inDir="/star/data08/reco/ppProductionMinBias/FullField/dev/2005/174/";
00010 file="st_physics_6174067_raw_2040010.MuDst.root";
00011
00012 gROOT->LoadMacro("$STAR/StRoot/StMuDSTMaker/COMMON/macros/loadSharedLibraries.C");
00013 loadSharedLibraries();
00014 cout << " loading done " << endl;
00015 assert( !gSystem->Load("StEEmcUtil"));
00016 assert( !gSystem->Load("StEEmcPoolmuDst"));
00017
00018
00019 assert( !gSystem->Load("StDbBroker"));
00020 assert( !gSystem->Load("St_db_Maker"));
00021 assert( !gSystem->Load("StEEmcDbMaker"));
00022
00023
00024 chain = new StChain("StChain");
00025
00026 printf("adding muDst from '%s' ....\n",file);
00027
00028
00029 muMk = new StMuDstMaker(0,0,inDir,file,"MuDst.root",nFiles);
00030 TChain* tree=muMk->chain(); assert(tree);
00031 int nEntries=(int) tree->GetEntries();
00032 printf("total eve in chain =%d\n",nEntries);
00033 printf("in=%s%s=\n",inDir,file);
00034
00035
00036 St_db_Maker *stDb = new St_db_Maker("StarDb", "MySQL:StarDb");
00037 stDb->SetFlavor("onlPed","eemcPMTped");
00038 stDb->SetFlavor("sim","eemcPMTstat");
00039
00040 myDb=new StEEmcDbMaker("eemcDb");
00041
00042 HList=new TObjArray;
00043 StAdcPedHistoMaker* myMk3=new StAdcPedHistoMaker("myPanitkin",muMk);
00044 myMk3->SetHList(HList);
00045 myMk3->SetTrigId(96011);
00046
00047
00048
00049 gMessMgr->SwitchOff("D");
00050 gMessMgr->SwitchOn("I");
00051
00052 chain->Init();
00053 chain->ls(3);
00054
00055 int eventCounter=0;
00056 int stat=0;
00057 int t1=time(0);
00058 StMuTimer timer;
00059 timer.start();
00060
00061
00062 while ( 1) {
00063 if(eventCounter>=nEve) break;
00064 eventCounter++;
00065 chain->Clear();
00066 stat = chain->Make();
00067 if(stat) break;
00068 if(eventCounter%200!=0)continue;
00069
00070 printf("\n\n ====================%d processing ==============\n", eventCounter);
00071
00072 }
00073
00074 printf("sorting done, nEve=%d of %d\n",nEve, nEntries);
00075 int t2=time(0);
00076 if(t1==t2) t2++;
00077 float rate=1.*eventCounter/(t2-t1);
00078 float nMnts=(t2-t1)/60.;
00079 printf("sorting done %d of nEve=%d, elapsed rate=%.1f Hz, tot %.1f minutes\n",eventCounter,nEntries,rate,nMnts);
00080
00081 if (eventCounter) {
00082 cout << "CPU time/event= " << timer.elapsedTime()/eventCounter << " sec "
00083 << " rate= " << eventCounter/timer.elapsedTime() << " Hz" << endl;
00084 }
00085
00086 TString out="outPed/";
00087 out+="Rnnn";
00088 out+="ped.hist.root";
00089 TFile f( out,"recreate");
00090 assert(f.IsOpen());
00091 printf("%d histos are written to '%s' ...\n",HList->GetEntries(),out.Data());
00092 HList->Write();
00093 f.Close();
00094
00095
00096 }