00001
00002
00003
00004 class StChain;
00005 class St_db_Maker;
00006 class StEEmcDb;
00007 class StMuDstMaker;
00008 class StEEmcA2EMaker;
00009 class StEEmcGenericClusterMaker;
00010 class StEEmcGenericPointMaker;
00011 class StEEmcPointFitMaker;
00012 class StEEmcMixMaker;
00013 class StEEmcMixQAMaker;
00014 class StSpinDbMaker;
00015 class StEEmcPi0Maker;
00016 class StEEmcDisplayMaker;
00017
00018
00019
00020
00021 StChain *mChain = 0;
00022 St_db_Maker *mStarDatabase = 0;
00023 StEEmcDb *mEEmcDatabase = 0;
00024 StMuDstMaker *mMuDstMaker = 0;
00025 StEEmcA2EMaker *mEEanalysis = 0;
00026 StEEmcGenericClusterMaker *mEEclusters = 0;
00027 StEEmcGenericPointMaker *mEEpoints = 0;
00028
00029 StEEmcPi0Maker *mEEpi0s = 0;
00030 StEEmcDisplayMaker *mEEdisplay=0;
00031
00032
00033
00034
00035
00036
00037
00038
00039 Int_t count = 0;
00040 Int_t stat = 0;
00041
00042 Int_t prescale = 1;
00043
00044 TFile *file = 0;
00045
00046 void makeEEmcDisplay( Int_t nevents = -1,
00047 Char_t *name="mc.list",
00048 Char_t *ofile="mc.root",
00049 Char_t *path = "",
00050 Int_t trigID=96261,
00051 Int_t nfiles = 100
00052 )
00053 {
00054
00055
00056 TString pathname = path;
00057 pathname += name;
00058
00059 std::cout << "------------ blah ----------------" << std::endl;
00060
00061
00062
00063
00064 LoadLibs();
00065
00066
00067
00068
00069 mChain = new StChain("eemcAnalysisChain");
00070
00071
00072
00073
00074 mMuDstMaker = new StMuDstMaker(0,0,path,name,"MuDst",nfiles);
00075
00076
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
00102 new StEEmcDbMaker("eemcDb");
00103
00104
00105 gMessMgr -> SwitchOff("D");
00106 gMessMgr -> SwitchOn("I");
00107
00108
00109
00110
00111
00112
00113 mSpinDb = new StSpinDbMaker("mSpinDb");
00114
00115
00116
00117 #ifdef MONTE_CARLO
00118
00119
00120
00121
00122 StEEmcSlowMaker *slowSim = new StEEmcSlowMaker("slowSim");
00123 slowSim->setDropBad(0);
00124 slowSim->setAddPed(0);
00125 slowSim->setSmearPed(0);
00126 slowSim->setOverwrite(1);
00127 #endif
00128
00129
00130
00131
00132
00133 mEEanalysis=new StEEmcA2EMaker("AandE");
00134 mEEanalysis->database("eemcDb");
00135 mEEanalysis->source("MuDst",1);
00136 mEEanalysis->threshold(3.0,0);
00137 mEEanalysis->threshold(3.0,1);
00138 mEEanalysis->threshold(3.0,2);
00139 mEEanalysis->threshold(3.0,3);
00140 mEEanalysis->threshold(3.0,4);
00141 mEEanalysis->threshold(3.0,5);
00142 #ifdef MONTE_CARLO
00143 mEEanalysis->scale(1.2);
00144 #endif
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154 mEEclusters=new StMyClusterMaker("mEEclusters", mEEanalysis, mMuDstMaker );
00155 ((StMyClusterMaker*)mEEclusters)->setSmdSeedEnergy( 5.0/1000.0 );
00156 ((StMyClusterMaker*)mEEclusters)->setSmdMinimumEnergy(0.5/1000.0 );
00157 ((StMyClusterMaker*)mEEclusters)->setSmdMaximumSize(5);
00158
00159
00160
00161
00162 ((StMyClusterMaker*)mEEclusters)->setSmdMinimumStrips(3);
00163 ((StMyClusterMaker*)mEEclusters)->setSeedEnergy(3.0);
00164 ((StMyClusterMaker*)mEEclusters)->setMinimumEnergy(0.5);
00165 ((StMyClusterMaker*)mEEclusters)->setFloor(0.20,3.5);
00166
00167
00168
00169
00170
00171 mEEpoints=new StMyPointMaker("mEEpoints",mEEanalysis,mEEclusters);
00172
00173
00174 ((StMyPointMaker*)mEEpoints)->setSmdMinFraction(0.00);
00175
00176
00177
00178
00179
00180
00181
00182 mEEdisplay=new StEEmcDisplayMaker("mEEdisplay");
00183 mEEdisplay->adc2energy(mEEanalysis);
00184 mEEdisplay->clusters(mEEclusters);
00185 mEEdisplay->points(mEEpoints);
00186 mEEdisplay->addTrigger(96261);
00187 mEEdisplay->setCheckTrigger(true);
00188
00189
00190
00191 file=new TFile(ofile,"RECREATE");
00192
00193 mEEdisplay->setFile(file);
00194
00195
00196
00197 mChain->ls(3);
00198 mChain->Init();
00199
00200
00201
00202
00203
00204
00205
00206
00207
00208
00209
00210
00211
00212 Int_t stat = 0;
00213 Int_t count = 0;
00214 while ( stat == 0 ) {
00215
00216
00217 printf("event=%d\n",count);
00218
00219
00220
00221
00222 if ( count++ >= nevents ) if ( nevents > 0 ) break;
00223
00224
00225
00226
00227 mChain -> Clear();
00228
00229
00230
00231
00232
00233 stat = mChain -> Make();
00234
00235
00236
00237
00238
00239
00240
00241 std::cout << "------------------------------------------------";
00242 std::cout << "event=" << count << std::endl;
00243
00244
00245
00246
00247 Int_t nhits[]={0,0,0,0,0,0};
00248 for ( int i = 0; i < 4; i++ ) {
00249
00250
00251 nhits[i]+=mEEanalysis->numberOfHitTowers(i);
00252 }
00253
00254
00255
00256
00257 Int_t nu=0,nv=0;
00258 for ( Int_t sec=0;sec<12;sec++ )
00259 {
00260 nu+=mEEanalysis->numberOfHitStrips(sec,0);
00261 nv+=mEEanalysis->numberOfHitStrips(sec,1);
00262 }
00263 nhits[4]=nu;
00264 nhits[5]=nv;
00265
00266
00267
00268
00269
00270 Int_t ncl[6]={0,0,0,0,0,0};
00271 ncl[0]+=mEEclusters->numberOfClusters(0);
00272 ncl[1]+=mEEclusters->numberOfClusters(1);
00273 ncl[2]+=mEEclusters->numberOfClusters(2);
00274 ncl[3]+=mEEclusters->numberOfClusters(3);
00275 ncl[4]+=mEEclusters->numberOfClusters(4);
00276 ncl[5]+=mEEclusters->numberOfClusters(5);
00277
00278 const Char_t *lay[]={"tower:","pre1: ", "pre2: ", "post: ", "smdu: ", "smdv: "};
00279 for ( Int_t i=0;i<6;i++ )
00280 {
00281 std::cout << lay[i] << " " << nhits[i] << " " << ncl[i] << std::endl;
00282 }
00283
00284 std::cout << "number of points: " << mEEpoints -> numberOfPoints() << std::endl;
00285
00286
00287
00288
00289
00290
00291
00292
00293
00294 }
00295
00296
00297
00298
00299
00300
00301
00302
00303 mEEmcDatabase = (StEEmcDb*)mChain->GetDataSet("StEEmcDb");
00304 if (mEEmcDatabase) mEEmcDatabase->exportAscii("dbdump.dat");
00305
00306
00307
00308
00309 mChain -> Finish();
00310
00311
00312
00313
00314
00315 file->cd();
00316
00317
00318 mEEdisplay->tree()->Write();
00319 file->Close();
00320 delete file;
00321
00322
00323 return;
00324
00325 }
00326
00327 void LoadLibs()
00328 {
00329
00330 gROOT -> LoadMacro("$STAR/StRoot/StMuDSTMaker/COMMON/macros/loadSharedLibraries.C");
00331 loadSharedLibraries();
00332
00333 gSystem->Load("StDbLib");
00334 gSystem->Load("StDbBroker");
00335 gSystem->Load("St_db_Maker");
00336 gSystem->Load("StEEmcUtil");
00337 gSystem->Load("StEEmcDbMaker");
00338 gSystem->Load("StEEmcSimulatorMaker");
00339
00340 gSystem->Load("StEEmcA2EMaker");
00341 gSystem->Load("StEEmcClusterMaker");
00342 gSystem->Load("StEEmcPointMaker");
00343 gSystem->Load("StEEmcPi0Mixer");
00344 gSystem->Load("StEEmcDisplayMaker");
00345
00346 gSystem->Load("StSpinDbMaker");
00347 }
00348
00349