00001 void bemcCalibMacro(const char* dir="./",
00002 const char* name = "test.root",
00003 const char* filelist = "test.list",
00004 int nFiles = 1,
00005 int nEvents = 1000,
00006 const char* outPath = "./")
00007 {
00008 gROOT->Macro("LoadLogger.C");
00009 gROOT->Macro("loadMuDst.C");
00010 gSystem->Load("StarMagField.so");
00011 gSystem->Load("StMagF");
00012 gSystem->Load("StDetectorDbMaker");
00013 gSystem->Load("StTpcDb");
00014 gSystem->Load("St_db_Maker");
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("StTriggerUtilities");
00023
00024 gSystem->Load("StDbBroker");
00025 gSystem->Load("libgeometry_Tables");
00026 gSystem->Load("StEEmcUtil");
00027 gSystem->Load("StEEmcDbMaker");
00028 gSystem->Load("StEmcOfflineCalibrationMaker");
00029
00030 StChain* chain = new StChain("StChain");
00031
00032
00033 StMuDstMaker* muDstMaker = new StMuDstMaker(0,0,"",filelist,"",nFiles);
00034 St_db_Maker *dbMaker = new St_db_Maker("StarDb","MySQL:StarDb");
00035 StEEmcDbMaker* eemcb = new StEEmcDbMaker("eemcDb");
00036 StEmcADCtoEMaker *adc = new StEmcADCtoEMaker();
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049 controlADCtoE_st* control_table = adc->getControlTable();
00050 control_table->CutOff[1] = -1;
00051 control_table->CutOffType[1] = 0;
00052 control_table->DeductPedestal[1] = 2;
00053 adc->saveAllStEvent(kTRUE);
00054
00055
00056
00057 StTriggerSimuMaker* trigsim = new StTriggerSimuMaker();
00058
00059 trigsim->useBemc();
00060 trigsim->useEemc();
00061 trigsim->bemc->setConfig(StBemcTriggerSimu::kOffline);
00062
00063
00064
00065
00066
00067
00068
00069 TString outfile(dir);
00070 outfile += "/";
00071 outfile += name;
00072 StEmcOfflineCalibrationMaker* bemcCalibMaker = new StEmcOfflineCalibrationMaker("bemcCalibMaker",outfile.Data());
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120 bemcCalibMaker->addMinBiasTrigger(240010);
00121 bemcCalibMaker->addMinBiasTrigger(240110);
00122 bemcCalibMaker->addMinBiasTrigger(240120);
00123 bemcCalibMaker->addMinBiasTrigger(240220);
00124
00125 bemcCalibMaker->addMinBiasTrigger(240011);
00126 bemcCalibMaker->addMinBiasTrigger(240111);
00127 bemcCalibMaker->addMinBiasTrigger(240121);
00128 bemcCalibMaker->addMinBiasTrigger(240221);
00129
00130 bemcCalibMaker->addMinBiasTrigger(240012);
00131 bemcCalibMaker->addMinBiasTrigger(240112);
00132 bemcCalibMaker->addMinBiasTrigger(240122);
00133 bemcCalibMaker->addMinBiasTrigger(240222);
00134
00135 bemcCalibMaker->addMinBiasTrigger(240013);
00136 bemcCalibMaker->addMinBiasTrigger(240113);
00137 bemcCalibMaker->addMinBiasTrigger(240123);
00138 bemcCalibMaker->addMinBiasTrigger(240223);
00139
00140 bemcCalibMaker->addMinBiasTrigger(240014);
00141 bemcCalibMaker->addMinBiasTrigger(240114);
00142 bemcCalibMaker->addMinBiasTrigger(240124);
00143 bemcCalibMaker->addMinBiasTrigger(240224);
00144
00145 bemcCalibMaker->addMinBiasTrigger(240015);
00146 bemcCalibMaker->addMinBiasTrigger(240115);
00147 bemcCalibMaker->addMinBiasTrigger(240125);
00148 bemcCalibMaker->addMinBiasTrigger(240225);
00149
00150 bemcCalibMaker->addMinBiasTrigger(240020);
00151 bemcCalibMaker->addMinBiasTrigger(240025);
00152
00153 bemcCalibMaker->addMinBiasTrigger(240130);
00154
00155 bemcCalibMaker->addHighTowerTrigger(240550);
00156 bemcCalibMaker->addHighTowerTrigger(240570);
00157 bemcCalibMaker->addHighTowerTrigger(240560);
00158 bemcCalibMaker->addHighTowerTrigger(240540);
00159 bemcCalibMaker->addHighTowerTrigger(240530);
00160
00161 bemcCalibMaker->addFastTrigger(240801);
00162 bemcCalibMaker->addFastTrigger(240802);
00163
00164 bemcCalibMaker->addFastTrigger(240640);
00165
00166
00167
00168 StMemStat memory;
00169 memory.PrintMem(NULL);
00170
00171 chain->Init();
00172 cout<<"chain initialized"<<endl;
00173
00174 TStopwatch total;
00175 TStopwatch timer;
00176
00177 int i=0;
00178 while(i<nEvents && chain->Make()==kStOk)
00179 {
00180 if(i % 500 == 0){
00181 cout<<"done with event "<<i;
00182 cout<<"\tcpu: "<<timer.CpuTime()<<"\treal: "<<timer.RealTime()<<"\tratio: "<<timer.CpuTime()/timer.RealTime();
00183 timer.Start();
00184 memory.PrintMem(NULL);
00185 }
00186 i++;
00187 chain->Clear();
00188 }
00189
00190 chain->ls(3);
00191 chain->Finish();
00192 printf("my macro processed %i events in %s",i,name);
00193 cout<<"\tcpu: "<<total.CpuTime()<<"\treal: "<<total.RealTime()<<"\tratio: "<<total.CpuTime()/total.RealTime()<<endl;
00194 }