00001
00002
00003
00004 class StChain;
00005 StChain *chain;
00006 int total=0;
00007 void RunJetSimu(int nevents = 10,
00008 const char *dir = "/star/data19/reco/pp200/pythia6_203/default/pt15/y2004x/gheisha_on/trs_ii/",
00009 const char* file = "pds1214_02_5000evts.MuDst.root",
00010 const char *fname="/star/data19/reco/pp200/pythia6_203/default/pt15/y2004x/gheisha_on/trs_ii/pds1214_02_5000evts.geant.root",
00011 const char *filter = "",
00012 const char *outfile="test",
00013 const char *Eout = "EMC_test.root")
00014 {
00015
00016 if (gClassTable->GetID("TTable") < 0) {
00017 gSystem->Load("libStar");
00018 gSystem->Load("libPhysics");
00019 }
00020 gROOT->LoadMacro("$STAR/StRoot/StMuDSTMaker/COMMON/macros/loadSharedLibraries.C");
00021 loadSharedLibraries();
00022 gSystem->Load("StMagF");
00023 gSystem->Load("StTpcDb");
00024 gSystem->Load("StDbUtilities");
00025 gSystem->Load("StMcEvent");
00026 gSystem->Load("StMcEventMaker");
00027 gSystem->Load("StAssociationMaker");
00028 gSystem->Load("StMcAnalysisMaker");
00029 gSystem->Load("StDaqLib");
00030 gSystem->Load("StEmcADCtoEMaker");
00031 gSystem->Load("StEpcMaker");
00032 gSystem->Load("StDaqLib");
00033 gSystem->Load("StEmcUtil");
00034 gSystem->Load("StDbLib");
00035 gSystem->Load("StDbBroker");
00036 gSystem->Load("St_db_Maker");
00037 gSystem->Load("StEEmcUtil");
00038 gSystem->Load("StEEmcDbMaker");
00039 gSystem->Load("StJetFinder");
00040 gSystem->Load("StJetMaker");
00041 assert(gSystem->Load("StRFEvalMaker")==0);
00042
00043 double pi = atan(1.0)*4.0;
00044 cout << " loading done " << endl;
00045
00046 chain= new StChain("StChain");
00047 chain->SetDebug(1);
00048 gMessMgr->SwitchOff("D");
00049 gMessMgr->SwitchOff("I");
00050
00051
00052 StIOMaker* ioMaker = new StIOMaker();
00053 ioMaker->SetFile(fname);
00054 ioMaker->SetIOMode("r");
00055 ioMaker->SetBranch("*",0,"0");
00056 ioMaker->SetBranch("geantBranch",0,"r");
00057 ioMaker->SetBranch("eventBranch",0,"r");
00058
00059
00060
00061 class StMcEventMaker *mcEventMaker = new StMcEventMaker();
00062 mcEventReader->doPrintEventInfo = false;
00063 mcEventReader->doPrintMemoryInfo = false;
00064
00065
00066 StMuDebug::setLevel(1);
00067 StMuDstMaker* muDstMaker = new StMuDstMaker(0,0,dir,file,filter,10,"MuDst");
00068
00069
00070 StJetSimuTrigMaker *trig=new StJetSimuTrigMaker("SimuTrig");
00071 trig->setPrintOption(0);
00072
00073
00074 St_db_Maker *dbMk =new St_db_Maker("db","MySQL:StarDb","$STAR/StarDb","StarDb");
00075 dbMk->SetDateTime(20031120,0);
00076 dbMk->SetFlavor("sim","bemcPed");
00077 dbMk->SetFlavor("sim","bemcStatus");
00078 dbMk->SetFlavor("sim","bemcCalib");
00079 dbMk->SetFlavor("sim","bemcGain");
00080 dbMk->SetFlavor("sim","eemcPMTcal");
00081 dbMk->SetFlavor("sim","eemcPIXcal");
00082
00083
00084 StEEmcDbMaker* eemcb = new StEEmcDbMaker("eemcDb");
00085
00086
00087 StMuDst2StEventMaker* eventMaker = new StMuDst2StEventMaker("MuDst2StEvent");
00088
00089
00090 StEmcADCtoEMaker *adc = new StEmcADCtoEMaker("Eread");
00091
00092
00093 StEmcTpcFourPMaker* emcFourPMaker = new StEmcTpcFourPMaker("EmcTpcFourPMaker", muDstMaker, 30, 30, .3, .3, .003, adc);
00094 emcFourPMaker->setUseType(StEmcTpcFourPMaker::Hits);
00095
00096
00097 StJetSimuWeightMaker *weight= new StJetSimuWeightMaker("SimuWeight");
00098 weight->setPrintOption(0);
00099
00100
00101 char* emcOutfile = new char[256];
00102 strcpy(emcOutfile, outfile); strcat(emcOutfile, "emc");
00103 StJetMaker* emcJetMaker = new StJetMaker("emcJetMaker", emcFourPMaker, muDstMaker, emcOutfile);
00104
00105
00106 StRFEvalMaker *eval = new StRFEvalMaker("RFEval",Eout);
00107 eval->setPrintOption(1);
00108
00109
00110
00111
00112
00113
00114
00115
00116 StppAnaPars* anapars = new StppAnaPars();
00117 anapars->setFlagMin(0);
00118 anapars->setNhits(15);
00119 anapars->setCutPtMin(0.2);
00120 anapars->setAbsEtaMax(1.6);
00121 anapars->setJetPtMin(5.0);
00122 anapars->setJetEtaMax(100.0);
00123 anapars->setJetEtaMin(0);
00124 anapars->setJetNmin(0);
00125
00126
00127 StConePars* cpars = new StConePars();
00128
00129 cpars->setGridSpacing(56, -1.6, 1.6, 120, -pi, pi);
00130
00131 cpars->setConeRadius(0.7);
00132 cpars->setSeedEtMin(0.5);
00133 cpars->setAssocEtMin(0.1);
00134 cpars->setSplitFraction(0.0);
00135 cpars->setPerformMinimization(true);
00136 cpars->setAddMidpoints(true);
00137 cpars->setRequireStableMidpoints(true);
00138 cpars->setDoSplitMerge(true);
00139 cpars->setDebug(false);
00140 emcJetMaker->addAnalyzer(anapars, cpars, "MkConeJetsPt02R07");
00141
00142
00143 StKtCluPars* ktpars = new StKtCluPars();
00144 ktpars->setR(1.0);
00145 ktpars->setDebug(false);
00146 emcJetMaker->addAnalyzer(anapars, ktpars, "MkKtJet");
00147
00148
00149 chain->Init();
00150 chain->PrintInfo();
00151 chain->ls(3);
00152
00153
00154 for (Int_t iev=0;iev<nevents; iev++) {
00155 cout << "****************************************** " << endl;
00156 cout << "Working on eventNumber " << iev << endl;
00157 cout << "*************************1***************** " << endl;
00158 chain->Clear();
00159 int iret = chain->Make(iev);
00160 total++;
00161 if (iret) {
00162 cout << "Bad return code!" << endl;
00163 break;
00164 }
00165 }
00166 chain->Finish();
00167 cout << "****************************************** " << endl;
00168 cout << "total number of events " << total << endl;
00169 cout << "****************************************** " << endl;
00170 }
00171
00172
00173
00174
00175
00176
00177