00001
00002
00003
00004
00005
00006 int total=0;
00007
00008 void rdMu2BarCal(
00009 char *file="R9060016f.lis",
00010 int calibPass=0x3,
00011 int nEvents = 1000,
00012 int dbType=1,
00013 int isSched=0,
00014 TString fileHi="aa",
00015 TString outDir="out1d/",
00016 int bprsHist=1,
00017 int dumm=0
00018 )
00019 {
00020 char *dirIn ="runList/";
00021 int nFiles = 1000;
00022
00023 if(isSched) {
00024 dirIn ="";
00025 outDir="";
00026 nFiles=1000;
00027
00028 }
00029
00030 int flagMC=0;
00031 if (flagMC) file="mit0029.lis";
00032
00033
00034
00035 gROOT->LoadMacro("$STAR/StRoot/StMuDSTMaker/COMMON/macros/loadSharedLibraries.C");
00036 loadSharedLibraries();
00037 assert( !gSystem->Load("StDetectorDbMaker"));
00038 assert( !gSystem->Load("StDbUtilities"));
00039 assert( !gSystem->Load("StDbBroker"));
00040 assert( !gSystem->Load("St_db_Maker"));
00041 assert( !gSystem->Load("StDaqLib"));
00042 assert( !gSystem->Load("StEmcRawMaker"));
00043 assert( !gSystem->Load("StEmcADCtoEMaker"));
00044 if (flagMC) {
00045 assert( !gSystem->Load("StMcEvent"));
00046 assert( !gSystem->Load("StMcEventMaker"));
00047 assert( !gSystem->Load("StEmcSimulatorMaker"));
00048 assert( !gSystem->Load("StEpcMaker"));
00049 }
00050 assert( !gSystem->Load("StBarrelCalib"));
00051
00052 gROOT->Macro("LoadLogger.C");
00053 cout << " loading done " << endl;
00054
00055 StChain *chain= new StChain("StChain");
00056
00057
00058 printf(" dirIn=%s= file=%s=\n",dirIn,file);
00059 StMuDstMaker* muDstMaker =new StMuDstMaker(0,0,dirIn,file,"MuDst.root",nFiles);
00060
00061 TChain* tree=muDstMaker->chain(); assert(tree);
00062 int nEntries=(int) tree->GetEntries();
00063 cout << "Avaliable number of events " << nEntries << endl;
00064
00065 if(nEvents>nEntries){
00066 nEvents=nEntries;
00067 cout<<" WARN: # of requested events reduced to "<< nEvents<<endl;
00068 }
00069
00070
00071 St_db_Maker* dbMk = new St_db_Maker("StarDb","MySQL:StarDb","MySQL:StarDb","$STAR/StarDb");
00072
00073
00074
00075 if(flagMC) {
00076 dbMk->SetDateTime(20080307, 83000);
00077 }
00078
00079
00080 StEmcADCtoEMaker *a2eMk = new StEmcADCtoEMaker();
00081 a2eMk->setCheckStatus(kBarrelEmcTowerId,0);
00082 a2eMk->saveAllStEvent(true);
00083
00084
00085
00086
00087 TObjArray* HList=new TObjArray;
00088
00089 StJanBarrelDbMaker *jdbMk=new StJanBarrelDbMaker;
00090 jdbMk->setDbType(dbType);
00091 jdbMk->setHList(HList);
00092
00093 StBarrelMonitorMaker *bmMk= new StBarrelMonitorMaker;
00094 bmMk->setHList(HList);
00095 bmMk->setCalibPass(calibPass);
00096 bmMk->setBprsHisto(bprsHist);
00097
00098 chain->ls(3);
00099 chain->Init();
00100
00101 int t1=time(0);
00102
00103 for (Int_t iev=0;iev<nEvents; iev++) {
00104 cout << "\n****************************************** " << endl;
00105 cout << "Working on eventNumber:\t" << iev <<"\tof:\t"<<nEvents<<endl;
00106 cout << "****************************************** " << endl;
00107 chain->Clear();
00108 int iret = chain->Make(iev);
00109 total++;
00110 if (iret % 10 == kStEOF || iret % 10 == kStFatal) {
00111 cout << " my.C macro: Bad return code!" << endl;
00112 break;
00113 }
00114 }
00115 int t2=time(0);
00116 if(t2==t1) t2=t1+1;
00117 float tMnt=(t2-t1)/60.;
00118 float rate=1.*total/(t2-t1);
00119
00120 chain->Finish();
00121 cout << "****************************************** " << endl;
00122 cout << "total number of events " << total << endl;
00123 cout << "****************************************** " << endl;
00124
00125
00126 if(!isSched) {
00127 fileHi=file;
00128
00129 if(fileHi.Contains(".lis")) fileHi.ReplaceAll(".lis",".barCal");
00130 if(fileHi.Contains(".MuDst.root")) fileHi.ReplaceAll(".MuDst.root",".barCal");
00131 }
00132 TString outF=outDir+fileHi;
00133 outF+="";
00134 outF+=".hist.root";
00135 cout<<"Output histo file "<<outF<<endl;
00136 hf=new TFile(outF,"recreate");
00137 if(hf->IsOpen()) {
00138 HList->ls();
00139 HList->Write();
00140 printf("\n Histo saved -->%s<\n",outF.Data());
00141 } else {
00142 printf("\n Failed to open Histo-file -->%s<, continue\n",outF.Data());
00143 }
00144
00145 cout <<Form("sorting done %d of nEve=%d, CPU rate=%.1f Hz, total time %.1f minute(s) \n\n",total,nEntries,rate,tMnt)<<endl;
00146
00147 }
00148