00001
00002
00003
00004
00005 class StChain;
00006 StChain *chain;
00007 int total=0;
00008
00009 void RunPythia(
00010 int nevents = 100,
00011 const char *dir ="",
00012 const char* infile ="/star/data18/reco/pp200/pythia6_203/default/pt15/y2004x/gheisha_on/trs_ij/pds1214_69_5000evts.MuDst.root",
00013 const char* outdir = "./processed/")
00014 {
00015
00016
00017
00018
00019
00020 TString ofile = "blah_simu.jet.root";
00021 TString sofile = "blah_simu.out.root";
00022 const char* outfile = ofile.Data();
00023 const char *soutfile = sofile;
00024
00025 cout <<"write files:\t"<<outfile<<"\tand:\t"<<soutfile<<endl;
00026
00027 if (gClassTable->GetID("TTable") < 0) {
00028 gSystem->Load("libStar");
00029 gSystem->Load("libPhysics");
00030 }
00031 gROOT->LoadMacro("$STAR/StRoot/StMuDSTMaker/COMMON/macros/loadSharedLibraries.C");
00032 loadSharedLibraries();
00033 gSystem->Load("StMagF");
00034 gSystem->Load("StTpcDb");
00035 gSystem->Load("StDbUtilities");
00036 gSystem->Load("StMcEvent");
00037 gSystem->Load("StMcEventMaker");
00038 gSystem->Load("StDaqLib");
00039 gSystem->Load("StEmcRawMaker");
00040 gSystem->Load("StEmcADCtoEMaker");
00041 gSystem->Load("StEpcMaker");
00042 gSystem->Load("StDbLib");
00043 gSystem->Load("StDbBroker");
00044 gSystem->Load("St_db_Maker");
00045 gSystem->Load("StJetFinder");
00046 gSystem->Load("StJetMaker");
00047
00048 double pi = atan(1.0)*4.0;
00049 cout << " loading done " << endl;
00050
00051 chain= new StChain("StChain");
00052 chain->SetDebug(1);
00053
00054
00055 StIOMaker* ioMaker = new StIOMaker();
00056 ioMaker->SetFile(infile);
00057
00058 ioMaker->SetIOMode("r");
00059 ioMaker->SetBranch("*",0,"0");
00060 ioMaker->SetBranch("geantBranch",0,"r");
00061
00062
00063 class StMcEventMaker *mcEventMaker = new StMcEventMaker();
00064 mcEventMaker->doPrintEventInfo = false;
00065 mcEventMaker->doPrintMemoryInfo = false;
00066
00067
00068 StMuDebug::setLevel(1);
00069 StMuDstMaker* muDstMaker = new StMuDstMaker(0,0,dir,infile,"",10,"MuDst");
00070
00071
00072 St_db_Maker *dbMk =new St_db_Maker("db","MySQL:StarDb","$STAR/StarDb","StarDb");
00073 dbMk->SetDateTime(20031120,0);
00074
00075
00076 StEmcADCtoEMaker *adc = new StEmcADCtoEMaker();
00077
00078
00079 StEmcTpcFourPMaker* emcFourPMaker = new StEmcTpcFourPMaker("EmcTpcFourPMaker", muDstMaker, 30, 30, .3, .3, .003, adc);
00080 emcFourPMaker->setUseType(StEmcTpcFourPMaker::Hits);
00081 emcFourPMaker->setMaxPoints(150);
00082 emcFourPMaker->setMinPointThreshold(.3);
00083
00084
00085 StJetSimuTrigMaker *trig=new StJetSimuTrigMaker("SimuTrig");
00086 trig->setPrintOption(0);
00087
00088
00089 StJetSimuWeightMaker *weight= new StJetSimuWeightMaker("SimuWeight");
00090 weight->setPrintOption(0);
00091
00092
00093 StJetSimuTreeMaker *stree= new StJetSimuTreeMaker("SimuTree",soutfile);
00094 stree->setPrintOption(0);
00095
00096
00097
00098
00099
00100 StJetMaker* emcJetMaker = new StJetMaker("emcJetMaker", muDstMaker, outfile);
00101
00102
00103 StppAnaPars* anapars = new StppAnaPars();
00104 anapars->setFlagMin(0);
00105 anapars->setNhits(0);
00106 anapars->setCutPtMin(0.0001);
00107 anapars->setAbsEtaMax(5.0);
00108 anapars->setJetPtMin(5.0);
00109 anapars->setJetEtaMax(5.0);
00110 anapars->setJetEtaMin(0);
00111 anapars->setJetNmin(0);
00112
00113
00114
00115 StConePars* cpars = new StConePars();
00116 cpars->setGridSpacing(200, -5.0, 5.0, 120, -pi, pi);
00117 cpars->setConeRadius(0.7);
00118 cpars->setSeedEtMin(0.5);
00119 cpars->setAssocEtMin(0.01);
00120 cpars->setSplitFraction(0.5);
00121 cpars->setPerformMinimization(true);
00122 cpars->setAddMidpoints(true);
00123 cpars->setRequireStableMidpoints(true);
00124 cpars->setDoSplitMerge(true);
00125 cpars->setDebug(false);
00126
00127
00128 StKtCluPars* ktpars = new StKtCluPars();
00129 ktpars->setR(1.0);
00130 ktpars->setDebug(false);
00131
00132
00133
00134
00135
00136 emcJetMaker->addAnalyzer(anapars, ktpars, emcFourPMaker, "RecoKtJet");
00137
00138 chain->Init();
00139 chain->PrintInfo();
00140
00141 TChain* muchain = muDstMaker->chain();
00142
00143 for (Int_t iev=0;iev<nevents; iev++) {
00144 cout << "****************************************** " << endl;
00145
00146 cout << "Working on eventNumber:\t" << iev <<endl;
00147 cout << "*************************1***************** " << endl;
00148 chain->Clear();
00149 int iret = chain->Make(iev);
00150 total++;
00151 if (iret) {
00152 cout << "Bad return code!" << endl;
00153 break;
00154 }
00155 }
00156 chain->Finish();
00157 cout << "****************************************** " << endl;
00158 cout << "total number of events " << total << endl;
00159 cout << "****************************************** " << endl;
00160 }