00001 void runSimuGammaTreeMaker
00002 (
00003 char *inputFile = "/star/institutions/uky/betan/mit0026_10.MuDst.root",
00004 char *outputFile = "test.root"
00005 )
00006 {
00007
00008
00009 TString muDstFile(inputFile);
00010 TString geantFile = muDstFile;
00011 geantFile.ReplaceAll("MuDst","geant");
00012
00013 cout << "****************************************" << endl;
00014 cout << "Reading MuDst File : " << muDstFile << endl;
00015 cout << "Reading Geant File : " << geantFile << endl;
00016 cout << "Writing Output File : " << outputFile << endl;
00017
00018
00019 cout << "Loading common libraries..." << endl;
00020 gROOT->Macro("loadMuDst.C");
00021 gROOT->Macro("LoadLogger.C");
00022
00023 gSystem->Load("libMinuit");
00024 gSystem->Load("StDetectorDbMaker");
00025 gSystem->Load("StDbUtilities");
00026 gSystem->Load("StDbBroker");
00027 gSystem->Load("St_db_Maker");
00028 gSystem->Load("StSpinDbMaker");
00029
00030 gSystem->Load("StMcEvent");
00031 gSystem->Load("StMcEventMaker");
00032
00033 gSystem->Load("libgeometry_Tables");
00034 gSystem->Load("StDaqLib");
00035 gSystem->Load("StPreEclMaker");
00036 gSystem->Load("StEmcSimulatorMaker");
00037
00038 gSystem->Load("StEEmcDbMaker");
00039 gSystem->Load("StEEmcUtil");
00040 gSystem->Load("StEEmcSimulatorMaker");
00041 gSystem->Load("StEEmcA2EMaker");
00042 gSystem->Load("StEEmcClusterMaker");
00043
00044 gSystem->Load("StMCAsymMaker");
00045 gSystem->Load("StJetSkimEvent");
00046 gSystem->Load("StGammaMaker");
00047
00049
00051
00052 StChain *chain = new StChain("chain");
00053
00054
00055 StIOMaker* ioMaker = new StIOMaker();
00056 ioMaker->SetFile(geantFile.Data());
00057 ioMaker->SetIOMode("r");
00058 ioMaker->SetBranch("*", 0, "0");
00059 ioMaker->SetBranch("geantBranch", 0, "r");
00060
00061 StMcEventMaker *mcEventMaker = new StMcEventMaker();
00062 mcEventMaker->doPrintEventInfo = false;
00063 mcEventMaker->doPrintMemoryInfo = false;
00064
00065 StMuDstMaker *muDstMaker = new StMuDstMaker(0, 0, "", muDstFile.Data(), "", 1e6, "MuDst");
00066 muDstMaker->SetStatus("*", 0);
00067 muDstMaker->SetStatus("MuEvent", 1);
00068 muDstMaker->SetStatus("Event", 1);
00069 muDstMaker->SetStatus("McEvent", 1);
00070 muDstMaker->SetStatus("PrimaryVertices", 1);
00071 muDstMaker->SetStatus("PrimaryTracks", 1);
00072 muDstMaker->SetStatus("GlobalTracks", 1);
00073 muDstMaker->SetStatus("EmcTow", 1);
00074 muDstMaker->SetStatus("EmcPrs", 1);
00075 muDstMaker->SetStatus("EmcSmde", 1);
00076 muDstMaker->SetStatus("EmcSmdp", 1);
00077 muDstMaker->SetStatus("EEmcPrs", 1);
00078 muDstMaker->SetStatus("EEmcSmdu", 1);
00079 muDstMaker->SetStatus("EEmcSmdv", 1);
00080
00081 St_db_Maker *StarDatabase = new St_db_Maker("StarDb", "MySQL:StarDb", "$STAR/StarDb");
00082 StarDatabase->SetDateTime(20060522, 112810);
00083
00085
00087
00088 StEmcSimulatorMaker* emcSim = new StEmcSimulatorMaker();
00089 emcSim->setCalibSpread(kBarrelEmcTowerId, 0.15);
00090 emcSim->setCalibOffset(kBarrelEmcTowerId, 0.0);
00091
00092 emcSim->setCalibSpread(kBarrelSmdEtaStripId, 0.25);
00093 emcSim->setCalibOffset(kBarrelSmdEtaStripId, 0.0);
00094 emcSim->setMaximumAdc(kBarrelSmdEtaStripId, 700);
00095 emcSim->setMaximumAdcSpread(kBarrelSmdEtaStripId, 70);
00096 emcSim->setMaxCrossTalkPercentage(kBarrelSmdEtaStripId, 0.5);
00097
00098 emcSim->setCalibSpread(kBarrelSmdPhiStripId, 0.25);
00099 emcSim->setCalibOffset(kBarrelSmdPhiStripId, 0.0);
00100 emcSim->setMaximumAdc(kBarrelSmdPhiStripId, 700);
00101 emcSim->setMaximumAdcSpread(kBarrelSmdPhiStripId, 70);
00102
00103 StPreEclMaker* preEcl = new StPreEclMaker();
00104
00106
00108
00109
00110 StEEmcDbMaker *EEmcDatabase = new StEEmcDbMaker("eemcDb");
00111
00112 StEEmcSlowMaker *slowSim = new StEEmcSlowMaker("slowSim");
00113
00114 StEEmcA2EMaker *EEanalysis = new StEEmcA2EMaker("mEEanalysis");
00115 EEanalysis->database("eemcDb");
00116 EEanalysis->source("MuDst", 1);
00117 EEanalysis->threshold(3.0, 0);
00118 EEanalysis->threshold(3.0, 1);
00119 EEanalysis->threshold(3.0, 2);
00120 EEanalysis->threshold(3.0, 3);
00121 EEanalysis->threshold(3.0, 4);
00122 EEanalysis->threshold(3.0, 5);
00123
00124
00126
00128
00129
00130
00131
00132
00133
00134 StGammaMaker *gammaMaker = new StGammaMaker("gammaMaker", StGammaMaker::kBoth, StGammaMaker::kSimu);
00135 gammaMaker->setOutputFile(outputFile);
00136 gammaMaker->storeEmptyEvents();
00137
00138 gammaMaker->setClusterEtThreshold(5.1);
00139 gammaMaker->setConeRadius(0.4);
00140 gammaMaker->setBsmdRange(0.05237);
00141 gammaMaker->setEsmdRange(20.0);
00142
00143 gammaMaker->setSeedEnergyThreshold(3.6);
00144 gammaMaker->setClusterEnergyThreshold(5.1);
00145
00146 gammaMaker->setTrackEtRawThreshold(0.0);
00147 gammaMaker->setTowerEtRawThreshold(0.0);
00148
00149 gammaMaker->setEemcTowerClusterThreshold(0.1);
00150
00152
00154
00155 cout << "Starting up the chain..." << endl;
00156
00157 chain->ls(3);
00158 chain->Init();
00159
00160 int ntotal = 1e6;
00161
00162 cout << "Looping over events..." << endl;
00163
00164 Int_t stat = 0;
00165 Int_t total = 0;
00166 for(int iev = 0; iev < ntotal; ++iev)
00167 {
00168
00169 cout << "******************************************" << endl;
00170 cout << "Processing Event: " << iev << endl;
00171 cout << "*************************1****************" << endl;
00172
00173 chain->Clear();
00174 stat = chain->Make();
00175
00176 if(stat)
00177 {
00178 cout << "Bad return code!" << endl;
00179 break;
00180 }
00181
00182 ++total;
00183
00184 }
00185
00186 chain->Finish();
00187
00188 cout << "****************************************** " << endl;
00189 cout << total << " Total Events" << endl;
00190 cout << "****************************************** " << endl;
00191
00192 return;
00193
00194 }