00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 class StChain;
00019 class St_db_Maker;
00020 class StEEmcDb;
00021 class StMuDstMaker;
00022 class StEEmcA2EMaker;
00023 class StEEmcTimingMaker;
00024
00025
00026
00027
00028 StChain *mChain = 0;
00029 St_db_Maker *mStarDatabase = 0;
00030 StEEmcDb *mEEmcDatabase = 0;
00031 StMuDstMaker *mMuDstMaker = 0;
00032 StEEmcA2EMaker *mEEanalysis = 0;
00033
00034 Int_t count = 0;
00035 Int_t stat = 0;
00036
00037 Int_t nzeros = 0;
00038 Int_t max_zero_count = 100;
00039
00040
00041 void runEEmcTiming( Int_t nevents = 30000,
00042 Char_t *name = "8095104.list",
00043 Char_t *ofile= "8095104.root",
00044 Float_t tower_delay=19.,
00045 Float_t mapmt_delay=65.,
00046 Int_t nfiles = 1000
00047 )
00048 {
00049
00050 Char_t *path = "./";
00051 TString pathname = path;
00052 pathname += name;
00053
00054
00055
00056
00057 LoadLibs();
00058
00059
00060
00061
00062
00063 mChain = new StChain("eemcAnalysisChain");
00064
00065
00066
00067
00068
00069 mMuDstMaker = new StMuDstMaker(0,0,path,name,"MuDst",nfiles);
00070 mMuDstMaker->SetStatus("*",0);
00071 mMuDstMaker->SetStatus("MuEvent",1);
00072 mMuDstMaker->SetStatus("EmcAll",1);
00073
00074
00075
00076
00077
00078 mStarDatabase = new St_db_Maker("StarDb", "MySQL:StarDb");
00079
00080
00081
00082
00083
00084
00085 new StEEmcDbMaker("eemcdb");
00086 gMessMgr -> SwitchOff("D");
00087 gMessMgr -> SwitchOn("I");
00088
00089
00090
00091
00092
00093
00094
00095 mEEanalysis=new StEEmcA2EMaker("AandE");
00096 mEEanalysis->database("eemcdb");
00097 mEEanalysis->source("MuDst",1);
00098
00099 for ( int ii=0;ii<6;ii++ ) mEEanalysis->threshold(-300.0,ii);
00100
00101
00102
00103 StEEmcTimingMaker *timing=new StEEmcTimingMaker("timing");
00104 timing->setRunNumber( atoi( name ) );
00105 timing->setTiming( tower_delay, mapmt_delay );
00106 timing->setTowerCuts( 25, 75 );
00107 timing->setMapmtCuts( 50, 150 );
00108
00109 mChain->ls(3);
00110 mChain->Init();
00111
00112
00113
00114
00115
00116
00117
00118
00119 Int_t stat = 0;
00120 Int_t count = 0;
00121 while ( stat == 0 ) {
00122
00123
00124
00125
00126
00127 if ( count++ >= nevents ) if ( nevents > 0 ) break;
00128
00129
00130
00131
00132 mChain -> Clear();
00133
00134
00135
00136
00137
00138 stat = mChain -> Make();
00139
00140
00141
00142
00143
00144 Int_t sum=0;
00145 for ( Int_t i=0;i<720;i++ )
00146 {
00147 StEEmcTower t=mEEanalysis->tower(i,0);
00148 sum+=t.raw();
00149 }
00150 if (sum==0)nzeros++;
00151 if ( nzeros > max_zero_count ) {
00152 std::cout << "ADC sum for EEMC zero for > max events" << std::endl;
00153 break;
00154 }
00155
00156
00157
00158
00159 if ( (count%100) ) continue;
00160
00161
00162 std::cout << "------------------------------------------------";
00163 std::cout << "event=" << count << std::endl;
00164
00165
00166
00167
00168
00169 for ( Int_t i=0;i<720;i++ )
00170 {
00171 StEEmcTower t=mEEanalysis->tower(i,0);
00172 std::cout << t.raw() << " ";
00173 if ( !((i+1)%24) ) std::cout << std::endl;
00174 }
00175 std::cout << std::endl;
00176
00177
00178
00179 }
00180
00181
00182
00183
00184
00185
00186
00187
00188 mEEmcDatabase = (StEEmcDb*)mChain->GetDataSet("StEEmcDb");
00189 if (mEEmcDatabase) mEEmcDatabase->exportAscii("dbdump.dat");
00190
00191
00192
00193
00194 mChain -> Finish();
00195
00196 TString psfile=ofile;psfile.ReplaceAll("root","ps");
00197 TString dtfile=ofile;dtfile.ReplaceAll("root","dat");
00198
00199
00200 timing->dumpAsciiFile(dtfile);
00201
00202
00203
00204
00205 gSystem->mkdir("timing_files/");
00206 TString myofile="timing_files/";
00207 TFile *file=new TFile(myofile+ofile,"RECREATE");
00208 timing->GetHistList()->Write();
00209 file -> Close();
00210 delete file;
00211
00212
00213 return;
00214
00215 }
00216
00217 void LoadLibs()
00218 {
00219
00220 gROOT -> LoadMacro("$STAR/StRoot/StMuDSTMaker/COMMON/macros/loadSharedLibraries.C");
00221 loadSharedLibraries();
00222
00223 gSystem->Load("StDbLib");
00224 gSystem->Load("StDbBroker");
00225 gSystem->Load("St_db_Maker");
00226 gSystem->Load("StEEmcUtil");
00227 gSystem->Load("StEEmcDbMaker");
00228 gSystem->Load("StEEmcSimulatorMaker");
00229
00230 gSystem->Load("StEEmcA2EMaker");
00231 gSystem->Load("StEEmcTimingMaker");
00232
00233 }
00234