00001 class StGammaEvent;
00002
00003 TFile *file = 0;
00004 TTree *tree = 0;
00005
00006 StGammaEvent *event = 0;
00007
00008 const Float_t rootS = 200.0;
00009
00010 void readGammaTree( const Char_t *fname = "gamma_tree.root" )
00011 {
00012 gROOT->LoadMacro("StRoot/StGammaMaker/macros/loadGammaLibs.C");
00013 loadGammaLibs();
00014
00015 file = new TFile(fname);
00016 tree = (TTree*)file->Get("gammas");
00017 event = new StGammaEvent();
00018 tree->SetBranchAddress("GammaEvent",&event);
00019
00020
00021 for ( Long64_t i=0;i<tree->GetEntries();i++ )
00022 {
00023 tree->GetEntry(i);
00024
00025 Int_t run = event->runNumber();
00026 Int_t eventid = event->eventNumber();
00027 Int_t nc = event->numberOfCandidates();
00028 UShort_t flags = event->flags();
00029 Float_t sumPt = event->sumPt(-2.5,2.5);
00030 Float_t sumTrackPt = event->sumTrackPt(-2.5,2.5);
00031 Float_t sumTowerPt = event->sumTowerPt(-2.5,2.5);
00032
00033 std::cout << "-------------------------------------------------------------" << std::endl;
00034 std::cout << "run = " << run << std::endl;
00035 std::cout << "event = " << eventid << std::endl;
00036 std::cout << "flags = " << Form("0x%X",flags) << std::endl;
00037 std::cout << "pt sum = " << sumPt << std::endl;
00038 std::cout << " + tracks = " << sumTrackPt << std::endl;
00039 std::cout << " + towers = " << sumTowerPt << std::endl;
00040
00041 std::cout << "printing n candidates = " << nc << std::endl;
00042 for ( Int_t ic = 0; ic < nc; ic++ )
00043 {
00044 StGammaCandidate *candidate = event->candidate(ic);
00045 if ( !candidate ) continue;
00046
00047
00048 Int_t gammaId = candidate->id();
00049 Int_t caloId = candidate->detectorId();
00050
00051
00052 Float_t pt = candidate->momentum().Perp();
00053 Float_t eta = candidate->momentum().Eta();
00054 Float_t phi = candidate->momentum().Phi();
00055 Float_t xf = candidate->momentum().Z() / rootS;
00056
00057
00058 Float_t iso4 = candidate->sumPt(0.4);
00059 Float_t iso5 = candidate->sumPt(0.5);
00060 Float_t iso7 = candidate->sumPt(0.7);
00061
00062 Int_t ntracks4 = candidate->numberOfTracks(0.4);
00063 Int_t ntowers4 = candidate->numberOfTowers(0.4);
00064 Int_t ntracks5 = candidate->numberOfTracks(0.5);
00065 Int_t ntowers5 = candidate->numberOfTowers(0.5);
00066 Int_t ntracks7 = candidate->numberOfTracks(0.7);
00067 Int_t ntowers7 = candidate->numberOfTowers(0.7);
00068
00069 Int_t ntracks = candidate->numberOfMyTracks();
00070 Int_t ntowers = candidate->numberOfMyTowers();
00071
00072 std::cout << " ++++++++++++++++++++++++++++++++";
00073 std::cout << " id=" << gammaId <<std::endl;
00074 std::cout << " calo=" << caloId << std::endl;
00075 std::cout << " pt="<<pt << " eta="<<eta<<" phi="<<phi << std::endl;
00076 std::cout << " ntowers=" << ntowers << " ntracks="<<ntracks<<std::endl;
00077
00078 std::cout << " iso4="<<iso4<<" iso5="<<iso5<<" iso7="<<iso7<<std::endl;
00079 std::cout << " ntr4="<<ntracks4<<" ntr5="<<ntracks5<<" ntr7="<<ntracks7<<std::endl;
00080 std::cout << " ntw4="<<ntowers4<<" ntw5="<<ntowers5<<" ntw7="<<ntowers7<<std::endl;
00081
00082 Int_t nu = candidate->numberOfSmdu();
00083 Int_t nv = candidate->numberOfSmdv();
00084 std::cout << "nu="<<nu<<" nv="<<nv<<std::endl;
00085
00086
00087
00088 }
00089
00090
00091 }
00092
00093
00094 }