00001 TH1 *btow_adc, *bprs_adc, *smde_adc, *smdp_adc;
00002 TH1 *btow_energy, *bprs_energy, *smde_energy, *smdp_energy;
00003 TCanvas *c;
00004
00005 void testSimulatorMaker(int nEvents=1000, const char *geantFile = "/star/institutions/mit/common/simu/photon_5_7_09.geant.root") {
00006 gROOT->Macro("LoadLogger.C");
00007 gROOT->Macro("loadMuDst.C");
00008 gSystem->Load("StDetectorDbMaker");
00009 gSystem->Load("StDbUtilities");
00010 gSystem->Load("StEEmcUtil");
00011 gSystem->Load("StMcEvent");
00012 gSystem->Load("StMcEventMaker");
00013 gSystem->Load("StDbBroker");
00014 gSystem->Load("St_db_Maker");
00015 gSystem->Load("StDaqLib");
00016 gSystem->Load("StEmcSimulatorMaker");
00017
00018 StChain *chain = new StChain("StChain");
00019
00020 StIOMaker* ioMaker = new StIOMaker();
00021 ioMaker->SetFile(geantFile);
00022 ioMaker->SetIOMode("r");
00023 ioMaker->SetBranch("*",0,"0");
00024 ioMaker->SetBranch("geantBranch",0,"r");
00025
00026 StMcEventMaker* mcEventMaker = new StMcEventMaker();
00027
00028 St_db_Maker* dbMaker = new St_db_Maker("StarDb","MySQL:StarDb","$STAR/StarDb");
00029
00030
00031 dbMaker->SetDateTime(20050506,214129);
00032
00033
00034 dbMaker->SetFlavor("sim","bprsCalib");
00035
00036 StEmcSimulatorMaker* emcSim = new StEmcSimulatorMaker();
00037
00038
00039
00040
00041
00042
00043
00044
00045 emcSim->setMaximumAdc(kBarrelSmdEtaStripId, 850.0);
00046 emcSim->setMaximumAdcSpread(kBarrelSmdEtaStripId, 15.0);
00047
00048 emcSim->setMaximumAdc(kBarrelSmdPhiStripId, 850.0);
00049 emcSim->setMaximumAdcSpread(kBarrelSmdPhiStripId, 15.0);
00050
00051 chain->Init();
00052
00053 btow_adc = new TH1F("btow_adc","",200,0.,2000.);
00054 btow_energy = new TH1F("btow_energy","",200,0.,60.);
00055
00056 bprs_adc = new TH1F("bprs_adc","",200,0.,1200.);
00057 bprs_energy = new TH1F("bprs_energy","",200,0.,30.);
00058
00059 smde_adc = new TH1F("smde_adc","",200,0.,1200.);
00060 smde_energy = new TH1F("smde_energy","",200,0.,30.);
00061
00062 smdp_adc = new TH1F("smdp_adc","",200,0.,1200.);
00063 smdp_energy = new TH1F("smdp_energy","",200,0.,30.);
00064
00065 int i=0;
00066 while(i<nEvents && chain->Make() == kStOk) {
00067 StEmcCollection *coll = emcSim->getEmcCollection();
00068
00069 StEmcDetector *btow = coll->detector(kBarrelEmcTowerId);
00070 StEmcDetector *bprs = coll->detector(kBarrelEmcPreShowerId);
00071 StEmcDetector *smde = coll->detector(kBarrelSmdEtaStripId);
00072 StEmcDetector *smdp = coll->detector(kBarrelSmdPhiStripId);
00073
00074 for(int m=1; m<=120; m++) {
00075 StSPtrVecEmcRawHit btow_hits = btow->module(m)->hits();
00076 StSPtrVecEmcRawHit bprs_hits = bprs->module(m)->hits();
00077 StSPtrVecEmcRawHit smde_hits = smde->module(m)->hits();
00078 StSPtrVecEmcRawHit smdp_hits = smdp->module(m)->hits();
00079
00080 for(int j=0; j<btow_hits.size(); j++) {
00081 btow_adc->Fill( (btow_hits[j])->adc() );
00082 btow_energy->Fill( (btow_hits[j])->energy() );
00083 }
00084
00085 for(int j=0; j<bprs_hits.size(); j++) {
00086 bprs_adc->Fill( (bprs_hits[j])->adc() );
00087 bprs_energy->Fill( (bprs_hits[j])->energy() );
00088 }
00089
00090 for(int j=0; j<smde_hits.size(); j++) {
00091 smde_adc->Fill( (smde_hits[j])->adc() );
00092 smde_energy->Fill( (smde_hits[j])->energy() );
00093 }
00094
00095 for(int j=0; j<smdp_hits.size(); j++) {
00096 smdp_adc->Fill( (smdp_hits[j])->adc() );
00097 smdp_energy->Fill( (smdp_hits[j])->energy() );
00098 }
00099 }
00100
00101 i++; chain->Clear();
00102 }
00103
00104 chain->ls(3);
00105 chain->Finish();
00106
00107 c = new TCanvas("c","",600,800);
00108 c->Divide(2,4);
00109
00110 TVirtualPad *pad = c->cd(1);
00111 pad->SetLogy();
00112 btow_adc->Draw();
00113
00114 pad = c->cd(2);
00115 pad->SetLogy();
00116 btow_energy->Draw();
00117
00118 pad = c->cd(3);
00119 pad->SetLogy();
00120 bprs_adc->Draw();
00121
00122 pad = c->cd(4);
00123 pad->SetLogy();
00124 bprs_energy->Draw();
00125
00126 pad = c->cd(5);
00127 pad->SetLogy();
00128 smde_adc->Draw();
00129
00130 pad = c->cd(6);
00131 pad->SetLogy();
00132 smde_energy->Draw();
00133
00134 pad = c->cd(7);
00135 pad->SetLogy();
00136 smdp_adc->Draw();
00137
00138 pad = c->cd(8);
00139 pad->SetLogy();
00140 smdp_energy->Draw();
00141 }