ROOT logo
//
// Implementation file for implementation of data analysis aft 900 GeV
//
// Author: A. Pulvirenti
//

#include "Riostream.h"

#include "TH1.h"
#include "TTree.h"
#include "TParticle.h"
#include "TRandom.h"
#include "TLorentzVector.h"

#include "AliLog.h"
#include "AliESDEvent.h"
#include "AliESDVertex.h"
#include "AliESDtrack.h"
#include "AliStack.h"
#include "AliMCEvent.h"

#include "AliRsnAnalysisPhi900GeV.h"


AliRsnAnalysisPhi900GeV::AliRsnAnalysisPhi900GeV(const char *name) :
   AliAnalysisTaskSE(name),
   fUseMC(kFALSE),
   fPDG(0),
   fIM(0.0),
   fPt(0.0),
   fY(0.0),
   fEta(0.0),
   fDCAr(1E6),
   fDCAz(1E6),
   fChi2(1E6),
   fNTPC(0),
   fTPCpar(),
   fMinTPC(-1E6),
   fMaxTPC(1E6),
   fOutTree(),
   fOutList(0x0),
   fHEvents(0x0),
   fTOFESD(kFALSE),
   fTOFSigma(210.0),
   fTOFmaker(0x0),
   fTOFSettings(AliRsnTOFT0maker::kNone)
{
//
// Constructor
//

   DefineOutput(1, TTree::Class());
   DefineOutput(2, TTree::Class());
   DefineOutput(3, TList::Class());
}


AliRsnAnalysisPhi900GeV::AliRsnAnalysisPhi900GeV(const AliRsnAnalysisPhi900GeV& copy) :
   AliAnalysisTaskSE(copy),
   fUseMC(copy.fUseMC),
   fPDG(0),
   fIM(0.0),
   fPt(0.0),
   fY(0.0),
   fEta(0.0),
   fDCAr(copy.fDCAr),
   fDCAz(copy.fDCAz),
   fChi2(copy.fChi2),
   fNTPC(copy.fNTPC),
   fTPCpar(),
   fMinTPC(copy.fMinTPC),
   fMaxTPC(copy.fMaxTPC),
   fOutTree(),
   fOutList(0x0),
   fHEvents(0x0),
   fTOFESD(copy.fTOFESD),
   fTOFSigma(copy.fTOFSigma),
   fTOFmaker(0x0),
   fTOFSettings(copy.fTOFSettings)
{
//
// Copy constructor
//
}


AliRsnAnalysisPhi900GeV& AliRsnAnalysisPhi900GeV::operator=(const AliRsnAnalysisPhi900GeV& copy)
{
//
// Assignment operator
//
  if (this == &copy)
    return *this;
  fUseMC = copy.fUseMC;

   fDCAr = copy.fDCAr;
   fDCAz = copy.fDCAz;
   fChi2 = copy.fChi2;
   fNTPC = copy.fNTPC;

   fMinTPC = copy.fMinTPC;
   fMaxTPC = copy.fMaxTPC;

   fTOFESD      = copy.fTOFESD;
   fTOFSigma    = copy.fTOFSigma;
   fTOFSettings = copy.fTOFSettings;

   return (*this);
}


AliRsnAnalysisPhi900GeV::~AliRsnAnalysisPhi900GeV()
{
//
// Destructor
//

   if (fOutTree[0]) delete fOutTree[0];
   if (fOutTree[1]) delete fOutTree[1];
}


void AliRsnAnalysisPhi900GeV::UserCreateOutputObjects()
{
//
// Create the output data container
//

   // setup TOF maker
   fTOFmaker = new AliRsnTOFT0maker;
   fTOFmaker->SetTimeResolution(fTOFSigma * 1E-12);
   fTOFmaker->SetESDdata(fTOFESD);
   fTOFmaker->fSettings = fTOFSettings;
   AliInfo(Form("TOF sigma    = %f", fTOFSigma));
   AliInfo(Form("TOF ESD      = %s", (fTOFESD ? "YES" : "NO")));
   AliInfo(Form("TOF settings = %s", fTOFmaker->Settings().Data()));

   // load dead channel map
   fTOFmaker->LoadChannelMap((char *)"tofmap.root");
   fTOFmaker->SetMaskOffChannel();

   // initialize random
   gRandom->SetSeed(0);

   // create output trees
   OpenFile(1);
   fOutTree[0] = new TTree("rsnTree", "Pairs");

   fOutTree[0]->Branch("pdg", &fPDG, "pdg/S");
   fOutTree[0]->Branch("im" , &fIM , "im/F");
   fOutTree[0]->Branch("y"  , &fY  , "y/F");
   fOutTree[0]->Branch("pt" , &fPt , "pt/F");
   fOutTree[0]->Branch("eta", &fEta, "eta/F");

   OpenFile(2);
   fOutTree[1] = new TTree("rsnTrue", "True pairs");

   fOutTree[1]->Branch("im" , &fIM , "im/F");
   fOutTree[1]->Branch("y"  , &fY  , "y/F");
   fOutTree[1]->Branch("pt" , &fPt , "pt/F");
   fOutTree[1]->Branch("eta", &fEta, "eta/F");

   OpenFile(3);
   fOutList = new TList;
   fHEvents = new TH1I("hEvents", "Event details", 4, 0, 4);
   fOutList->Add(fHEvents);
}


