00001
00002
00005 class StChain;
00006 StChain *chain=0;
00007 void doEmcEmbedEvent(int nevents = 10,char* file="*.event.root",Bool_t print = kTRUE)
00008 {
00009 gROOT->Macro("LoadLogger.C");
00010 gROOT->Macro("loadMuDst.C");
00011 gSystem->Load("StarMagField");
00012 gSystem->Load("StMagF");
00013 gSystem->Load("StTpcDb");
00014 gSystem->Load("StDetectorDbMaker");
00015 gSystem->Load("StDbUtilities");
00016 gSystem->Load("StEEmcUtil");
00017 gSystem->Load("StMcEvent");
00018 gSystem->Load("StMcEventMaker");
00019 gSystem->Load("StDaqLib");
00020 gSystem->Load("StAssociationMaker");
00021 gSystem->Load("StMcAnalysisMaker");
00022 gSystem->Load("StDbBroker");
00023 gSystem->Load("St_db_Maker");
00024 gSystem->Load("libgeometry_Tables");
00025 gSystem->Load("StEmcRawMaker");
00026 gSystem->Load("StEmcADCtoEMaker");
00027 gSystem->Load("StPreEclMaker");
00028 gSystem->Load("StEpcMaker");
00029 gSystem->Load("StEmcSimulatorMaker");
00030 gSystem->Load("StEmcMixerMaker");
00031
00032
00033 chain = new StChain("bfc");
00034 if(print) chain->SetDebug(1);
00035
00036 StIOMaker* io = new StIOMaker("IO");
00037 io->SetFile(file);
00038 io->SetIOMode("r");
00039 io->SetBranch("*",0,"0");
00040 io->SetBranch("eventBranch",0,"r");
00041 io->SetBranch("geantBranch",0,"r");
00042
00043 St_db_Maker *db1 = new St_db_Maker("db","MySQL:StarDb","$STAR/StarDb","$PWD/StarDb");
00044 db1->SetFlavor("sim", "bprsCalib");
00045
00046 StEmcADCtoEMaker *adc = new StEmcADCtoEMaker();
00047
00048
00049
00050
00051 adc->saveAllStEvent(kTRUE);
00052 if(!print) adc->setPrint(kFALSE);
00053
00054 StEmcPreMixerMaker *preMixer = new StEmcPreMixerMaker("preEmbed");
00055
00056 StMcEventMaker *mcEvent = new StMcEventMaker();
00057
00058 StEmcSimulatorMaker *emcSim = new StEmcSimulatorMaker();
00059
00060 StEmcMixerMaker *emb = new StEmcMixerMaker();
00061
00062
00063
00064 if(!print) emb->setPrint(kFALSE);
00065
00066 StEmcADCtoEMaker *adc1 = new StEmcADCtoEMaker("EReadEmbed");
00067 adc1->setEmbeddingMode(kTRUE);
00068 if(!print) adc1->setPrint(kFALSE);
00069
00070 StPreEclMaker *pre = new StPreEclMaker();
00071 if(!print) pre->setPrint(kFALSE);
00072
00073 StEpcMaker *epc = new StEpcMaker();
00074 if(!print) epc->setPrint(kFALSE);
00075
00076 StAssociationMaker *association = new StAssociationMaker();
00077 StEmcAssociationMaker *emcAssociation = new StEmcAssociationMaker();
00078 emcAssociation->setPrint(print);
00079
00081
00082
00083
00085
00086 chain->Init();
00087 int iev = 0;
00088 int istat = 0;
00089
00090
00091 while ( istat!=2 && istat!=3 && istat!=4 && iev<=nevents ) {
00092 chain->Clear();
00093 istat = chain->Make();
00094 emcAssociation->printMaps();
00095 if(iev%20==0) cout << "Finished processing event number "<<iev <<endl;
00096 iev++;
00097 }
00098 chain->Finish();
00099
00100 }