00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #define NEW
00013
00014 class StChain;
00015 class St_db_Maker;
00016 class StEEmcDb;
00017 class StMuDstMaker;
00018 class StEEmcA2EMaker;
00019 class StEEmcIUClusterMaker;
00020 class StEEmcIUPointMaker;
00021
00022 class StEEmcIUMixMaker;
00023
00024 class StSpinDbMaker;
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 StEEmcIUClusterMaker *mEEclusters = 0;
00034 StEEmcIUPointMaker *mEEpoints = 0;
00035
00036
00037 StEEmcIUMixMaker *mEEmixer = 0;
00038
00039 StSpinDbMaker *mSpinDb = 0;
00040
00041 Int_t count = 0;
00042 Int_t stat = 0;
00043
00044 Int_t prescale = 100;
00045
00046 void runEEmcPi0( Int_t nevents =-1,
00047 Char_t *name = "st_physics_adc_7136033_raw_1060001.MuDst.root",
00048 Char_t *ofile= "test.root ",
00049 Char_t *path = "/star/institutions/iucf/hew/2006ppLongRuns/7136033/",
00050 Int_t trigID=137641,
00051 Int_t nfiles = 100,)
00052
00053 {
00054
00055 TString pathname = path;
00056 pathname += name;
00057
00058
00059
00060
00061 LoadLibs();
00062
00063
00064
00065
00066
00067 mChain = new StChain("eemcAnalysisChain");
00068
00069
00070
00071
00072
00073 mMuDstMaker = new StMuDstMaker(0,0,path,name,"MuDst",nfiles);
00074 mMuDstMaker->SetStatus("*",0);
00075 mMuDstMaker->SetStatus("MuEvent",1);
00076 mMuDstMaker->SetStatus("EmcAll",1);
00077
00078
00079
00080
00081
00082 mStarDatabase = new St_db_Maker("StarDb", "MySQL:StarDb");
00083
00084
00085 #ifdef MONTE_CARLO
00086
00087
00088
00089 mStarDatabase->SetFlavor("sim","eemcPMTcal");
00090 mStarDatabase->SetFlavor("sim","eemcPIXcal");
00091 mStarDatabase->SetFlavor("sim","eemcPMTped");
00092 mStarDatabase->SetFlavor("sim","eemcPMTstat");
00093 mStarDatabase->SetFlavor("sim","eemcPMTname");
00094 mStarDatabase->SetFlavor("sim","eemcADCconf");
00095 mStarDatabase->SetDateTime(20050101,0);
00096 #endif
00097
00098
00099
00100
00101 new StEEmcDbMaker("eemcDb");
00102 gMessMgr -> SwitchOff("D");
00103 gMessMgr -> SwitchOn("I");
00104
00105 mSpinDb = new StSpinDbMaker("mSpinDb");
00106
00107 #ifdef MONTE_CARLO
00108
00109
00110
00111 StEEmcSlowMaker *slowSim = new StEEmcSlowMaker("slowSim");
00112 slowSim->setDropBad(0);
00113 slowSim->setAddPed(0);
00114 slowSim->setSmearPed(0);
00115 slowSim->setOverwrite(1);
00116 #endif
00117
00118
00119
00120
00121
00122 mEEanalysis=new StEEmcA2EMaker("AandE");
00123 mEEanalysis->database("eemcDb");
00124 mEEanalysis->source("MuDst",1);
00125 mEEanalysis->threshold(3.0,0);
00126 mEEanalysis->threshold(3.0,1);
00127 mEEanalysis->threshold(3.0,2);
00128 mEEanalysis->threshold(3.0,3);
00129 mEEanalysis->threshold(3.0,4);
00130 mEEanalysis->threshold(3.0,5);
00131
00132
00133
00134
00135
00136
00137
00138
00139 mEEclusters=new StEEmcIUClusterMaker("mEEclusters");
00140 mEEclusters->analysis("AandE");
00141 mEEclusters->seedEnergy(0.8,0);
00142 mEEclusters->seedEnergy(3.0/1000.,4);
00143 mEEclusters->seedEnergy(3.0/1000.,5);
00144 mEEclusters->setSeedFloor(1.0);
00145 mEEclusters->setMaxExtent(3);
00146 mEEclusters->suppress(0);
00147
00148
00149
00150
00151
00152
00153
00154 mEEpoints=new StEEmcIUPointMaker("mEEpoints");
00155
00156 mEEpoints->analysis("AandE");
00157 mEEpoints->clusters("mEEclusters");
00158 mEEpoints->setEnergyMode(0);
00159
00160
00161
00162
00163
00164
00165
00166
00167 mEEmixer = new StEEmcIUMixMaker("mEEmixer");
00168 mEEmixer -> mudst("MuDst");
00169 mEEmixer -> analysis("AandE");
00170 mEEmixer -> points("mEEpoints");
00171 for ( Int_t i=0;i<12;i++ )
00172 mEEmixer->sector(i);
00173 mEEmixer->trigger(trigID);
00174
00175
00176
00177 mEEpi0analysis=new StEEmcIUPi0Analysis("pi0analy");
00178 mEEpi0analysis->trigger(trigID);
00179 mEEpi0analysis->minbias(117001);
00180 mEEpi0analysis->mudst("MuDst");
00181 mEEpi0analysis->points("mEEpoints");
00182 mEEpi0analysis->mixer("mEEmixer");
00183 mEEpi0analysis->analysis("AandE");
00184 mEEpi0analysis->spin("mSpinDb");
00185
00186
00187
00188
00189
00190
00191
00192
00193
00194
00195 mChain->ls(3);
00196 mChain->Init();
00197
00198
00199
00200
00201
00202
00203
00204
00205 Int_t stat = 0;
00206 Int_t count = 0;
00207 int Tnumsmdu=0,Tnumsmdv=0,Tnumpoints=0,Tnumpairs=0,Tnumfp=0,n2clusteru=0,n2clusterv=0,n2point=0,j=0;
00208
00209 while ( stat == 0 ) {
00210
00211
00212
00213
00214
00215 if ( count++ >= nevents && nevents>0 ) break;
00216
00217
00218
00219
00220 mChain -> Clear();
00221
00222
00223
00224
00225
00226 stat = mChain -> Make();
00227
00228
00229
00230
00231 if ( (count%prescale)==0 )
00232 {
00233 std::cout << "------------------------------------------------";
00234 std::cout << "event=" << count << std::endl;
00235 }
00236
00237
00238
00239 Int_t nhits[]={0,0,0,0,0,0};
00240 float umeandiff=0,vmeandiff;
00241 for ( int i = 0; i < 4; i++ ) {
00242
00243
00244 nhits[i]+=mEEanalysis->numberOfHitTowers(i);
00245 }
00246
00247
00248
00249
00250 Int_t nu=0,nv=0;
00251 for ( Int_t sec=0;sec<12;sec++ )
00252 {
00253 nu+=mEEanalysis->numberOfHitStrips(sec,0);
00254 nv+=mEEanalysis->numberOfHitStrips(sec,1);
00255 }
00256 nhits[4]=nu;
00257 nhits[5]=nv;
00258
00259
00260
00261
00262
00263 Int_t ncl[6]={0,0,0,0,0,0};
00264 for ( Int_t i=0;i<12;i++ )
00265 {
00266 ncl[0]+=mEEclusters->numberOfClusters(i,0);
00267 ncl[1]+=mEEclusters->numberOfClusters(i,1);
00268 ncl[2]+=mEEclusters->numberOfClusters(i,2);
00269 ncl[3]+=mEEclusters->numberOfClusters(i,3);
00270 ncl[4]+=mEEclusters->numberOfSmdClusters(i,0);
00271 ncl[5]+=mEEclusters->numberOfSmdClusters(i,1);
00272 }
00273
00274
00275 }
00276
00277
00278
00279
00280
00281
00282
00283
00284 mEEmcDatabase = (StEEmcDb*)mChain->GetDataSet("StEEmcDb");
00285 if (mEEmcDatabase) mEEmcDatabase->exportAscii("dbdump.dat");
00286
00287
00288
00289
00290 mChain -> Finish();
00291
00292
00293
00294
00295
00296 TFile *file=new TFile(ofile,"RECREATE");
00297
00298
00299
00300
00301 mEEclusters -> GetHistList() -> Write();
00302 mEEpoints -> GetHistList() -> Write();
00303 mEEpi0analysis->GetHistList()->Write();
00304
00305 file->Close();
00306
00307
00308
00309 delete file;
00310
00311
00312 return;
00313
00314 }
00315
00316 void LoadLibs()
00317 {
00318
00319 gROOT -> LoadMacro("$STAR/StRoot/StMuDSTMaker/COMMON/macros/loadSharedLibraries.C");
00320 loadSharedLibraries();
00321
00322 gSystem->Load("StDbLib");
00323 gSystem->Load("StDbBroker");
00324 gSystem->Load("St_db_Maker");
00325 gSystem->Load("StEEmcUtil");
00326 gSystem->Load("StEEmcDbMaker");
00327 gSystem->Load("StEEmcSimulatorMaker");
00328 gSystem->Load("StEEmcA2EMaker");
00329 #ifdef NEW
00330 gSystem->Load("StEEmcIUPi0");
00331 #else
00332 gSystem->Load("StMaxStripPi0");
00333 #endif
00334 gSystem->Load("StSpinDbMaker");
00335
00336 }