void AliRsnAnalysisPhi900GeV::UserExec(Option_t *)
{
//
// Main execution function.
// Fills the fHEvents data member with the following legenda:
// 0 -- event OK, prim vertex with tracks
// 1 -- event OK, prim vertex with SPD
// 2 -- event OK but vz large
// 3 -- event bad
//

   // retrieve ESD event and related stack (if available)
   AliESDEvent *esd   = dynamic_cast<AliESDEvent*>(fInputEvent);
   AliStack    *stack = (fMCEvent ? fMCEvent->Stack() : 0x0);
   if (!esd) {
      AliError("No ESD");
      return;
   }

   // get the best primary vertex:
   // first try the one with tracks
   Int_t type = 0;
   const AliESDVertex *v = esd->GetPrimaryVertexTracks();
   if (v->GetNContributors() < 1) {
      // if not good, try SPD vertex
      type = 1;
      v = esd->GetPrimaryVertexSPD();

      // if this is not good skip this event
      if (v->GetNContributors() < 1) {
         fHEvents->Fill(3);
         PostData(3, fOutList);
         return;
      }
   }

   // if the Z position is larger than 10, skip this event
   if (TMath::Abs(v->GetZ()) > 10.0) {
      fHEvents->Fill(2);
      PostData(3, fOutList);
      return;
   }

   // use the type to fill the histogram
   fHEvents->Fill(type);

   // smear TOF times in case of MC
   if (stack) RemakeTOFtimeMC(esd);

   // get time zero for TOF
   Double_t *tof = fTOFmaker->RemakePID(esd);

   ProcessESD(esd, v, tof[0], stack);
   ProcessMC(stack);

   PostData(3, fOutList);
}


void AliRsnAnalysisPhi900GeV::Terminate(Option_t *)
{
//
// Terminate
//
}


void AliRsnAnalysisPhi900GeV::ProcessESD
(AliESDEvent *esd, const AliESDVertex *v, Double_t time0, AliStack *stack)
{
//
// This function works with the ESD object
//

   // prepare to look on all tracks to select the ones
   // which pass all the cuts
   Int_t   ntracks = esd->GetNumberOfTracks();
   TArrayI pos(ntracks);
   TArrayI neg(ntracks);

   // define fixed functions for TOF compatibility range
   Double_t a1 = 0.01, a2 = -0.03;
   Double_t b1 = 0.25, b2 =  0.25;
   Double_t c1 = 0.05, c2 = -0.03;
   Double_t ymax, ymin;

   // loop on all tracks
   Int_t    i, charge, nSPD, npos = 0, nneg = 0;
   Float_t  chi2, b[2], bCov[3];
   Double_t tpc, bb, mom, tofTime, tofRef, tofRel, times[10];
   Bool_t   okTOF;
   for (i = 0; i < ntracks; i++) {
      AliESDtrack *track = esd->GetTrack(i);
      if (!track) continue;

      // skip if it has not the required flags
      if (!track->IsOn(AliESDtrack::kTPCin)) continue;
      if (!track->IsOn(AliESDtrack::kTPCrefit)) continue;
      if (!track->IsOn(AliESDtrack::kITSrefit)) continue;

      // skip if it has not the TPC inner wall projection
      if (!track->GetInnerParam()) continue;

      // skip kink daughters
      if ((Int_t)track->GetKinkIndex(0) > 0) continue;

      // check clusters in TPC
      if (track->GetTPCclusters(0) < fNTPC) continue;

      // check chi2
      chi2  = (Float_t)track->GetTPCchi2();
      chi2 /= (Float_t)track->GetTPCclusters(0);
      if (chi2 > fChi2) continue;

      // check that has at least 1 SPD cluster
      nSPD = 0;
      if (track->HasPointOnITSLayer(0)) nSPD++;
      if (track->HasPointOnITSLayer(1)) nSPD++;
      if (nSPD < 1) continue;

      // check primary by reverting to vertex
      // and checking DCA
      if (!track->RelateToVertex(v, esd->GetMagneticField(), kVeryBig)) continue;
      track->GetImpactParameters(b, bCov);
      if (b[0] > fDCAr) continue;
      if (b[1] > fDCAz) continue;

      // check TPC dE/dx
      AliExternalTrackParam trackIn(*track->GetInnerParam());
      mom = trackIn.P();
      tpc = (Double_t)track->GetTPCsignal();
      bb  = AlephBB(mom);
      tpc = (tpc - bb) / bb;
      if (tpc < fMinTPC || tpc > fMaxTPC) continue;

      // if possible, check TOF
      okTOF = kTRUE;
      if (track->IsOn(AliESDtrack::kTOFpid)) {
         mom = track->P();
         if (mom <= 0.26)
            okTOF = kTRUE;
         else {
            track->GetIntegratedTimes(times);
            tofTime = (Double_t)track->GetTOFsignal() - time0;
            tofRef  = times[AliPID::kKaon];
            tofRel  = (tofTime - tofRef) / tofRef;
            ymax    = a1 / (mom - b1) + c1;
            ymin    = a2 / (mom - b2) + c2;
            okTOF   = (tofRel >= ymin && tofRel <= ymax);
         }
      }
      if (!okTOF) continue;

      // if we arrive here, all cuts were passed
      // and we add the track to one array depending on charge
      charge = (Int_t)track->Charge();
      if (charge > 0)
         pos[npos++] = i;
      else if (charge < 0)
         neg[nneg++] = i;
   }

   // resize arrays accordingly
   pos.Set(npos);
   neg.Set(nneg);

   // loop to compute invariant mass
   Int_t           ip, in, lp, ln;
   AliPID          pid;
   Double_t        kmass = pid.ParticleMass(AliPID::kKaon);
   Double_t        phimass = 1.019455;
   TParticle      *partp = 0x0, *partn = 0x0;
   AliESDtrack    *tp = 0x0, *tn = 0x0;
   TLorentzVector  vp, vn, vsum, vref;
   for (ip = 0; ip < npos; ip++) {
      tp = esd->GetTrack(pos[ip]);
      lp = TMath::Abs(tp->GetLabel());
      if (stack) partp = stack->Particle(lp);

      for (in = 0; in < nneg; in++) {
         if (pos[ip] == neg[in]) continue;
         tn = esd->GetTrack(neg[in]);
         ln = TMath::Abs(tn->GetLabel());
         if (stack) partn = stack->Particle(ln);

         fPDG = 0;
         if (partp && partn) {
            if (partp->GetFirstMother() == partn->GetFirstMother()) {
               if (partp->GetFirstMother() > 0) {
                  TParticle *mum = stack->Particle(partp->GetFirstMother());
                  fPDG = mum->GetPdgCode();
               }
            }
         }
         fPDG = TMath::Abs(fPDG);

         vp.SetXYZM(tp->Px(), tp->Py(), tp->Pz(), kmass);
         vn.SetXYZM(tn->Px(), tn->Py(), tn->Pz(), kmass);
         vsum = vp + vn;
         vref.SetXYZM(vsum.X(), vsum.Y(), vsum.Z(), phimass);

         fIM  = (Float_t)vsum.M();
         fPt  = (Float_t)vsum.Perp();
         fEta = (Float_t)vsum.Eta();
         fY   = (Float_t)vref.Rapidity();

         fOutTree[0]->Fill();
      }
   }

   PostData(1, fOutTree[0]);
}


