00001 class StChain;
00002 class StEEmcPi0Reader;
00003 class StEEmcMixEvent;
00004
00005 StChain *chain = 0;
00006 StEEmcPi0Reader *reader = 0;
00007 StEEmcMixEvent *realEvent = 0;
00008
00009 Long64_t nevents = 0;
00010
00011 TH1F *hMass = 0;
00012
00013 void readPi0()
00014 {
00015
00016 hMass = new TH1F("hMass","Inv mass",120,0.,1.2);
00017
00018
00019 LoadLibs();
00020
00021
00022 chain = new StChain("chain");
00023
00024
00025 reader = new StEEmcPi0Reader();
00026 chainFiles("/auto/pdsfdv34/starspin/jwebb/2006/tests/");
00027 nevents = reader->getNumberOfEvents();
00028
00029 chain->ls(3);
00030 chain->Init();
00031
00032 Int_t stat = 0;
00033 Int_t event = 0;
00034 while ( !stat )
00035 {
00036
00037 chain -> Clear();
00038 stat = chain->Make();
00039
00040 realEvent = reader->event();
00041
00042 Int_t nPairs = reader -> event() -> nPairs;
00043 for ( Int_t i=0;i<nPairs;i++ )
00044 {
00045 Float_t mass = reader->event()->mMass[i];
00046 hMass->Fill(mass);
00047
00048
00049
00050
00051 std::cout << "[" << event << "/" << nevents << "]"
00052 << " npair=" << realEvent->nPairs
00053 << " mass=" << realEvent->mMass[i]
00054 << " pt=" << realEvent->mPT[i]
00055 << " bx=" << realEvent->bxStar
00056 << " zgg=" << realEvent->mZgg[i]
00057 << " spin4=" << realEvent->mSpin4
00058 << " dsmvtx=" << realEvent->mBbcTrigger.onlineTimeDifference()
00059 << std::endl;
00060
00061
00062
00063
00064 }
00065 event++;
00066
00067
00068
00069 }
00070
00071
00072 }
00073
00074 void chainFiles(const Char_t *path)
00075 {
00076
00077 TSystemDirectory dir("dir",path);
00078 TIter next( dir.GetListOfFiles() );
00079 TObject *file = 0;
00080 while ( file = (TObject*)next() )
00081 {
00082 TString name=file->GetName();
00083 if ( name.Contains("root") ) reader->chainFile(name);
00084
00085 }
00086
00087
00088 }
00089
00090
00091 void LoadLibs()
00092 {
00093
00094 gROOT -> LoadMacro("$STAR/StRoot/StMuDSTMaker/COMMON/macros/loadSharedLibraries.C");
00095 loadSharedLibraries();
00096
00097 gSystem->Load("StDbLib");
00098 gSystem->Load("StDbBroker");
00099 gSystem->Load("St_db_Maker");
00100 gSystem->Load("StEEmcUtil");
00101 gSystem->Load("StEEmcDbMaker");
00102 gSystem->Load("StEEmcSimulatorMaker");
00103
00104 gSystem->Load("StEEmcA2EMaker");
00105 gSystem->Load("StEEmcClusterMaker");
00106 gSystem->Load("StEEmcPointMaker");
00107 gSystem->Load("StEEmcPi0Mixer");
00108 gSystem->Load("StSpinDbMaker");
00109
00110 }