00001
00002
00003 anaEEexample(int neve=300, TString Tname0="/star/u/eemcdb/dataFeb11/run00006.eeTree", int flag=0, float Emax=40.){
00004 TString Tname0="../sim2003/mc_eve2";
00005 gSystem->Load("StRoot/StEEmcUtil/EEevent/libEEevent.so");
00006 gSystem->Load("StRoot/StEEmcUtil/anaEE/libanaEE.so");
00007
00008
00009 gStyle->SetOptStat(111111);
00010
00011 TString Tname;
00012 Tname=Tname0;
00013
00014 TFile *of=new TFile(Tname+"hist.root","recreate");
00015 anaEEexample ana(of);
00016
00017
00018 printf("read upto %d events from file=%s.root\n",neve,Tname.Data());
00019 TFile *f = new TFile(Tname+".root");
00020 assert(f->IsOpen());
00021 TTree *t4 = (TTree*)f->Get("EEtree");
00022 assert(t4);
00023
00024
00025 EEeventDst *event = new EEeventDst();
00026
00027
00028 TBranch *br = t4->GetBranch("EEdst");
00029 br->SetAddress(&event);
00030 Int_t nevent = (Int_t)t4->GetEntries();
00031
00032
00033 for (Int_t ie=0;ie<nevent;ie++) {
00034 if(ie>=neve) break;
00035 printf("\niEve=%d ---------- \n",ie);
00036
00037 br->GetEntry(ie);
00038
00039 ana.process(event);
00040 }
00041
00042 printf("\n\nTotal events in B TTree=%d\n",nevent);
00043
00044 of->ls();
00045 of->Write();
00046 TH1F* h0=(TH1F* )of->Get("de");
00047 h0->Draw();
00048
00049 }
00050
00051
00052
00053 #if 0
00054
00055
00056 TClonesArray *secA=new TClonesArray("EEsectorDst",1000);
00057 TBranch *BRsec = t4->GetBranch("Sec");
00058 BRsec->SetAddress(&secA);
00059
00060 int eveID=0;
00061 TBranch *BRid = t4->GetBranch("ID");
00062 BRid->SetAddress(&eveID);
00063
00064 Int_t nevent = (Int_t)t4->GetEntries();
00065 printf("Total events in TTree=%d\n",nevent);
00066
00067
00068
00069
00070 for (Int_t ie=0;ie<nevent;ie++) {
00071 if(ie>=neve) break;
00072 int i;
00073
00074
00075 BRid->GetEntry(ie);
00076 BRsec->GetEntry(ie);
00077
00078 if(ie%1==0) printf("\n\iEve=%d nSec=%d with data \n",ie,secA->GetEntries());
00079
00080
00081 if(ie%1==0) printf("\n\iEve=%d eveID=%d, nSec=%d with data :\n",ie,eveID,secA->GetEntries());
00082
00083
00084 int is;
00085 for(is=0;is<secA->GetEntries();is++) {
00086 EEsectorDst *sec=(EEsectorDst*)secA->At(is);
00087 if(ie<1) sec->print();
00088
00089 TClonesArray *hitA;
00090 int ih;
00091
00092 TClonesArray *hitAA[]={sec->getPre1Hits(),sec->getPre2Hits(),sec->getTwHits(),sec->getPostHits(),sec->getSmdUHits(),sec->getSmdVHits()};
00093 int iz;
00094 for(iz=0;iz<4;iz++) {
00095 hitA=hitAA[iz];
00096 if(ie<1) printf(" sectorID=%d iz=%d nHit=%d :\n",sec->getID(),iz,hitA->GetEntries());
00097 }
00098
00099
00100 for(iz=4;iz<6;iz++) {
00101 hitA=hitAA[iz];
00102 if(ie<1) printf(" sectorID=%d iz=%d nHit=%d :\n",sec->getID(),iz,hitA->GetEntries());
00103 for(ih=0;ih<hitA->GetEntries();ih++) {
00104 EEsmdHitDst *hit2=(EEsmdHitDst*)hitA->At(ih);
00105 int strip;
00106 float ener;
00107 hit2->get(strip,ener);
00108 if(ie<1) printf(" ih=%d strip=%d etaBin=%d ener=%f\n",ih, sec->getID(), strip,ener);
00109 hit->print();
00110 }
00111 }
00112
00113
00114 }
00115
00116 }
00117 #endif
00118
00119
00120
00121
00122