void AliRsnAnalysisPhi900GeV::ProcessMC(AliStack *stack)
{
//
// Function to process stack only
//

   if (!stack) return;
   Int_t nPart = stack->GetNtrack();

   // loop to compute invariant mass
   Int_t           ip, in;
   AliPID          pid;
   Double_t        kmass = pid.ParticleMass(AliPID::kKaon);
   Double_t        phimass = 1.019455;
   TParticle      *partp = 0x0, *partn = 0x0;
   TLorentzVector  vp, vn, vsum, vref;

   for (ip = 0; ip < nPart; ip++) {
      partp = stack->Particle(ip);
      if (partp->GetPdgCode() != 321) continue;

      for (in = 0; in < nPart; in++) {
         partn = stack->Particle(in);
         if (partn->GetPdgCode() != -321) continue;

         fPDG = 0;
         if (partp->GetFirstMother() == partn->GetFirstMother()) {
            if (partp->GetFirstMother() > 0) {
               TParticle *mum = stack->Particle(partp->GetFirstMother());
               fPDG = mum->GetPdgCode();
            }
         }
         fPDG = TMath::Abs(fPDG);
         if (fPDG != 333) continue;

         vp.SetXYZM(partp->Px(), partp->Py(), partp->Pz(), kmass);
         vn.SetXYZM(partn->Px(), partn->Py(), partn->Pz(), kmass);
         vsum = vp + vn;
         vref.SetXYZM(vsum.X(), vsum.Y(), vsum.Z(), phimass);

         fIM  = (Float_t)vsum.M();
         fPt  = (Float_t)vsum.Perp();
         fEta = (Float_t)vsum.Eta();
         fY   = (Float_t)vref.Rapidity();

         fOutTree[1]->Fill();
      }
   }

   PostData(2, fOutTree[1]);
}


void AliRsnAnalysisPhi900GeV::SetTPCparams(Bool_t isMC)
{
//
// Set TPC bethe-bloch parameters
//

   if (!isMC) {
      fTPCpar[0] = 1.41543;
      fTPCpar[1] = 2.63394E1;
      fTPCpar[2] = 5.0411E-11;
      fTPCpar[3] = 2.12543;
      fTPCpar[4] = 4.88663;
   } else {
      fTPCpar[0] = 2.15898;
      fTPCpar[1] = 1.75295E1;
      fTPCpar[2] = 3.40030E-9;
      fTPCpar[3] = 1.96178;
      fTPCpar[4] = 3.91720;
   }
}


Double_t AliRsnAnalysisPhi900GeV::AlephBB(Double_t p, Double_t mass) const
{
//
// Compute expected Bethe-Bloch for that momentum and mass
//

   if (mass < 1E-6) return 0.0;

   Double_t aa, bb, out, beta, bg;

   bg   = p / mass;
   beta = bg / TMath::Sqrt(1.0 + bg * bg);
   aa   = TMath::Power(beta, fTPCpar[3]);
   bb   = TMath::Power(1. / bg, fTPCpar[4]);
   bb   = TMath::Log(fTPCpar[2] + bb);
   out  = (fTPCpar[1] - aa - bb) * fTPCpar[0] / aa;

   return out;
}


Double_t AliRsnAnalysisPhi900GeV::RemakeTOFtimeMC(AliESDEvent *& esd)
{
//
// Smear initial time for TOF in order to reproduce data resolution
//

   Double_t t0 = gRandom->Gaus(0, 135.); //spread in ps
   Int_t ntracks = esd->GetNumberOfTracks();
   Double_t sigmaStandard = 80.; // 80 ps from TOF

   while (ntracks--) {
      AliESDtrack *t = esd->GetTrack(ntracks);
      if ((t->GetStatus()&AliESDtrack::kTOFout) == 0 || (t->GetStatus()&AliESDtrack::kTIME) == 0) continue;
      Double_t time = t->GetTOFsignal();
      if (fTOFSigma > sigmaStandard) {
         Double_t sigmaAdded = TMath::Sqrt(fTOFSigma * fTOFSigma - sigmaStandard * sigmaStandard);
         Double_t timerandomtrack = gRandom->Gaus(0, sigmaAdded); //spread in ps
         time += timerandomtrack;
      }
      time += t0;
      t->SetTOFsignal(time);
   }
   return t0;
}
 AliRsnAnalysisPhi900GeV.cxx:1
 AliRsnAnalysisPhi900GeV.cxx:2
 AliRsnAnalysisPhi900GeV.cxx:3
 AliRsnAnalysisPhi900GeV.cxx:4
 AliRsnAnalysisPhi900GeV.cxx:5
 AliRsnAnalysisPhi900GeV.cxx:6
 AliRsnAnalysisPhi900GeV.cxx:7
 AliRsnAnalysisPhi900GeV.cxx:8
 AliRsnAnalysisPhi900GeV.cxx:9
 AliRsnAnalysisPhi900GeV.cxx:10
 AliRsnAnalysisPhi900GeV.cxx:11
 AliRsnAnalysisPhi900GeV.cxx:12
 AliRsnAnalysisPhi900GeV.cxx:13
 AliRsnAnalysisPhi900GeV.cxx:14
 AliRsnAnalysisPhi900GeV.cxx:15
 AliRsnAnalysisPhi900GeV.cxx:16
 AliRsnAnalysisPhi900GeV.cxx:17
 AliRsnAnalysisPhi900GeV.cxx:18
 AliRsnAnalysisPhi900GeV.cxx:19
 AliRsnAnalysisPhi900GeV.cxx:20
 AliRsnAnalysisPhi900GeV.cxx:21
 AliRsnAnalysisPhi900GeV.cxx:22
 AliRsnAnalysisPhi900GeV.cxx:23
 AliRsnAnalysisPhi900GeV.cxx:24
 AliRsnAnalysisPhi900GeV.cxx:25
 AliRsnAnalysisPhi900GeV.cxx:26
 AliRsnAnalysisPhi900GeV.cxx:27
 AliRsnAnalysisPhi900GeV.cxx:28
 AliRsnAnalysisPhi900GeV.cxx:29
 AliRsnAnalysisPhi900GeV.cxx:30
 AliRsnAnalysisPhi900GeV.cxx:31
 AliRsnAnalysisPhi900GeV.cxx:32
 AliRsnAnalysisPhi900GeV.cxx:33
 AliRsnAnalysisPhi900GeV.cxx:34
 AliRsnAnalysisPhi900GeV.cxx:35
 AliRsnAnalysisPhi900GeV.cxx:36
 AliRsnAnalysisPhi900GeV.cxx:37
 AliRsnAnalysisPhi900GeV.cxx:38
 AliRsnAnalysisPhi900GeV.cxx:39
 AliRsnAnalysisPhi900GeV.cxx:40
 AliRsnAnalysisPhi900GeV.cxx:41
 AliRsnAnalysisPhi900GeV.cxx:42
 AliRsnAnalysisPhi900GeV.cxx:43
 AliRsnAnalysisPhi900GeV.cxx:44
 AliRsnAnalysisPhi900GeV.cxx:45
 AliRsnAnalysisPhi900GeV.cxx:46
 AliRsnAnalysisPhi900GeV.cxx:47
 AliRsnAnalysisPhi900GeV.cxx:48
 AliRsnAnalysisPhi900GeV.cxx:49
 AliRsnAnalysisPhi900GeV.cxx:50
 AliRsnAnalysisPhi900GeV.cxx:51
 AliRsnAnalysisPhi900GeV.cxx:52
 AliRsnAnalysisPhi900GeV.cxx:53
 AliRsnAnalysisPhi900GeV.cxx:54
 AliRsnAnalysisPhi900GeV.cxx:55
 AliRsnAnalysisPhi900GeV.cxx:56
 AliRsnAnalysisPhi900GeV.cxx:57
 AliRsnAnalysisPhi900GeV.cxx:58
 AliRsnAnalysisPhi900GeV.cxx:59
 AliRsnAnalysisPhi900GeV.cxx:60
 AliRsnAnalysisPhi900GeV.cxx:61
 AliRsnAnalysisPhi900GeV.cxx:62
 AliRsnAnalysisPhi900GeV.cxx:63
 AliRsnAnalysisPhi900GeV.cxx:64
 AliRsnAnalysisPhi900GeV.cxx:65
 AliRsnAnalysisPhi900GeV.cxx:66
 AliRsnAnalysisPhi900GeV.cxx:67
 AliRsnAnalysisPhi900GeV.cxx:68
 AliRsnAnalysisPhi900GeV.cxx:69
 AliRsnAnalysisPhi900GeV.cxx:70
 AliRsnAnalysisPhi900GeV.cxx:71
 AliRsnAnalysisPhi900GeV.cxx:72
 AliRsnAnalysisPhi900GeV.cxx:73
 AliRsnAnalysisPhi900GeV.cxx:74
 AliRsnAnalysisPhi900GeV.cxx:75
 AliRsnAnalysisPhi900GeV.cxx:76
 AliRsnAnalysisPhi900GeV.cxx:77
 AliRsnAnalysisPhi900GeV.cxx:78
 AliRsnAnalysisPhi900GeV.cxx:79
 AliRsnAnalysisPhi900GeV.cxx:80
 AliRsnAnalysisPhi900GeV.cxx:81
 AliRsnAnalysisPhi900GeV.cxx:82
 AliRsnAnalysisPhi900GeV.cxx:83
 AliRsnAnalysisPhi900GeV.cxx:84
 AliRsnAnalysisPhi900GeV.cxx:85
 AliRsnAnalysisPhi900GeV.cxx:86
 AliRsnAnalysisPhi900GeV.cxx:87
 AliRsnAnalysisPhi900GeV.cxx:88
 AliRsnAnalysisPhi900GeV.cxx:89
 AliRsnAnalysisPhi900GeV.cxx:90
 AliRsnAnalysisPhi900GeV.cxx:91
 AliRsnAnalysisPhi900GeV.cxx:92
 AliRsnAnalysisPhi900GeV.cxx:93
 AliRsnAnalysisPhi900GeV.cxx:94
 AliRsnAnalysisPhi900GeV.cxx:95
 AliRsnAnalysisPhi900GeV.cxx:96
 AliRsnAnalysisPhi900GeV.cxx:97
 AliRsnAnalysisPhi900GeV.cxx:98
 AliRsnAnalysisPhi900GeV.cxx:99
 AliRsnAnalysisPhi900GeV.cxx:100
 AliRsnAnalysisPhi900GeV.cxx:101
 AliRsnAnalysisPhi900GeV.cxx:102
 AliRsnAnalysisPhi900GeV.cxx:103
 AliRsnAnalysisPhi900GeV.cxx:104
 AliRsnAnalysisPhi900GeV.cxx:105
 AliRsnAnalysisPhi900GeV.cxx:106
 AliRsnAnalysisPhi900GeV.cxx:107
 AliRsnAnalysisPhi900GeV.cxx:108
 AliRsnAnalysisPhi900GeV.cxx:109
 AliRsnAnalysisPhi900GeV.cxx:110
 AliRsnAnalysisPhi900GeV.cxx:111
 AliRsnAnalysisPhi900GeV.cxx:112
 AliRsnAnalysisPhi900GeV.cxx:113
 AliRsnAnalysisPhi900GeV.cxx:114
 AliRsnAnalysisPhi900GeV.cxx:115
 AliRsnAnalysisPhi900GeV.cxx:116
 AliRsnAnalysisPhi900GeV.cxx:117
 AliRsnAnalysisPhi900GeV.cxx:118
 AliRsnAnalysisPhi900GeV.cxx:119
 AliRsnAnalysisPhi900GeV.cxx:120
 AliRsnAnalysisPhi900GeV.cxx:121
 AliRsnAnalysisPhi900GeV.cxx:122
 AliRsnAnalysisPhi900GeV.cxx:123
 AliRsnAnalysisPhi900GeV.cxx:124
 AliRsnAnalysisPhi900GeV.cxx:125
 AliRsnAnalysisPhi900GeV.cxx:126
 AliRsnAnalysisPhi900GeV.cxx:127
 AliRsnAnalysisPhi900GeV.cxx:128
 AliRsnAnalysisPhi900GeV.cxx:129
 AliRsnAnalysisPhi900GeV.cxx:130
 AliRsnAnalysisPhi900GeV.cxx:131
 AliRsnAnalysisPhi900GeV.cxx:132
 AliRsnAnalysisPhi900GeV.cxx:133
 AliRsnAnalysisPhi900GeV.cxx:134
 AliRsnAnalysisPhi900GeV.cxx:135
 AliRsnAnalysisPhi900GeV.cxx:136
 AliRsnAnalysisPhi900GeV.cxx:137
 AliRsnAnalysisPhi900GeV.cxx:138
 AliRsnAnalysisPhi900GeV.cxx:139
 AliRsnAnalysisPhi900GeV.cxx:140
 AliRsnAnalysisPhi900GeV.cxx:141
 AliRsnAnalysisPhi900GeV.cxx:142
 AliRsnAnalysisPhi900GeV.cxx:143
 AliRsnAnalysisPhi900GeV.cxx:144
 AliRsnAnalysisPhi900GeV.cxx:145
 AliRsnAnalysisPhi900GeV.cxx:146
 AliRsnAnalysisPhi900GeV.cxx:147
 AliRsnAnalysisPhi900GeV.cxx:148
 AliRsnAnalysisPhi900GeV.cxx:149
 AliRsnAnalysisPhi900GeV.cxx:150
 AliRsnAnalysisPhi900GeV.cxx:151
 AliRsnAnalysisPhi900GeV.cxx:152
 AliRsnAnalysisPhi900GeV.cxx:153
 AliRsnAnalysisPhi900GeV.cxx:154
 AliRsnAnalysisPhi900GeV.cxx:155
 AliRsnAnalysisPhi900GeV.cxx:156
 AliRsnAnalysisPhi900GeV.cxx:157
 AliRsnAnalysisPhi900GeV.cxx:158
 AliRsnAnalysisPhi900GeV.cxx:159
 AliRsnAnalysisPhi900GeV.cxx:160
 AliRsnAnalysisPhi900GeV.cxx:161
 AliRsnAnalysisPhi900GeV.cxx:162
 AliRsnAnalysisPhi900GeV.cxx:163
 AliRsnAnalysisPhi900GeV.cxx:164
 AliRsnAnalysisPhi900GeV.cxx:165
 AliRsnAnalysisPhi900GeV.cxx:166
 AliRsnAnalysisPhi900GeV.cxx:167
 AliRsnAnalysisPhi900GeV.cxx:168
 AliRsnAnalysisPhi900GeV.cxx:169
 AliRsnAnalysisPhi900GeV.cxx:170
 AliRsnAnalysisPhi900GeV.cxx:171
 AliRsnAnalysisPhi900GeV.cxx:172
 AliRsnAnalysisPhi900GeV.cxx:173
 AliRsnAnalysisPhi900GeV.cxx:174
 AliRsnAnalysisPhi900GeV.cxx:175
 AliRsnAnalysisPhi900GeV.cxx:176
 AliRsnAnalysisPhi900GeV.cxx:177
 AliRsnAnalysisPhi900GeV.cxx:178
 AliRsnAnalysisPhi900GeV.cxx:179
 AliRsnAnalysisPhi900GeV.cxx:180
 AliRsnAnalysisPhi900GeV.cxx:181
 AliRsnAnalysisPhi900GeV.cxx:182
 AliRsnAnalysisPhi900GeV.cxx:183
 AliRsnAnalysisPhi900GeV.cxx:184
 AliRsnAnalysisPhi900GeV.cxx:185
 AliRsnAnalysisPhi900GeV.cxx:186
 AliRsnAnalysisPhi900GeV.cxx:187
 AliRsnAnalysisPhi900GeV.cxx:188
 AliRsnAnalysisPhi900GeV.cxx:189
 AliRsnAnalysisPhi900GeV.cxx:190
 AliRsnAnalysisPhi900GeV.cxx:191
 AliRsnAnalysisPhi900GeV.cxx:192
 AliRsnAnalysisPhi900GeV.cxx:193
 AliRsnAnalysisPhi900GeV.cxx:194
 AliRsnAnalysisPhi900GeV.cxx:195
 AliRsnAnalysisPhi900GeV.cxx:196
 AliRsnAnalysisPhi900GeV.cxx:197
 AliRsnAnalysisPhi900GeV.cxx:198
 AliRsnAnalysisPhi900GeV.cxx:199
 AliRsnAnalysisPhi900GeV.cxx:200
 AliRsnAnalysisPhi900GeV.cxx:201
 AliRsnAnalysisPhi900GeV.cxx:202
 AliRsnAnalysisPhi900GeV.cxx:203
 AliRsnAnalysisPhi900GeV.cxx:204
 AliRsnAnalysisPhi900GeV.cxx:205
 AliRsnAnalysisPhi900GeV.cxx:206
 AliRsnAnalysisPhi900GeV.cxx:207
 AliRsnAnalysisPhi900GeV.cxx:208
 AliRsnAnalysisPhi900GeV.cxx:209
 AliRsnAnalysisPhi900GeV.cxx:210
 AliRsnAnalysisPhi900GeV.cxx:211
 AliRsnAnalysisPhi900GeV.cxx:212
 AliRsnAnalysisPhi900GeV.cxx:213
 AliRsnAnalysisPhi900GeV.cxx:214
 AliRsnAnalysisPhi900GeV.cxx:215
 AliRsnAnalysisPhi900GeV.cxx:216
 AliRsnAnalysisPhi900GeV.cxx:217
 AliRsnAnalysisPhi900GeV.cxx:218
 AliRsnAnalysisPhi900GeV.cxx:219
 AliRsnAnalysisPhi900GeV.cxx:220
 AliRsnAnalysisPhi900GeV.cxx:221
 AliRsnAnalysisPhi900GeV.cxx:222
 AliRsnAnalysisPhi900GeV.cxx:223
 AliRsnAnalysisPhi900GeV.cxx:224
 AliRsnAnalysisPhi900GeV.cxx:225
 AliRsnAnalysisPhi900GeV.cxx:226
 AliRsnAnalysisPhi900GeV.cxx:227
 AliRsnAnalysisPhi900GeV.cxx:228
 AliRsnAnalysisPhi900GeV.cxx:229
 AliRsnAnalysisPhi900GeV.cxx:230
 AliRsnAnalysisPhi900GeV.cxx:231
 AliRsnAnalysisPhi900GeV.cxx:232
 AliRsnAnalysisPhi900GeV.cxx:233
 AliRsnAnalysisPhi900GeV.cxx:234
 AliRsnAnalysisPhi900GeV.cxx:235
 AliRsnAnalysisPhi900GeV.cxx:236
 AliRsnAnalysisPhi900GeV.cxx:237
 AliRsnAnalysisPhi900GeV.cxx:238
 AliRsnAnalysisPhi900GeV.cxx:239
 AliRsnAnalysisPhi900GeV.cxx:240
 AliRsnAnalysisPhi900GeV.cxx:241
 AliRsnAnalysisPhi900GeV.cxx:242
 AliRsnAnalysisPhi900GeV.cxx:243
 AliRsnAnalysisPhi900GeV.cxx:244
 AliRsnAnalysisPhi900GeV.cxx:245
 AliRsnAnalysisPhi900GeV.cxx:246
 AliRsnAnalysisPhi900GeV.cxx:247
 AliRsnAnalysisPhi900GeV.cxx:248
 AliRsnAnalysisPhi900GeV.cxx:249
 AliRsnAnalysisPhi900GeV.cxx:250
 AliRsnAnalysisPhi900GeV.cxx:251
 AliRsnAnalysisPhi900GeV.cxx:252
 AliRsnAnalysisPhi900GeV.cxx:253
 AliRsnAnalysisPhi900GeV.cxx:254
 AliRsnAnalysisPhi900GeV.cxx:255
 AliRsnAnalysisPhi900GeV.cxx:256
 AliRsnAnalysisPhi900GeV.cxx:257
 AliRsnAnalysisPhi900GeV.cxx:258
 AliRsnAnalysisPhi900GeV.cxx:259
 AliRsnAnalysisPhi900GeV.cxx:260
 AliRsnAnalysisPhi900GeV.cxx:261
 AliRsnAnalysisPhi900GeV.cxx:262
 AliRsnAnalysisPhi900GeV.cxx:263
 AliRsnAnalysisPhi900GeV.cxx:264
 AliRsnAnalysisPhi900GeV.cxx:265
 AliRsnAnalysisPhi900GeV.cxx:266
 AliRsnAnalysisPhi900GeV.cxx:267
 AliRsnAnalysisPhi900GeV.cxx:268
 AliRsnAnalysisPhi900GeV.cxx:269
 AliRsnAnalysisPhi900GeV.cxx:270
 AliRsnAnalysisPhi900GeV.cxx:271
 AliRsnAnalysisPhi900GeV.cxx:272
 AliRsnAnalysisPhi900GeV.cxx:273
 AliRsnAnalysisPhi900GeV.cxx:274
 AliRsnAnalysisPhi900GeV.cxx:275
 AliRsnAnalysisPhi900GeV.cxx:276
 AliRsnAnalysisPhi900GeV.cxx:277
 AliRsnAnalysisPhi900GeV.cxx:278
 AliRsnAnalysisPhi900GeV.cxx:279
 AliRsnAnalysisPhi900GeV.cxx:280
 AliRsnAnalysisPhi900GeV.cxx:281
 AliRsnAnalysisPhi900GeV.cxx:282
 AliRsnAnalysisPhi900GeV.cxx:283
 AliRsnAnalysisPhi900GeV.cxx:284
 AliRsnAnalysisPhi900GeV.cxx:285
 AliRsnAnalysisPhi900GeV.cxx:286
 AliRsnAnalysisPhi900GeV.cxx:287
 AliRsnAnalysisPhi900GeV.cxx:288
 AliRsnAnalysisPhi900GeV.cxx:289
 AliRsnAnalysisPhi900GeV.cxx:290
 AliRsnAnalysisPhi900GeV.cxx:291
 AliRsnAnalysisPhi900GeV.cxx:292
 AliRsnAnalysisPhi900GeV.cxx:293
 AliRsnAnalysisPhi900GeV.cxx:294
 AliRsnAnalysisPhi900GeV.cxx:295
 AliRsnAnalysisPhi900GeV.cxx:296
 AliRsnAnalysisPhi900GeV.cxx:297
 AliRsnAnalysisPhi900GeV.cxx:298
 AliRsnAnalysisPhi900GeV.cxx:299
 AliRsnAnalysisPhi900GeV.cxx:300
 AliRsnAnalysisPhi900GeV.cxx:301
 AliRsnAnalysisPhi900GeV.cxx:302
 AliRsnAnalysisPhi900GeV.cxx:303
 AliRsnAnalysisPhi900GeV.cxx:304
 AliRsnAnalysisPhi900GeV.cxx:305
 AliRsnAnalysisPhi900GeV.cxx:306
 AliRsnAnalysisPhi900GeV.cxx:307
 AliRsnAnalysisPhi900GeV.cxx:308
 AliRsnAnalysisPhi900GeV.cxx:309
 AliRsnAnalysisPhi900GeV.cxx:310
 AliRsnAnalysisPhi900GeV.cxx:311
 AliRsnAnalysisPhi900GeV.cxx:312
 AliRsnAnalysisPhi900GeV.cxx:313
 AliRsnAnalysisPhi900GeV.cxx:314
 AliRsnAnalysisPhi900GeV.cxx:315
 AliRsnAnalysisPhi900GeV.cxx:316
 AliRsnAnalysisPhi900GeV.cxx:317
 AliRsnAnalysisPhi900GeV.cxx:318
 AliRsnAnalysisPhi900GeV.cxx:319
 AliRsnAnalysisPhi900GeV.cxx:320
 AliRsnAnalysisPhi900GeV.cxx:321
 AliRsnAnalysisPhi900GeV.cxx:322
 AliRsnAnalysisPhi900GeV.cxx:323
 AliRsnAnalysisPhi900GeV.cxx:324
 AliRsnAnalysisPhi900GeV.cxx:325
 AliRsnAnalysisPhi900GeV.cxx:326
 AliRsnAnalysisPhi900GeV.cxx:327
 AliRsnAnalysisPhi900GeV.cxx:328
 AliRsnAnalysisPhi900GeV.cxx:329
 AliRsnAnalysisPhi900GeV.cxx:330
 AliRsnAnalysisPhi900GeV.cxx:331
 AliRsnAnalysisPhi900GeV.cxx:332
 AliRsnAnalysisPhi900GeV.cxx:333
 AliRsnAnalysisPhi900GeV.cxx:334
 AliRsnAnalysisPhi900GeV.cxx:335
 AliRsnAnalysisPhi900GeV.cxx:336
 AliRsnAnalysisPhi900GeV.cxx:337
 AliRsnAnalysisPhi900GeV.cxx:338
 AliRsnAnalysisPhi900GeV.cxx:339
 AliRsnAnalysisPhi900GeV.cxx:340
 AliRsnAnalysisPhi900GeV.cxx:341
 AliRsnAnalysisPhi900GeV.cxx:342
 AliRsnAnalysisPhi900GeV.cxx:343
 AliRsnAnalysisPhi900GeV.cxx:344
 AliRsnAnalysisPhi900GeV.cxx:345
 AliRsnAnalysisPhi900GeV.cxx:346
 AliRsnAnalysisPhi900GeV.cxx:347
 AliRsnAnalysisPhi900GeV.cxx:348
 AliRsnAnalysisPhi900GeV.cxx:349
 AliRsnAnalysisPhi900GeV.cxx:350
 AliRsnAnalysisPhi900GeV.cxx:351
 AliRsnAnalysisPhi900GeV.cxx:352
 AliRsnAnalysisPhi900GeV.cxx:353
 AliRsnAnalysisPhi900GeV.cxx:354
 AliRsnAnalysisPhi900GeV.cxx:355
 AliRsnAnalysisPhi900GeV.cxx:356
 AliRsnAnalysisPhi900GeV.cxx:357
 AliRsnAnalysisPhi900GeV.cxx:358
 AliRsnAnalysisPhi900GeV.cxx:359
 AliRsnAnalysisPhi900GeV.cxx:360
 AliRsnAnalysisPhi900GeV.cxx:361
 AliRsnAnalysisPhi900GeV.cxx:362
 AliRsnAnalysisPhi900GeV.cxx:363
 AliRsnAnalysisPhi900GeV.cxx:364
 AliRsnAnalysisPhi900GeV.cxx:365
 AliRsnAnalysisPhi900GeV.cxx:366
 AliRsnAnalysisPhi900GeV.cxx:367
 AliRsnAnalysisPhi900GeV.cxx:368
 AliRsnAnalysisPhi900GeV.cxx:369
 AliRsnAnalysisPhi900GeV.cxx:370
 AliRsnAnalysisPhi900GeV.cxx:371
 AliRsnAnalysisPhi900GeV.cxx:372
 AliRsnAnalysisPhi900GeV.cxx:373
 AliRsnAnalysisPhi900GeV.cxx:374
 AliRsnAnalysisPhi900GeV.cxx:375
 AliRsnAnalysisPhi900GeV.cxx:376
 AliRsnAnalysisPhi900GeV.cxx:377
 AliRsnAnalysisPhi900GeV.cxx:378
 AliRsnAnalysisPhi900GeV.cxx:379
 AliRsnAnalysisPhi900GeV.cxx:380
 AliRsnAnalysisPhi900GeV.cxx:381
 AliRsnAnalysisPhi900GeV.cxx:382
 AliRsnAnalysisPhi900GeV.cxx:383
 AliRsnAnalysisPhi900GeV.cxx:384
 AliRsnAnalysisPhi900GeV.cxx:385
 AliRsnAnalysisPhi900GeV.cxx:386
 AliRsnAnalysisPhi900GeV.cxx:387
 AliRsnAnalysisPhi900GeV.cxx:388
 AliRsnAnalysisPhi900GeV.cxx:389
 AliRsnAnalysisPhi900GeV.cxx:390
 AliRsnAnalysisPhi900GeV.cxx:391
 AliRsnAnalysisPhi900GeV.cxx:392
 AliRsnAnalysisPhi900GeV.cxx:393
 AliRsnAnalysisPhi900GeV.cxx:394
 AliRsnAnalysisPhi900GeV.cxx:395
 AliRsnAnalysisPhi900GeV.cxx:396
 AliRsnAnalysisPhi900GeV.cxx:397
 AliRsnAnalysisPhi900GeV.cxx:398
 AliRsnAnalysisPhi900GeV.cxx:399
 AliRsnAnalysisPhi900GeV.cxx:400
 AliRsnAnalysisPhi900GeV.cxx:401
 AliRsnAnalysisPhi900GeV.cxx:402
 AliRsnAnalysisPhi900GeV.cxx:403
 AliRsnAnalysisPhi900GeV.cxx:404
 AliRsnAnalysisPhi900GeV.cxx:405
 AliRsnAnalysisPhi900GeV.cxx:406
 AliRsnAnalysisPhi900GeV.cxx:407
 AliRsnAnalysisPhi900GeV.cxx:408
 AliRsnAnalysisPhi900GeV.cxx:409
 AliRsnAnalysisPhi900GeV.cxx:410
 AliRsnAnalysisPhi900GeV.cxx:411
 AliRsnAnalysisPhi900GeV.cxx:412
 AliRsnAnalysisPhi900GeV.cxx:413
 AliRsnAnalysisPhi900GeV.cxx:414
 AliRsnAnalysisPhi900GeV.cxx:415
 AliRsnAnalysisPhi900GeV.cxx:416
 AliRsnAnalysisPhi900GeV.cxx:417
 AliRsnAnalysisPhi900GeV.cxx:418
 AliRsnAnalysisPhi900GeV.cxx:419
 AliRsnAnalysisPhi900GeV.cxx:420
 AliRsnAnalysisPhi900GeV.cxx:421
 AliRsnAnalysisPhi900GeV.cxx:422
 AliRsnAnalysisPhi900GeV.cxx:423
 AliRsnAnalysisPhi900GeV.cxx:424
 AliRsnAnalysisPhi900GeV.cxx:425
 AliRsnAnalysisPhi900GeV.cxx:426
 AliRsnAnalysisPhi900GeV.cxx:427
 AliRsnAnalysisPhi900GeV.cxx:428
 AliRsnAnalysisPhi900GeV.cxx:429
 AliRsnAnalysisPhi900GeV.cxx:430
 AliRsnAnalysisPhi900GeV.cxx:431
 AliRsnAnalysisPhi900GeV.cxx:432
 AliRsnAnalysisPhi900GeV.cxx:433
 AliRsnAnalysisPhi900GeV.cxx:434
 AliRsnAnalysisPhi900GeV.cxx:435
 AliRsnAnalysisPhi900GeV.cxx:436
 AliRsnAnalysisPhi900GeV.cxx:437
 AliRsnAnalysisPhi900GeV.cxx:438
 AliRsnAnalysisPhi900GeV.cxx:439
 AliRsnAnalysisPhi900GeV.cxx:440
 AliRsnAnalysisPhi900GeV.cxx:441
 AliRsnAnalysisPhi900GeV.cxx:442
 AliRsnAnalysisPhi900GeV.cxx:443
 AliRsnAnalysisPhi900GeV.cxx:444
 AliRsnAnalysisPhi900GeV.cxx:445
 AliRsnAnalysisPhi900GeV.cxx:446
 AliRsnAnalysisPhi900GeV.cxx:447
 AliRsnAnalysisPhi900GeV.cxx:448
 AliRsnAnalysisPhi900GeV.cxx:449
 AliRsnAnalysisPhi900GeV.cxx:450
 AliRsnAnalysisPhi900GeV.cxx:451
 AliRsnAnalysisPhi900GeV.cxx:452
 AliRsnAnalysisPhi900GeV.cxx:453
 AliRsnAnalysisPhi900GeV.cxx:454
 AliRsnAnalysisPhi900GeV.cxx:455
 AliRsnAnalysisPhi900GeV.cxx:456
 AliRsnAnalysisPhi900GeV.cxx:457
 AliRsnAnalysisPhi900GeV.cxx:458
 AliRsnAnalysisPhi900GeV.cxx:459
 AliRsnAnalysisPhi900GeV.cxx:460
 AliRsnAnalysisPhi900GeV.cxx:461
 AliRsnAnalysisPhi900GeV.cxx:462
 AliRsnAnalysisPhi900GeV.cxx:463
 AliRsnAnalysisPhi900GeV.cxx:464
 AliRsnAnalysisPhi900GeV.cxx:465
 AliRsnAnalysisPhi900GeV.cxx:466
 AliRsnAnalysisPhi900GeV.cxx:467
 AliRsnAnalysisPhi900GeV.cxx:468
 AliRsnAnalysisPhi900GeV.cxx:469
 AliRsnAnalysisPhi900GeV.cxx:470
 AliRsnAnalysisPhi900GeV.cxx:471
 AliRsnAnalysisPhi900GeV.cxx:472
 AliRsnAnalysisPhi900GeV.cxx:473
 AliRsnAnalysisPhi900GeV.cxx:474
 AliRsnAnalysisPhi900GeV.cxx:475
 AliRsnAnalysisPhi900GeV.cxx:476
 AliRsnAnalysisPhi900GeV.cxx:477
 AliRsnAnalysisPhi900GeV.cxx:478
 AliRsnAnalysisPhi900GeV.cxx:479
 AliRsnAnalysisPhi900GeV.cxx:480
 AliRsnAnalysisPhi900GeV.cxx:481
 AliRsnAnalysisPhi900GeV.cxx:482
 AliRsnAnalysisPhi900GeV.cxx:483
 AliRsnAnalysisPhi900GeV.cxx:484
 AliRsnAnalysisPhi900GeV.cxx:485
 AliRsnAnalysisPhi900GeV.cxx:486
 AliRsnAnalysisPhi900GeV.cxx:487
 AliRsnAnalysisPhi900GeV.cxx:488
 AliRsnAnalysisPhi900GeV.cxx:489
 AliRsnAnalysisPhi900GeV.cxx:490
 AliRsnAnalysisPhi900GeV.cxx:491
 AliRsnAnalysisPhi900GeV.cxx:492
 AliRsnAnalysisPhi900GeV.cxx:493
 AliRsnAnalysisPhi900GeV.cxx:494
 AliRsnAnalysisPhi900GeV.cxx:495
 AliRsnAnalysisPhi900GeV.cxx:496
 AliRsnAnalysisPhi900GeV.cxx:497
 AliRsnAnalysisPhi900GeV.cxx:498
 AliRsnAnalysisPhi900GeV.cxx:499
 AliRsnAnalysisPhi900GeV.cxx:500
 AliRsnAnalysisPhi900GeV.cxx:501
 AliRsnAnalysisPhi900GeV.cxx:502
 AliRsnAnalysisPhi900GeV.cxx:503