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

#include "Riostream.h"
#include <iomanip>

#include "TH1.h"
#include "TH3.h"
#include "TFile.h"
#include "TTree.h"
#include "TParticle.h"
#include "TRandom.h"
#include "TLorentzVector.h"
#include "TDatabasePDG.h"

#include "AliLog.h"
#include "AliESDpid.h"
#include "AliESDEvent.h"
#include "AliESDVertex.h"
#include "AliESDtrack.h"
#include "AliESDtrackCuts.h"
#include "AliStack.h"
#include "AliMCEvent.h"
#include "AliTOFT0maker.h"
#include "AliTOFcalib.h"
#include "AliCDBManager.h"
#include "AliITSPIDResponse.h"
#include "AliCFContainer.h"
#include "AliVEventHandler.h"
#include "AliESDInputHandler.h"
#include "AliMultiInputEventHandler.h"
#include "AliAnalysisManager.h"

#include "AliRsnEvent.h"
#include "AliRsnTarget.h"
#include "AliRsnDaughter.h"

#include "AliRsnAnalysisPhi7TeV.h"

//__________________________________________________________________________________________________
AliRsnAnalysisPhi7TeV::AliRsnAnalysisPhi7TeV(const char *name, Bool_t isMC) :
   AliAnalysisTaskSE(name),
   fIsMC(isMC),
   fAddTPC(kTRUE),
   fAddITS(kFALSE),
   fCheckITS(kTRUE),
   fCheckTPC(kTRUE),
   fCheckTOF(kTRUE),
   fStep(1000),
   fPhiMass(1.019455),
   fKaonMass(0.49677),
   fMaxVz(10.0),
   fITSNSigma(3.0),
   fTPCMomentumThreshold(0.350),
   fTOFNSigma(3.0),
   fESDtrackCutsTPC(0),
   fESDtrackCutsITS(0),
   fESDpid(0),
   fOutList(0x0),
   fCFunlike(0),
   fCFlikePP(0),
   fCFlikeMM(0),
   fCFtrues(0),
   fCFkaons(0),
   fHEvents(0x0)
{
//
// Constructor
//

   fTPCNSigma[0] = 5.0;
   fTPCNSigma[1] = 3.0;
   
   fVertexX[0] = fVertexX[1] = 0;
   fVertexY[0] = fVertexZ[1] = 0;
   fVertexZ[0] = fVertexZ[1] = 0;
   
   DefineOutput(1, TList::Class());
}

//__________________________________________________________________________________________________
AliRsnAnalysisPhi7TeV::AliRsnAnalysisPhi7TeV(const AliRsnAnalysisPhi7TeV& copy) :
   AliAnalysisTaskSE(copy),
   fIsMC(copy.fIsMC),
   fAddTPC(copy.fAddTPC),
   fAddITS(copy.fAddITS),
   fCheckITS(copy.fCheckITS),
   fCheckTPC(copy.fCheckTPC),
   fCheckTOF(copy.fCheckTOF),
   fStep(copy.fStep),
   fPhiMass(copy.fPhiMass),
   fKaonMass(copy.fKaonMass),
   fMaxVz(copy.fMaxVz),
   fITSNSigma(copy.fITSNSigma),
   fTPCMomentumThreshold(copy.fTPCMomentumThreshold),
   fTOFNSigma(copy.fTOFNSigma),
   fESDtrackCutsTPC(copy.fESDtrackCutsTPC),
   fESDtrackCutsITS(copy.fESDtrackCutsITS),
   fESDpid(copy.fESDpid),
   fOutList(0x0),
   fCFunlike(0),
   fCFlikePP(0),
   fCFlikeMM(0),
   fCFtrues(0),
   fCFkaons(0),
   fHEvents(0x0)
{
//
// Copy constructor
//

   fTPCNSigma[0] = copy.fTPCNSigma[0];
   fTPCNSigma[1] = copy.fTPCNSigma[1];
   
   fVertexX[0] = fVertexX[1] = 0;
   fVertexY[0] = fVertexZ[1] = 0;
   fVertexZ[0] = fVertexZ[1] = 0;
}

//__________________________________________________________________________________________________
AliRsnAnalysisPhi7TeV& AliRsnAnalysisPhi7TeV::operator=(const AliRsnAnalysisPhi7TeV& copy)
{
//
// Assignment operator
//
  if (this == &copy)
    return *this;
   fIsMC = copy.fIsMC;
   fAddTPC = copy.fAddTPC;
   fAddITS = copy.fAddITS;
   fCheckITS = copy.fCheckITS;
   fCheckTPC = copy.fCheckTPC;
   fCheckTOF = copy.fCheckTOF;
   fStep = copy.fStep;
   fPhiMass = copy.fPhiMass;
   fKaonMass = copy.fKaonMass;
   fMaxVz = copy.fMaxVz;
   fITSNSigma = copy.fITSNSigma;
   fTPCNSigma[0] = copy.fTPCNSigma[0];
   fTPCNSigma[1] = copy.fTPCNSigma[1];
   fTPCMomentumThreshold = copy.fTPCMomentumThreshold;
   fTOFNSigma = copy.fTOFNSigma;
   fESDtrackCutsTPC = copy.fESDtrackCutsTPC;
   fESDtrackCutsITS = copy.fESDtrackCutsITS;
   fESDpid = copy.fESDpid;

   return (*this);
}

//__________________________________________________________________________________________________
AliRsnAnalysisPhi7TeV::~AliRsnAnalysisPhi7TeV()
{
//
// Destructor
//
}

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

   // create output list
   OpenFile(1);
   fOutList = new TList;
   
   // event related histograms
   fHEvents    = new TH1I("hEvents", "Event details", kVertexTypes, 0, kVertexTypes);
   fVertexX[0] = new TH1F("hVertexTRKX", "X position of primary vertex (tracks)", 200,  -2,  2);
   fVertexY[0] = new TH1F("hVertexTRKY", "Y position of primary vertex (tracks)", 200,  -2,  2);
   fVertexZ[0] = new TH1F("hVertexTRKZ", "Z position of primary vertex (tracks)", 400, -20, 20);
   fVertexX[1] = new TH1F("hVertexSPDX", "X position of primary vertex (SPD)"   , 200,  -2,  2);
   fVertexY[1] = new TH1F("hVertexSPDY", "Y position of primary vertex (SPD)"   , 200,  -2,  2);
   fVertexZ[1] = new TH1F("hVertexSPDZ", "Z position of primary vertex (SPD)"   , 400, -20, 20);
   
   fHEvents->GetXaxis()->SetBinLabel(1, "Good vertex with tracks");
   fHEvents->GetXaxis()->SetBinLabel(2, "Good vertex with SPD");
   fHEvents->GetXaxis()->SetBinLabel(3, "Far vertex with tracks");
   fHEvents->GetXaxis()->SetBinLabel(4, "Far vertex with SPD");
   fHEvents->GetXaxis()->SetBinLabel(5, "No good vertex");
   fHEvents->GetXaxis()->SetBinLabel(6, "Empty event");

   // define axes:
   // pairs [0] = inv. mass
   //       [1] = inv. mass resolution
   //       [2] = pt
   //       [3] = rec. multiplicity
   //       [4] = MC multiplicity (if available)
   //
   // kaons [0] = pt
   //       [1] = pTPC
   //       [2] = DCAr
   //       [3] = DCAz
   //       [4] = signalITS
   //       [5] = signalTPC
   //       [6] = betaTOF
   //       [7] = rec. multiplicity
   //       [8] = MC multiplicity (if available)
   Double_t minIM     =  0.9, maxIM    =   1.4;
   Double_t minIMRes  = -5.0, maxIMRes =   5.0;
   Double_t minMom    =  0.0, maxMom   =   5.0;
   Double_t minDCAr   =  0.0, maxDCAr  =   1.0;
   Double_t minDCAz   =  0.0, maxDCAz  =   5.0;
   Double_t minITS    =  0.0, maxITS   = 800.0; // raw signal
   Double_t minTPC    =  0.0, maxTPC   = 800.0; // raw signal
   Double_t minTOF    =  0.0, maxTOF   =   1.0; // beta = length / TOF time / c
   Double_t mult[]    =  {0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13., 14., 15., 16., 17., 18., 19., 20., 21., 22., 23., 24., 25., 30., 35., 40., 50., 60., 70., 80., 90., 100., 120., 140., 160., 180., 500.};
   Int_t    nIM       =  500;
   Int_t    nIMRes    =  100;
   Int_t    nMom      =   50;
   Int_t    nDCAr     =  100;
   Int_t    nDCAz     =  100;
   Int_t    nITS      =  800;
   Int_t    nTPC      =  800;
   Int_t    nTOF      =  100;
   Int_t    nMult     =  sizeof(mult) / sizeof(mult[0]) - 1;
   Int_t    nBins1[9] =  {nMom, nMom, nDCAr, nDCAz, nITS, nTPC, nTOF, nMult, nMult};
   Int_t    nBins2[5] =  {nIM , nIMRes, nMom, nMult, nMult};
      
   // containers for analysis pairs have 2 steps (quality, quality+PID)
   // and those for efficiency have 3 (add full MC)
   // REMINDER: to use variable bins, call container->SetBinLimits(iaxis, Double_t *array);
   fCFunlike = new AliCFContainer("CFUnlike", "", 2, 5, nBins2);
   fCFlikePP = new AliCFContainer("CFLikePP", "", 2, 5, nBins2);
   fCFlikeMM = new AliCFContainer("CFLikeMM", "", 2, 5, nBins2);
   fCFtrues  = new AliCFContainer("CFtrues" , "", 3, 5, nBins2);
   fCFkaons  = new AliCFContainer("CFkaons" , "", 3, 9, nBins1);
   
   // create a unique temp array to all pair containers
   AliCFContainer *CFpair[4];
   CFpair[0] = fCFunlike;
   CFpair[1] = fCFlikePP;
   CFpair[2] = fCFlikeMM;
   CFpair[3] = fCFtrues;
   
   // define axes:
   // pairs [0] = inv. mass
   //       [1] = inv. mass resolution
   //       [2] = pt
   //       [3] = rec. multiplicity
   //       [4] = MC multiplicity (if available)
   //
   // kaons [0] = pt
   //       [1] = pTPC
   //       [2] = DCAr
   //       [3] = DCAz
   //       [4] = signalITS
   //       [5] = signalTPC
   //       [6] = betaTOF
   //       [7] = rec. multiplicity
   //       [8] = MC multiplicity (if available)
   Int_t i;
   for (i = 0; i < 4; i++) {
      CFpair[i]->SetBinLimits(0, minIM   , maxIM   );
      CFpair[i]->SetBinLimits(1, minIMRes, maxIMRes);
      CFpair[i]->SetBinLimits(2, minMom  , maxMom  );
      CFpair[i]->SetBinLimits(3, mult);
      CFpair[i]->SetBinLimits(4, mult);
   }
   fCFkaons->SetBinLimits(0, minMom , maxMom );
   fCFkaons->SetBinLimits(1, minMom , maxMom );
   fCFkaons->SetBinLimits(2, minDCAr, maxDCAr);
   fCFkaons->SetBinLimits(3, minDCAz, maxDCAz);
   fCFkaons->SetBinLimits(4, minITS , maxITS );
   fCFkaons->SetBinLimits(5, minTPC , maxTPC );
   fCFkaons->SetBinLimits(6, minTOF , maxTOF );
   fCFkaons->SetBinLimits(7, mult);
   fCFkaons->SetBinLimits(8, mult);

   // add all outputs to the list
   fOutList->Add(fHEvents);
   fOutList->Add(fVertexX[0]);
   fOutList->Add(fVertexY[0]);
   fOutList->Add(fVertexZ[0]);
   fOutList->Add(fVertexX[1]);
   fOutList->Add(fVertexY[1]);
   fOutList->Add(fVertexZ[1]);
   fOutList->Add(fCFunlike);
   fOutList->Add(fCFlikePP);
   fOutList->Add(fCFlikeMM);
   fOutList->Add(fCFtrues);
   fOutList->Add(fCFkaons);
   
   // update histogram container
   PostData(1, fOutList);
}

//__________________________________________________________________________________________________
void AliRsnAnalysisPhi7TeV::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
//

   static Int_t evNum = 0;
   evNum++;
   if (evNum % fStep == 0) AliInfo(Form("Processing event #%7d", evNum));

   // retrieve ESD event and related stack (if available)
   AliESDEvent *esd = static_cast<AliESDEvent*>(fInputEvent);
   AliMCEvent  *mc  = static_cast<AliMCEvent*>(fMCEvent);
   
   // if the AliESDpid object is not assigned, do this now
   // find an AliESDpid from input handler
   if (!fESDpid) {
      AliAnalysisManager *mgr   = AliAnalysisManager::GetAnalysisManager();
      AliVEventHandler   *evh   = mgr->GetInputEventHandler();
      AliESDInputHandler *esdin = 0x0;
      if (evh->IsA() == AliMultiInputEventHandler::Class()) {
         AliMultiInputEventHandler *multh = static_cast<AliMultiInputEventHandler*>(evh);
         AliInputEventHandler      *input = multh->GetFirstInputEventHandler();
         if (input->IsA() == AliESDInputHandler::Class()) {
            esdin = static_cast<AliESDInputHandler*>(input);
         }
      }
      else if (evh->IsA() == AliESDInputHandler::Class()) {
         esdin = static_cast<AliESDInputHandler*>(evh);
      }
      if (!esdin) {
         AliFatal("Required ESD input handler");
         return;
      }
      fESDpid = esdin->GetESDpid();
   }

   // check the event
   EVertexType eval = EventEval(esd);
   fHEvents->Fill((Int_t)eval);

   // if the event is good for analysis, process it
   if (eval == kGoodTracksPrimaryVertex || eval == kGoodSPDPrimaryVertex) {
      ProcessESD(esd, mc);
      if (mc) ProcessMC (esd, mc);
   }

   // update histogram container
   PostData(1, fOutList);
}

//__________________________________________________________________________________________________
void AliRsnAnalysisPhi7TeV::Terminate(Option_t *)
{
//
// Terminate
//
}

//__________________________________________________________________________________________________
AliRsnAnalysisPhi7TeV::EVertexType AliRsnAnalysisPhi7TeV::EventEval(AliESDEvent *esd)
{
//
// Checks if the event is good for analysis.
// Returns one of the flag values defined in the header
//

   // reject empty events
   Int_t ntracks = esd->GetNumberOfTracks();
   if (!ntracks) return kEmptyEvent;

   // get the best primary vertex:
   // first try the one with tracks
   const AliESDVertex *vTrk  = esd->GetPrimaryVertexTracks();
   const AliESDVertex *vSPD  = esd->GetPrimaryVertexSPD();
   Double_t            vzTrk = 1000000.0;
   Double_t            vzSPD = 1000000.0;
   Int_t               ncTrk = -1;
   Int_t               ncSPD = -1;
   if (vTrk) ncTrk = (Int_t)vTrk->GetNContributors();
   if (vSPD) ncSPD = (Int_t)vSPD->GetNContributors();
   if (vTrk) vzTrk = TMath::Abs(vTrk->GetZ());
   if (vSPD) vzSPD = TMath::Abs(vSPD->GetZ());
   if (vTrk && ncTrk > 0) {
      // fill the histograms
      fVertexX[0]->Fill(vTrk->GetX());
      fVertexY[0]->Fill(vTrk->GetY());
      fVertexZ[0]->Fill(vTrk->GetZ());

      // check VZ position
      if (vzTrk <= fMaxVz)
         return kGoodTracksPrimaryVertex;
      else
         return kFarTracksPrimaryVertex;
   } else if (vSPD && ncSPD > 0) {
      // fill the histograms
      fVertexX[1]->Fill(vSPD->GetX());
      fVertexY[1]->Fill(vSPD->GetY());
      fVertexZ[1]->Fill(vSPD->GetZ());

      // check VZ position
      if (vzSPD <= fMaxVz)
         return kGoodSPDPrimaryVertex;
      else
         return kFarSPDPrimaryVertex;
   } else
      return kNoGoodPrimaryVertex;
}

//__________________________________________________________________________________________________
void AliRsnAnalysisPhi7TeV::ProcessESD
(AliESDEvent *esd, AliMCEvent *mc)
{
//
// This function works with the ESD object
// and fills all containers
//

   // some utility arrays, declared static
   // to avoid creting/destroying at each event
   static TArrayC quality; // will be 1 or 0 depending if cut is passed or not
   static TArrayC pid;     // will be 1 or 0 depending if cut is passed or not

   // get stack, if possible
   AliStack *stack = 0x0;
   if (mc) stack = mc->Stack();

   // get number of tracks, which is used for setting arrays
   Int_t itrack, ntracks = esd->GetNumberOfTracks();
   quality.Set(ntracks);
   pid    .Set(ntracks);
   
   // loop on tracks and sets the flags
   for (itrack = 0; itrack < ntracks; itrack++) {
      
      // get track
      AliESDtrack *track = esd->GetTrack(itrack);
            
      // check cuts
      quality[itrack] = (Char_t)OkQuality(track);
      pid    [itrack] = (Char_t)OkPID(track);
   }
   
   // now, we can fill the histograms
   Int_t i1, i2, label;
   Double_t var[5];
   TLorentzVector p1[2], p2[2], sum[2];
   AliESDtrack *tr1, *tr2;
   TParticle   *pr1, *pr2;
   ETrackType type1, type2;
   
   // multiplicity is defined for whole event
   var[3] = AliESDtrackCuts::GetReferenceMultiplicity(esd, kTRUE);
   var[4] = (mc ? mc->GetNumberOfTracks() : 0.0);
   
   for (i1 = 0; i1 < ntracks; i1++) {
      
      // check only quality
      if (!quality[i1]) continue;
      
      // skip tracks which are not of a good type
      tr1 = esd->GetTrack(i1);
      type1 = TrackType(tr1);
      if (type1 >= kTrackTypes) continue;
      
      // skip neutral
      tr1 = esd->GetTrack(i1);
      if (tr1->Charge() == 0) continue;
      
      // try to retrieve the MC
      pr1 = 0x0;
      label = TMath::Abs(tr1->GetLabel());
      if (stack) {
         if (label >= 0 && label < stack->GetNtrack()) {
            pr1 = stack->Particle(label);
         }
      }
      
      // initialize 4-momenta
      p1[0].SetXYZM(tr1->Px(), tr1->Py(), tr1->Pz(), fKaonMass);
      if (pr1) p1[1].SetXYZM(pr1->Px(), pr1->Py(), pr1->Pz(), fKaonMass);
      
      for (i2 = i1+1; i2 < ntracks; i2++) {
         
         // check only quality
         if (!quality[i2]) continue;
         
         // skip tracks which are not of a good type
         tr2 = esd->GetTrack(i2);
         type2 = TrackType(tr2);
         if (type2 >= kTrackTypes) continue;
         
         // skip neutrals
         tr2 = esd->GetTrack(i2);
         if (tr2->Charge() == 0) continue;
         
         // try to retrieve MC
         pr2 = 0x0;
         label = TMath::Abs(tr2->GetLabel());
         if (stack) {
            if (label >= 0 && label < stack->GetNtrack()) {
               pr2 = stack->Particle(label);
            }
         }
         
         // initialize 4-momenta
         p2[0].SetXYZM(tr2->Px(), tr2->Py(), tr2->Pz(), fKaonMass);
         if (pr2) p1[1].SetXYZM(pr2->Px(), pr2->Py(), pr2->Pz(), fKaonMass);
         
         // sum 4-momenta
         for (Int_t i = 0; i < 2; i++) sum[i] = p1[i] + p2[i];
         
         // compute values
         // [0] = inv. mass
         // [1] = inv. mass resolution
         // [2] = pt
         // [3] = rec. multiplicity
         // [4] = MC multiplicity (if available)
         var[0] = sum[0].M();
         if (mc) var[1] = (sum[1].M() - sum[0].M()) / sum[1].M();
         var[2] = sum[0].Perp();
         
         // fill containers
         AliCFContainer *cf = 0x0;
         if (tr1->Charge() != tr2->Charge())
            cf = fCFunlike;
         else if (tr1->Charge() > 0)
            cf = fCFlikePP;
         else
            cf = fCFlikeMM;
            
         // fill steps: 0 = quality onl1, 1 = quality + PID
         cf->Fill(var, 0);
         if (pid[i1] && pid[i2]) cf->Fill(var, 1);
      }
   }
}

//__________________________________________________________________________________________________
void AliRsnAnalysisPhi7TeV::ProcessMC(AliESDEvent *esd, AliMCEvent *mc)
{
//
// Searches true pairs and fill efficiency for kaons
//

   // get stack, if possible
   AliStack *stack = 0x0;
   if (mc) stack = mc->Stack(); else return;
   
   // count tracks
   Int_t ipart, itrack, npart = stack->GetNprimary();
   AliESDtrack *matched[2] = {0x0, 0x0};
   Double_t var1[10], var2[5];
   Float_t  b[2], bcov[3];
   
   var1[7] = var2[3] = AliESDtrackCuts::GetReferenceMultiplicity(esd, kTRUE);
   var1[8] = var2[4] = npart;

   // loop on kaons
   for (ipart = 0; ipart < npart; ipart++) {
      TParticle *part = stack->Particle(ipart);
      if (!stack->IsPhysicalPrimary(ipart)) continue;
      if (TMath::Abs(part->GetPdgCode()) != 321) continue;
      
      // search best reconstructed track
      // which matches that particle ID
      // and checks it against cuts
      matched[0] = 0x0;
      itrack = BestMatchedTrack(esd, ipart);
      if (itrack >= 0) matched[0] = esd->GetTrack(itrack);
      
      // compute all variables fo single-tracks
      // [0] = pt
      // [1] = pTPC
      // [2] = DCAr
      // [3] = DCAz
      // [4] = signalITS
      // [5] = signalTPC
      // [6] = betaTOF
      // [7] = rec. multiplicity
      // [8] = MC multiplicity (if available)
      var1[0] = part->Pt();
      var1[1] = -1.0;
      for (Int_t i = 0; i < 6; i++) var1[i] = -1.0;
      if (matched[0]) {
         matched[0]->GetImpactParameters(b, bcov);
         if (IsTPC(matched[0])) var1[1] = matched[0]->GetInnerParam()->P();
         var1[2] = TMath::Abs((Double_t)b[0]);
         var1[3] = TMath::Abs((Double_t)b[1]);
         var1[4] = matched[0]->GetITSsignal();
         var1[5] = matched[0]->GetTPCsignal();
         if (MatchTOF(matched[0])) {
            var1[6]  = matched[0]->GetIntegratedLength();
            var1[6] /= matched[0]->GetTOFsignal();
            var1[6] /= 0.299792458E8;
         }
      }
      
      // fill container
      fCFkaons->Fill(var1, 0);
      
      // replace MC momentum with rec
      if (matched[0]) {
         var1[0] = matched[0]->Pt();
         if (OkQuality(matched[0])) {
            fCFkaons->Fill(var1, 1);
            if (OkPID(matched[0])) fCFkaons->Fill(var1, 2);
         }
      }
   }
   
   // loop on phi's
   Int_t id1, id2;
   TParticle *d1, *d2;
   TLorentzVector p1[2], p2[2], sum[2];
   for (ipart = 0; ipart < npart; ipart++) {
      TParticle *part = stack->Particle(ipart);
      
      // check that particle is a phi
      // and that has decayed into kaons
      if (TMath::Abs(part->GetPdgCode()) != 333) continue;
      id1 = part->GetFirstDaughter();
      id2 = part->GetLastDaughter();
      d1 = d2 = 0x0;
      if (id1 >= 0 && id1 < npart) d1 = stack->Particle(id1);
      if (id2 >= 0 && id2 < npart) d2 = stack->Particle(id2);
      if (!d1 || !d2) continue;
      if (TMath::Abs(d1->GetPdgCode()) != 321) continue;
      if (TMath::Abs(d2->GetPdgCode()) != 321) continue;
      
      // get matched tracks
      matched[0] = matched[1] = 0x0;
      itrack = BestMatchedTrack(esd, id1);
      if (itrack >= 0) matched[0] = esd->GetTrack(itrack);
      itrack = BestMatchedTrack(esd, id2);
      if (itrack >= 0) matched[1] = esd->GetTrack(itrack);
      
      // compute values
      // [0] = inv. mass
      // [1] = inv. mass resolution
      // [2] = pt
      // [3] = rec. multiplicity
      // [4] = MC multiplicity (if available)
      p1[0].SetXYZM(d1->Px(), d1->Py(), d1->Pz(), fKaonMass);
      p2[0].SetXYZM(d2->Px(), d2->Py(), d2->Pz(), fKaonMass);
      p1[1].SetXYZM(0.0, 0.0, 0.0, 0.0);
      p2[1].SetXYZM(0.0, 0.0, 0.0, 0.0);
      if (matched[0]) p1[1].SetXYZM(matched[0]->Px(), matched[0]->Py(), matched[0]->Pz(), fKaonMass);
      if (matched[1]) p2[1].SetXYZM(matched[1]->Px(), matched[1]->Py(), matched[1]->Pz(), fKaonMass);
      for (Int_t i = 0; i < 2; i++) sum[i] = p1[i] + p2[i];
      var2[0] = sum[0].M();
      var2[1] = (sum[0].M() - sum[1].M()) / sum[0].M();
      var2[2] = sum[0].Perp();
      
      // fill container
      fCFtrues->Fill(var2, 0);
      
      // replace MC momenta with rec
      if (matched[0] && matched[1]) {
         var2[0] = sum[1].M();
         var2[2] = sum[1].Perp();
         if (OkQuality(matched[0]) && OkQuality(matched[1])) {
            fCFtrues->Fill(var2, 1);
            if (OkPID(matched[0]) && OkPID(matched[1])) fCFtrues->Fill(var2, 2);
         }
      }
   }
}

//______________________________________________________________________________
Bool_t AliRsnAnalysisPhi7TeV::OkPIDITS(AliESDtrack *track, AliPID::EParticleType pid)
{
//
// Check ITS particle identification with 3sigma cut
//

   // reject not ITS standalone tracks
   if (!IsITS(track)) return kFALSE;

   // count PID layers and reject if they are too few
   Int_t   k, nITSpidLayers = 0;
   UChar_t itsCluMap = track->GetITSClusterMap();
   for (k = 2; k < 6; k++) if (itsCluMap & (1 << k)) ++nITSpidLayers;
   if (nITSpidLayers < 3) {
      AliDebug(AliLog::kDebug + 2, "Rejecting track with too few ITS pid layers");
      return kFALSE;
   }

   // check the track type (ITS+TPC or ITS standalone)
   // and reject it if it is of none of the allowed types
   Bool_t isSA = kFALSE;
   if (IsTPC(track)) isSA = kFALSE;
   else if (IsITS(track)) isSA = kTRUE;
   else {
      AliWarning("Track is neither ITS+TPC nor ITS standalone");
      return kFALSE;
   }

   // create the PID response object and compute nsigma
   AliITSPIDResponse &itsrsp = fESDpid->GetITSResponse();
   Double_t mom    = track->P();
   Double_t nSigma = itsrsp.GetNumberOfSigmas(mom, track->GetITSsignal(), pid, nITSpidLayers, isSA);

   // evaluate the cut
   Bool_t ok = (TMath::Abs(nSigma) <= fITSNSigma);

   // debug message
   AliDebug(AliLog::kDebug + 2, Form("ITS nsigma = %f -- max = %f -- cut %s", nSigma, fITSNSigma, (ok ? "passed" : "failed")));

   // outcome
   return ok;
}

//______________________________________________________________________________
Bool_t AliRsnAnalysisPhi7TeV::OkPIDTPC(AliESDtrack *track, AliPID::EParticleType pid)
{
//
// Check TPC particle identification with {3|5}sigmacut,
// depending on the track total momentum.
//

   // reject not TPC tracks
   if (!IsTPC(track)) return kFALSE;
   if (!track->GetInnerParam()) return kFALSE;

   // setup TPC PID response
   AliTPCPIDResponse &tpcrsp = fESDpid->GetTPCResponse();

   // get momentum and number of sigmas and choose the reference band
   Double_t mom       = track->GetInnerParam()->P();
   Double_t nSigma    = tpcrsp.GetNumberOfSigmas(mom, track->GetTPCsignal(), track->GetTPCsignalN(), pid);
   Double_t maxNSigma = fTPCNSigma[0];
   if (mom > fTPCMomentumThreshold) maxNSigma = fTPCNSigma[1];

   // evaluate the cut
   Bool_t ok = (TMath::Abs(nSigma) <= maxNSigma);

   // debug message
   AliDebug(AliLog::kDebug + 2, Form("TPC nsigma = %f -- max = %f -- cut %s", nSigma, maxNSigma, (ok ? "passed" : "failed")));

   // outcome
   return ok;
}

//______________________________________________________________________________
Bool_t AliRsnAnalysisPhi7TeV::OkPIDTOF(AliESDtrack *track, AliPID::EParticleType pid)
{
//
// Check TOF particle identification if matched there.
//

   // reject not TOF-matched tracks
   if (!MatchTOF(track)) return kFALSE;

   // setup TOF PID response
   AliTOFPIDResponse &tofrsp = fESDpid->GetTOFResponse();

   // get info for computation
   Double_t momentum = track->P();
   Double_t time     = track->GetTOFsignal();
   Double_t timeint[AliPID::kSPECIES];
   tofrsp.GetStartTime(momentum);
   track->GetIntegratedTimes(timeint);

   // check the cut
   Double_t timeDiff = time - timeint[(Int_t)pid];
   Double_t sigmaRef = tofrsp.GetExpectedSigma(momentum, timeint[(Int_t)pid], AliPID::ParticleMass(pid));
   Double_t nSigma   = timeDiff / sigmaRef;

   // evaluate the cut
   Bool_t ok = (TMath::Abs(nSigma) <= fTOFNSigma);

   // debug message
   AliDebug(AliLog::kDebug + 2, Form("TOF nsigma = %f -- nsigma = %f -- cut %s", nSigma, fTOFNSigma, (ok ? "passed" : "failed")));

   // outcome
   return ok;
}

//______________________________________________________________________________
Int_t AliRsnAnalysisPhi7TeV::MatchedTrack(AliESDEvent *esd, Int_t label, Int_t &npassed, Int_t start)
{
//
// Starting from 'start' searches a track in ESD which has label 'label',
// and if it is found, records how many cuts it passes:
// 0 = none
// 1 = only quality
// 2 = quality and PID
// Returns the ID of that track (-1 if not found)
//

   Int_t it, ntracks = esd->GetNumberOfTracks();
   AliESDtrack *track = 0x0;
   
   for (it = start; it < ntracks; it++) {
      track = esd->GetTrack(it);
      if (TMath::Abs(track->GetLabel() != label)) continue;
      
      npassed = 0;
      if (OkQuality(track)) npassed++;
      if (OkPID    (track)) npassed++;
      return it;
   }
   
   return -1;
}

//______________________________________________________________________________
Int_t AliRsnAnalysisPhi7TeV::BestMatchedTrack(AliESDEvent *esd, Int_t label)
{
//
// Searches the best track which matches the specified label
// where 'best' means the one which passes most cuts
//

   // first attempt:
   // if it fails, there are no matched tracks
   Int_t ncuts = 0;
   Int_t itrack = MatchedTrack(esd, label, ncuts);
   /*if (itrack < 0) return -1;
   
   // if it succeeds, use it as a start for a loop
   Int_t bestCuts = ncuts;
   Int_t start    = itrack + 1;
   for (;;) {
      it = MatchedTrack(esd, label, ncuts, start);
      if (it < 0) break;
      
      if (ncuts > bestCuts) {
         bestCuts = ncuts;
         itrack = it;
         start = it + 1;
      }
   }*/
   
   return itrack;
}
 AliRsnAnalysisPhi7TeV.cxx:1
 AliRsnAnalysisPhi7TeV.cxx:2
 AliRsnAnalysisPhi7TeV.cxx:3
 AliRsnAnalysisPhi7TeV.cxx:4
 AliRsnAnalysisPhi7TeV.cxx:5
 AliRsnAnalysisPhi7TeV.cxx:6
 AliRsnAnalysisPhi7TeV.cxx:7
 AliRsnAnalysisPhi7TeV.cxx:8
 AliRsnAnalysisPhi7TeV.cxx:9
 AliRsnAnalysisPhi7TeV.cxx:10
 AliRsnAnalysisPhi7TeV.cxx:11
 AliRsnAnalysisPhi7TeV.cxx:12
 AliRsnAnalysisPhi7TeV.cxx:13
 AliRsnAnalysisPhi7TeV.cxx:14
 AliRsnAnalysisPhi7TeV.cxx:15
 AliRsnAnalysisPhi7TeV.cxx:16
 AliRsnAnalysisPhi7TeV.cxx:17
 AliRsnAnalysisPhi7TeV.cxx:18
 AliRsnAnalysisPhi7TeV.cxx:19
 AliRsnAnalysisPhi7TeV.cxx:20
 AliRsnAnalysisPhi7TeV.cxx:21
 AliRsnAnalysisPhi7TeV.cxx:22
 AliRsnAnalysisPhi7TeV.cxx:23
 AliRsnAnalysisPhi7TeV.cxx:24
 AliRsnAnalysisPhi7TeV.cxx:25
 AliRsnAnalysisPhi7TeV.cxx:26
 AliRsnAnalysisPhi7TeV.cxx:27
 AliRsnAnalysisPhi7TeV.cxx:28
 AliRsnAnalysisPhi7TeV.cxx:29
 AliRsnAnalysisPhi7TeV.cxx:30
 AliRsnAnalysisPhi7TeV.cxx:31
 AliRsnAnalysisPhi7TeV.cxx:32
 AliRsnAnalysisPhi7TeV.cxx:33
 AliRsnAnalysisPhi7TeV.cxx:34
 AliRsnAnalysisPhi7TeV.cxx:35
 AliRsnAnalysisPhi7TeV.cxx:36
 AliRsnAnalysisPhi7TeV.cxx:37
 AliRsnAnalysisPhi7TeV.cxx:38
 AliRsnAnalysisPhi7TeV.cxx:39
 AliRsnAnalysisPhi7TeV.cxx:40
 AliRsnAnalysisPhi7TeV.cxx:41
 AliRsnAnalysisPhi7TeV.cxx:42
 AliRsnAnalysisPhi7TeV.cxx:43
 AliRsnAnalysisPhi7TeV.cxx:44
 AliRsnAnalysisPhi7TeV.cxx:45
 AliRsnAnalysisPhi7TeV.cxx:46
 AliRsnAnalysisPhi7TeV.cxx:47
 AliRsnAnalysisPhi7TeV.cxx:48
 AliRsnAnalysisPhi7TeV.cxx:49
 AliRsnAnalysisPhi7TeV.cxx:50
 AliRsnAnalysisPhi7TeV.cxx:51
 AliRsnAnalysisPhi7TeV.cxx:52
 AliRsnAnalysisPhi7TeV.cxx:53
 AliRsnAnalysisPhi7TeV.cxx:54
 AliRsnAnalysisPhi7TeV.cxx:55
 AliRsnAnalysisPhi7TeV.cxx:56
 AliRsnAnalysisPhi7TeV.cxx:57
 AliRsnAnalysisPhi7TeV.cxx:58
 AliRsnAnalysisPhi7TeV.cxx:59
 AliRsnAnalysisPhi7TeV.cxx:60
 AliRsnAnalysisPhi7TeV.cxx:61
 AliRsnAnalysisPhi7TeV.cxx:62
 AliRsnAnalysisPhi7TeV.cxx:63
 AliRsnAnalysisPhi7TeV.cxx:64
 AliRsnAnalysisPhi7TeV.cxx:65
 AliRsnAnalysisPhi7TeV.cxx:66
 AliRsnAnalysisPhi7TeV.cxx:67
 AliRsnAnalysisPhi7TeV.cxx:68
 AliRsnAnalysisPhi7TeV.cxx:69
 AliRsnAnalysisPhi7TeV.cxx:70
 AliRsnAnalysisPhi7TeV.cxx:71
 AliRsnAnalysisPhi7TeV.cxx:72
 AliRsnAnalysisPhi7TeV.cxx:73
 AliRsnAnalysisPhi7TeV.cxx:74
 AliRsnAnalysisPhi7TeV.cxx:75
 AliRsnAnalysisPhi7TeV.cxx:76
 AliRsnAnalysisPhi7TeV.cxx:77
 AliRsnAnalysisPhi7TeV.cxx:78
 AliRsnAnalysisPhi7TeV.cxx:79
 AliRsnAnalysisPhi7TeV.cxx:80
 AliRsnAnalysisPhi7TeV.cxx:81
 AliRsnAnalysisPhi7TeV.cxx:82
 AliRsnAnalysisPhi7TeV.cxx:83
 AliRsnAnalysisPhi7TeV.cxx:84
 AliRsnAnalysisPhi7TeV.cxx:85
 AliRsnAnalysisPhi7TeV.cxx:86
 AliRsnAnalysisPhi7TeV.cxx:87
 AliRsnAnalysisPhi7TeV.cxx:88
 AliRsnAnalysisPhi7TeV.cxx:89
 AliRsnAnalysisPhi7TeV.cxx:90
 AliRsnAnalysisPhi7TeV.cxx:91
 AliRsnAnalysisPhi7TeV.cxx:92
 AliRsnAnalysisPhi7TeV.cxx:93
 AliRsnAnalysisPhi7TeV.cxx:94
 AliRsnAnalysisPhi7TeV.cxx:95
 AliRsnAnalysisPhi7TeV.cxx:96
 AliRsnAnalysisPhi7TeV.cxx:97
 AliRsnAnalysisPhi7TeV.cxx:98
 AliRsnAnalysisPhi7TeV.cxx:99
 AliRsnAnalysisPhi7TeV.cxx:100
 AliRsnAnalysisPhi7TeV.cxx:101
 AliRsnAnalysisPhi7TeV.cxx:102
 AliRsnAnalysisPhi7TeV.cxx:103
 AliRsnAnalysisPhi7TeV.cxx:104
 AliRsnAnalysisPhi7TeV.cxx:105
 AliRsnAnalysisPhi7TeV.cxx:106
 AliRsnAnalysisPhi7TeV.cxx:107
 AliRsnAnalysisPhi7TeV.cxx:108
 AliRsnAnalysisPhi7TeV.cxx:109
 AliRsnAnalysisPhi7TeV.cxx:110
 AliRsnAnalysisPhi7TeV.cxx:111
 AliRsnAnalysisPhi7TeV.cxx:112
 AliRsnAnalysisPhi7TeV.cxx:113
 AliRsnAnalysisPhi7TeV.cxx:114
 AliRsnAnalysisPhi7TeV.cxx:115
 AliRsnAnalysisPhi7TeV.cxx:116
 AliRsnAnalysisPhi7TeV.cxx:117
 AliRsnAnalysisPhi7TeV.cxx:118
 AliRsnAnalysisPhi7TeV.cxx:119
 AliRsnAnalysisPhi7TeV.cxx:120
 AliRsnAnalysisPhi7TeV.cxx:121
 AliRsnAnalysisPhi7TeV.cxx:122
 AliRsnAnalysisPhi7TeV.cxx:123
 AliRsnAnalysisPhi7TeV.cxx:124
 AliRsnAnalysisPhi7TeV.cxx:125
 AliRsnAnalysisPhi7TeV.cxx:126
 AliRsnAnalysisPhi7TeV.cxx:127
 AliRsnAnalysisPhi7TeV.cxx:128
 AliRsnAnalysisPhi7TeV.cxx:129
 AliRsnAnalysisPhi7TeV.cxx:130
 AliRsnAnalysisPhi7TeV.cxx:131
 AliRsnAnalysisPhi7TeV.cxx:132
 AliRsnAnalysisPhi7TeV.cxx:133
 AliRsnAnalysisPhi7TeV.cxx:134
 AliRsnAnalysisPhi7TeV.cxx:135
 AliRsnAnalysisPhi7TeV.cxx:136
 AliRsnAnalysisPhi7TeV.cxx:137
 AliRsnAnalysisPhi7TeV.cxx:138
 AliRsnAnalysisPhi7TeV.cxx:139
 AliRsnAnalysisPhi7TeV.cxx:140
 AliRsnAnalysisPhi7TeV.cxx:141
 AliRsnAnalysisPhi7TeV.cxx:142
 AliRsnAnalysisPhi7TeV.cxx:143
 AliRsnAnalysisPhi7TeV.cxx:144
 AliRsnAnalysisPhi7TeV.cxx:145
 AliRsnAnalysisPhi7TeV.cxx:146
 AliRsnAnalysisPhi7TeV.cxx:147
 AliRsnAnalysisPhi7TeV.cxx:148
 AliRsnAnalysisPhi7TeV.cxx:149
 AliRsnAnalysisPhi7TeV.cxx:150
 AliRsnAnalysisPhi7TeV.cxx:151
 AliRsnAnalysisPhi7TeV.cxx:152
 AliRsnAnalysisPhi7TeV.cxx:153
 AliRsnAnalysisPhi7TeV.cxx:154
 AliRsnAnalysisPhi7TeV.cxx:155
 AliRsnAnalysisPhi7TeV.cxx:156
 AliRsnAnalysisPhi7TeV.cxx:157
 AliRsnAnalysisPhi7TeV.cxx:158
 AliRsnAnalysisPhi7TeV.cxx:159
 AliRsnAnalysisPhi7TeV.cxx:160
 AliRsnAnalysisPhi7TeV.cxx:161
 AliRsnAnalysisPhi7TeV.cxx:162
 AliRsnAnalysisPhi7TeV.cxx:163
 AliRsnAnalysisPhi7TeV.cxx:164
 AliRsnAnalysisPhi7TeV.cxx:165
 AliRsnAnalysisPhi7TeV.cxx:166
 AliRsnAnalysisPhi7TeV.cxx:167
 AliRsnAnalysisPhi7TeV.cxx:168
 AliRsnAnalysisPhi7TeV.cxx:169
 AliRsnAnalysisPhi7TeV.cxx:170
 AliRsnAnalysisPhi7TeV.cxx:171
 AliRsnAnalysisPhi7TeV.cxx:172
 AliRsnAnalysisPhi7TeV.cxx:173
 AliRsnAnalysisPhi7TeV.cxx:174
 AliRsnAnalysisPhi7TeV.cxx:175
 AliRsnAnalysisPhi7TeV.cxx:176
 AliRsnAnalysisPhi7TeV.cxx:177
 AliRsnAnalysisPhi7TeV.cxx:178
 AliRsnAnalysisPhi7TeV.cxx:179
 AliRsnAnalysisPhi7TeV.cxx:180
 AliRsnAnalysisPhi7TeV.cxx:181
 AliRsnAnalysisPhi7TeV.cxx:182
 AliRsnAnalysisPhi7TeV.cxx:183
 AliRsnAnalysisPhi7TeV.cxx:184
 AliRsnAnalysisPhi7TeV.cxx:185
 AliRsnAnalysisPhi7TeV.cxx:186
 AliRsnAnalysisPhi7TeV.cxx:187
 AliRsnAnalysisPhi7TeV.cxx:188
 AliRsnAnalysisPhi7TeV.cxx:189
 AliRsnAnalysisPhi7TeV.cxx:190
 AliRsnAnalysisPhi7TeV.cxx:191
 AliRsnAnalysisPhi7TeV.cxx:192
 AliRsnAnalysisPhi7TeV.cxx:193
 AliRsnAnalysisPhi7TeV.cxx:194
 AliRsnAnalysisPhi7TeV.cxx:195
 AliRsnAnalysisPhi7TeV.cxx:196
 AliRsnAnalysisPhi7TeV.cxx:197
 AliRsnAnalysisPhi7TeV.cxx:198
 AliRsnAnalysisPhi7TeV.cxx:199
 AliRsnAnalysisPhi7TeV.cxx:200
 AliRsnAnalysisPhi7TeV.cxx:201
 AliRsnAnalysisPhi7TeV.cxx:202
 AliRsnAnalysisPhi7TeV.cxx:203
 AliRsnAnalysisPhi7TeV.cxx:204
 AliRsnAnalysisPhi7TeV.cxx:205
 AliRsnAnalysisPhi7TeV.cxx:206
 AliRsnAnalysisPhi7TeV.cxx:207
 AliRsnAnalysisPhi7TeV.cxx:208
 AliRsnAnalysisPhi7TeV.cxx:209
 AliRsnAnalysisPhi7TeV.cxx:210
 AliRsnAnalysisPhi7TeV.cxx:211
 AliRsnAnalysisPhi7TeV.cxx:212
 AliRsnAnalysisPhi7TeV.cxx:213
 AliRsnAnalysisPhi7TeV.cxx:214
 AliRsnAnalysisPhi7TeV.cxx:215
 AliRsnAnalysisPhi7TeV.cxx:216
 AliRsnAnalysisPhi7TeV.cxx:217
 AliRsnAnalysisPhi7TeV.cxx:218
 AliRsnAnalysisPhi7TeV.cxx:219
 AliRsnAnalysisPhi7TeV.cxx:220
 AliRsnAnalysisPhi7TeV.cxx:221
 AliRsnAnalysisPhi7TeV.cxx:222
 AliRsnAnalysisPhi7TeV.cxx:223
 AliRsnAnalysisPhi7TeV.cxx:224
 AliRsnAnalysisPhi7TeV.cxx:225
 AliRsnAnalysisPhi7TeV.cxx:226
 AliRsnAnalysisPhi7TeV.cxx:227
 AliRsnAnalysisPhi7TeV.cxx:228
 AliRsnAnalysisPhi7TeV.cxx:229
 AliRsnAnalysisPhi7TeV.cxx:230
 AliRsnAnalysisPhi7TeV.cxx:231
 AliRsnAnalysisPhi7TeV.cxx:232
 AliRsnAnalysisPhi7TeV.cxx:233
 AliRsnAnalysisPhi7TeV.cxx:234
 AliRsnAnalysisPhi7TeV.cxx:235
 AliRsnAnalysisPhi7TeV.cxx:236
 AliRsnAnalysisPhi7TeV.cxx:237
 AliRsnAnalysisPhi7TeV.cxx:238
 AliRsnAnalysisPhi7TeV.cxx:239
 AliRsnAnalysisPhi7TeV.cxx:240
 AliRsnAnalysisPhi7TeV.cxx:241
 AliRsnAnalysisPhi7TeV.cxx:242
 AliRsnAnalysisPhi7TeV.cxx:243
 AliRsnAnalysisPhi7TeV.cxx:244
 AliRsnAnalysisPhi7TeV.cxx:245
 AliRsnAnalysisPhi7TeV.cxx:246
 AliRsnAnalysisPhi7TeV.cxx:247
 AliRsnAnalysisPhi7TeV.cxx:248
 AliRsnAnalysisPhi7TeV.cxx:249
 AliRsnAnalysisPhi7TeV.cxx:250
 AliRsnAnalysisPhi7TeV.cxx:251
 AliRsnAnalysisPhi7TeV.cxx:252
 AliRsnAnalysisPhi7TeV.cxx:253
 AliRsnAnalysisPhi7TeV.cxx:254
 AliRsnAnalysisPhi7TeV.cxx:255
 AliRsnAnalysisPhi7TeV.cxx:256
 AliRsnAnalysisPhi7TeV.cxx:257
 AliRsnAnalysisPhi7TeV.cxx:258
 AliRsnAnalysisPhi7TeV.cxx:259
 AliRsnAnalysisPhi7TeV.cxx:260
 AliRsnAnalysisPhi7TeV.cxx:261
 AliRsnAnalysisPhi7TeV.cxx:262
 AliRsnAnalysisPhi7TeV.cxx:263
 AliRsnAnalysisPhi7TeV.cxx:264
 AliRsnAnalysisPhi7TeV.cxx:265
 AliRsnAnalysisPhi7TeV.cxx:266
 AliRsnAnalysisPhi7TeV.cxx:267
 AliRsnAnalysisPhi7TeV.cxx:268
 AliRsnAnalysisPhi7TeV.cxx:269
 AliRsnAnalysisPhi7TeV.cxx:270
 AliRsnAnalysisPhi7TeV.cxx:271
 AliRsnAnalysisPhi7TeV.cxx:272
 AliRsnAnalysisPhi7TeV.cxx:273
 AliRsnAnalysisPhi7TeV.cxx:274
 AliRsnAnalysisPhi7TeV.cxx:275
 AliRsnAnalysisPhi7TeV.cxx:276
 AliRsnAnalysisPhi7TeV.cxx:277
 AliRsnAnalysisPhi7TeV.cxx:278
 AliRsnAnalysisPhi7TeV.cxx:279
 AliRsnAnalysisPhi7TeV.cxx:280
 AliRsnAnalysisPhi7TeV.cxx:281
 AliRsnAnalysisPhi7TeV.cxx:282
 AliRsnAnalysisPhi7TeV.cxx:283
 AliRsnAnalysisPhi7TeV.cxx:284
 AliRsnAnalysisPhi7TeV.cxx:285
 AliRsnAnalysisPhi7TeV.cxx:286
 AliRsnAnalysisPhi7TeV.cxx:287
 AliRsnAnalysisPhi7TeV.cxx:288
 AliRsnAnalysisPhi7TeV.cxx:289
 AliRsnAnalysisPhi7TeV.cxx:290
 AliRsnAnalysisPhi7TeV.cxx:291
 AliRsnAnalysisPhi7TeV.cxx:292
 AliRsnAnalysisPhi7TeV.cxx:293
 AliRsnAnalysisPhi7TeV.cxx:294
 AliRsnAnalysisPhi7TeV.cxx:295
 AliRsnAnalysisPhi7TeV.cxx:296
 AliRsnAnalysisPhi7TeV.cxx:297
 AliRsnAnalysisPhi7TeV.cxx:298
 AliRsnAnalysisPhi7TeV.cxx:299
 AliRsnAnalysisPhi7TeV.cxx:300
 AliRsnAnalysisPhi7TeV.cxx:301
 AliRsnAnalysisPhi7TeV.cxx:302
 AliRsnAnalysisPhi7TeV.cxx:303
 AliRsnAnalysisPhi7TeV.cxx:304
 AliRsnAnalysisPhi7TeV.cxx:305
 AliRsnAnalysisPhi7TeV.cxx:306
 AliRsnAnalysisPhi7TeV.cxx:307
 AliRsnAnalysisPhi7TeV.cxx:308
 AliRsnAnalysisPhi7TeV.cxx:309
 AliRsnAnalysisPhi7TeV.cxx:310
 AliRsnAnalysisPhi7TeV.cxx:311
 AliRsnAnalysisPhi7TeV.cxx:312
 AliRsnAnalysisPhi7TeV.cxx:313
 AliRsnAnalysisPhi7TeV.cxx:314
 AliRsnAnalysisPhi7TeV.cxx:315
 AliRsnAnalysisPhi7TeV.cxx:316
 AliRsnAnalysisPhi7TeV.cxx:317
 AliRsnAnalysisPhi7TeV.cxx:318
 AliRsnAnalysisPhi7TeV.cxx:319
 AliRsnAnalysisPhi7TeV.cxx:320
 AliRsnAnalysisPhi7TeV.cxx:321
 AliRsnAnalysisPhi7TeV.cxx:322
 AliRsnAnalysisPhi7TeV.cxx:323
 AliRsnAnalysisPhi7TeV.cxx:324
 AliRsnAnalysisPhi7TeV.cxx:325
 AliRsnAnalysisPhi7TeV.cxx:326
 AliRsnAnalysisPhi7TeV.cxx:327
 AliRsnAnalysisPhi7TeV.cxx:328
 AliRsnAnalysisPhi7TeV.cxx:329
 AliRsnAnalysisPhi7TeV.cxx:330
 AliRsnAnalysisPhi7TeV.cxx:331
 AliRsnAnalysisPhi7TeV.cxx:332
 AliRsnAnalysisPhi7TeV.cxx:333
 AliRsnAnalysisPhi7TeV.cxx:334
 AliRsnAnalysisPhi7TeV.cxx:335
 AliRsnAnalysisPhi7TeV.cxx:336
 AliRsnAnalysisPhi7TeV.cxx:337
 AliRsnAnalysisPhi7TeV.cxx:338
 AliRsnAnalysisPhi7TeV.cxx:339
 AliRsnAnalysisPhi7TeV.cxx:340
 AliRsnAnalysisPhi7TeV.cxx:341
 AliRsnAnalysisPhi7TeV.cxx:342
 AliRsnAnalysisPhi7TeV.cxx:343
 AliRsnAnalysisPhi7TeV.cxx:344
 AliRsnAnalysisPhi7TeV.cxx:345
 AliRsnAnalysisPhi7TeV.cxx:346
 AliRsnAnalysisPhi7TeV.cxx:347
 AliRsnAnalysisPhi7TeV.cxx:348
 AliRsnAnalysisPhi7TeV.cxx:349
 AliRsnAnalysisPhi7TeV.cxx:350
 AliRsnAnalysisPhi7TeV.cxx:351
 AliRsnAnalysisPhi7TeV.cxx:352
 AliRsnAnalysisPhi7TeV.cxx:353
 AliRsnAnalysisPhi7TeV.cxx:354
 AliRsnAnalysisPhi7TeV.cxx:355
 AliRsnAnalysisPhi7TeV.cxx:356
 AliRsnAnalysisPhi7TeV.cxx:357
 AliRsnAnalysisPhi7TeV.cxx:358
 AliRsnAnalysisPhi7TeV.cxx:359
 AliRsnAnalysisPhi7TeV.cxx:360
 AliRsnAnalysisPhi7TeV.cxx:361
 AliRsnAnalysisPhi7TeV.cxx:362
 AliRsnAnalysisPhi7TeV.cxx:363
 AliRsnAnalysisPhi7TeV.cxx:364
 AliRsnAnalysisPhi7TeV.cxx:365
 AliRsnAnalysisPhi7TeV.cxx:366
 AliRsnAnalysisPhi7TeV.cxx:367
 AliRsnAnalysisPhi7TeV.cxx:368
 AliRsnAnalysisPhi7TeV.cxx:369
 AliRsnAnalysisPhi7TeV.cxx:370
 AliRsnAnalysisPhi7TeV.cxx:371
 AliRsnAnalysisPhi7TeV.cxx:372
 AliRsnAnalysisPhi7TeV.cxx:373
 AliRsnAnalysisPhi7TeV.cxx:374
 AliRsnAnalysisPhi7TeV.cxx:375
 AliRsnAnalysisPhi7TeV.cxx:376
 AliRsnAnalysisPhi7TeV.cxx:377
 AliRsnAnalysisPhi7TeV.cxx:378
 AliRsnAnalysisPhi7TeV.cxx:379
 AliRsnAnalysisPhi7TeV.cxx:380
 AliRsnAnalysisPhi7TeV.cxx:381
 AliRsnAnalysisPhi7TeV.cxx:382
 AliRsnAnalysisPhi7TeV.cxx:383
 AliRsnAnalysisPhi7TeV.cxx:384
 AliRsnAnalysisPhi7TeV.cxx:385
 AliRsnAnalysisPhi7TeV.cxx:386
 AliRsnAnalysisPhi7TeV.cxx:387
 AliRsnAnalysisPhi7TeV.cxx:388
 AliRsnAnalysisPhi7TeV.cxx:389
 AliRsnAnalysisPhi7TeV.cxx:390
 AliRsnAnalysisPhi7TeV.cxx:391
 AliRsnAnalysisPhi7TeV.cxx:392
 AliRsnAnalysisPhi7TeV.cxx:393
 AliRsnAnalysisPhi7TeV.cxx:394
 AliRsnAnalysisPhi7TeV.cxx:395
 AliRsnAnalysisPhi7TeV.cxx:396
 AliRsnAnalysisPhi7TeV.cxx:397
 AliRsnAnalysisPhi7TeV.cxx:398
 AliRsnAnalysisPhi7TeV.cxx:399
 AliRsnAnalysisPhi7TeV.cxx:400
 AliRsnAnalysisPhi7TeV.cxx:401
 AliRsnAnalysisPhi7TeV.cxx:402
 AliRsnAnalysisPhi7TeV.cxx:403
 AliRsnAnalysisPhi7TeV.cxx:404
 AliRsnAnalysisPhi7TeV.cxx:405
 AliRsnAnalysisPhi7TeV.cxx:406
 AliRsnAnalysisPhi7TeV.cxx:407
 AliRsnAnalysisPhi7TeV.cxx:408
 AliRsnAnalysisPhi7TeV.cxx:409
 AliRsnAnalysisPhi7TeV.cxx:410
 AliRsnAnalysisPhi7TeV.cxx:411
 AliRsnAnalysisPhi7TeV.cxx:412
 AliRsnAnalysisPhi7TeV.cxx:413
 AliRsnAnalysisPhi7TeV.cxx:414
 AliRsnAnalysisPhi7TeV.cxx:415
 AliRsnAnalysisPhi7TeV.cxx:416
 AliRsnAnalysisPhi7TeV.cxx:417
 AliRsnAnalysisPhi7TeV.cxx:418
 AliRsnAnalysisPhi7TeV.cxx:419
 AliRsnAnalysisPhi7TeV.cxx:420
 AliRsnAnalysisPhi7TeV.cxx:421
 AliRsnAnalysisPhi7TeV.cxx:422
 AliRsnAnalysisPhi7TeV.cxx:423
 AliRsnAnalysisPhi7TeV.cxx:424
 AliRsnAnalysisPhi7TeV.cxx:425
 AliRsnAnalysisPhi7TeV.cxx:426
 AliRsnAnalysisPhi7TeV.cxx:427
 AliRsnAnalysisPhi7TeV.cxx:428
 AliRsnAnalysisPhi7TeV.cxx:429
 AliRsnAnalysisPhi7TeV.cxx:430
 AliRsnAnalysisPhi7TeV.cxx:431
 AliRsnAnalysisPhi7TeV.cxx:432
 AliRsnAnalysisPhi7TeV.cxx:433
 AliRsnAnalysisPhi7TeV.cxx:434
 AliRsnAnalysisPhi7TeV.cxx:435
 AliRsnAnalysisPhi7TeV.cxx:436
 AliRsnAnalysisPhi7TeV.cxx:437
 AliRsnAnalysisPhi7TeV.cxx:438
 AliRsnAnalysisPhi7TeV.cxx:439
 AliRsnAnalysisPhi7TeV.cxx:440
 AliRsnAnalysisPhi7TeV.cxx:441
 AliRsnAnalysisPhi7TeV.cxx:442
 AliRsnAnalysisPhi7TeV.cxx:443
 AliRsnAnalysisPhi7TeV.cxx:444
 AliRsnAnalysisPhi7TeV.cxx:445
 AliRsnAnalysisPhi7TeV.cxx:446
 AliRsnAnalysisPhi7TeV.cxx:447
 AliRsnAnalysisPhi7TeV.cxx:448
 AliRsnAnalysisPhi7TeV.cxx:449
 AliRsnAnalysisPhi7TeV.cxx:450
 AliRsnAnalysisPhi7TeV.cxx:451
 AliRsnAnalysisPhi7TeV.cxx:452
 AliRsnAnalysisPhi7TeV.cxx:453
 AliRsnAnalysisPhi7TeV.cxx:454
 AliRsnAnalysisPhi7TeV.cxx:455
 AliRsnAnalysisPhi7TeV.cxx:456
 AliRsnAnalysisPhi7TeV.cxx:457
 AliRsnAnalysisPhi7TeV.cxx:458
 AliRsnAnalysisPhi7TeV.cxx:459
 AliRsnAnalysisPhi7TeV.cxx:460
 AliRsnAnalysisPhi7TeV.cxx:461
 AliRsnAnalysisPhi7TeV.cxx:462
 AliRsnAnalysisPhi7TeV.cxx:463
 AliRsnAnalysisPhi7TeV.cxx:464
 AliRsnAnalysisPhi7TeV.cxx:465
 AliRsnAnalysisPhi7TeV.cxx:466
 AliRsnAnalysisPhi7TeV.cxx:467
 AliRsnAnalysisPhi7TeV.cxx:468
 AliRsnAnalysisPhi7TeV.cxx:469
 AliRsnAnalysisPhi7TeV.cxx:470
 AliRsnAnalysisPhi7TeV.cxx:471
 AliRsnAnalysisPhi7TeV.cxx:472
 AliRsnAnalysisPhi7TeV.cxx:473
 AliRsnAnalysisPhi7TeV.cxx:474
 AliRsnAnalysisPhi7TeV.cxx:475
 AliRsnAnalysisPhi7TeV.cxx:476
 AliRsnAnalysisPhi7TeV.cxx:477
 AliRsnAnalysisPhi7TeV.cxx:478
 AliRsnAnalysisPhi7TeV.cxx:479
 AliRsnAnalysisPhi7TeV.cxx:480
 AliRsnAnalysisPhi7TeV.cxx:481
 AliRsnAnalysisPhi7TeV.cxx:482
 AliRsnAnalysisPhi7TeV.cxx:483
 AliRsnAnalysisPhi7TeV.cxx:484
 AliRsnAnalysisPhi7TeV.cxx:485
 AliRsnAnalysisPhi7TeV.cxx:486
 AliRsnAnalysisPhi7TeV.cxx:487
 AliRsnAnalysisPhi7TeV.cxx:488
 AliRsnAnalysisPhi7TeV.cxx:489
 AliRsnAnalysisPhi7TeV.cxx:490
 AliRsnAnalysisPhi7TeV.cxx:491
 AliRsnAnalysisPhi7TeV.cxx:492
 AliRsnAnalysisPhi7TeV.cxx:493
 AliRsnAnalysisPhi7TeV.cxx:494
 AliRsnAnalysisPhi7TeV.cxx:495
 AliRsnAnalysisPhi7TeV.cxx:496
 AliRsnAnalysisPhi7TeV.cxx:497
 AliRsnAnalysisPhi7TeV.cxx:498
 AliRsnAnalysisPhi7TeV.cxx:499
 AliRsnAnalysisPhi7TeV.cxx:500
 AliRsnAnalysisPhi7TeV.cxx:501
 AliRsnAnalysisPhi7TeV.cxx:502
 AliRsnAnalysisPhi7TeV.cxx:503
 AliRsnAnalysisPhi7TeV.cxx:504
 AliRsnAnalysisPhi7TeV.cxx:505
 AliRsnAnalysisPhi7TeV.cxx:506
 AliRsnAnalysisPhi7TeV.cxx:507
 AliRsnAnalysisPhi7TeV.cxx:508
 AliRsnAnalysisPhi7TeV.cxx:509
 AliRsnAnalysisPhi7TeV.cxx:510
 AliRsnAnalysisPhi7TeV.cxx:511
 AliRsnAnalysisPhi7TeV.cxx:512
 AliRsnAnalysisPhi7TeV.cxx:513
 AliRsnAnalysisPhi7TeV.cxx:514
 AliRsnAnalysisPhi7TeV.cxx:515
 AliRsnAnalysisPhi7TeV.cxx:516
 AliRsnAnalysisPhi7TeV.cxx:517
 AliRsnAnalysisPhi7TeV.cxx:518
 AliRsnAnalysisPhi7TeV.cxx:519
 AliRsnAnalysisPhi7TeV.cxx:520
 AliRsnAnalysisPhi7TeV.cxx:521
 AliRsnAnalysisPhi7TeV.cxx:522
 AliRsnAnalysisPhi7TeV.cxx:523
 AliRsnAnalysisPhi7TeV.cxx:524
 AliRsnAnalysisPhi7TeV.cxx:525
 AliRsnAnalysisPhi7TeV.cxx:526
 AliRsnAnalysisPhi7TeV.cxx:527
 AliRsnAnalysisPhi7TeV.cxx:528
 AliRsnAnalysisPhi7TeV.cxx:529
 AliRsnAnalysisPhi7TeV.cxx:530
 AliRsnAnalysisPhi7TeV.cxx:531
 AliRsnAnalysisPhi7TeV.cxx:532
 AliRsnAnalysisPhi7TeV.cxx:533
 AliRsnAnalysisPhi7TeV.cxx:534
 AliRsnAnalysisPhi7TeV.cxx:535
 AliRsnAnalysisPhi7TeV.cxx:536
 AliRsnAnalysisPhi7TeV.cxx:537
 AliRsnAnalysisPhi7TeV.cxx:538
 AliRsnAnalysisPhi7TeV.cxx:539
 AliRsnAnalysisPhi7TeV.cxx:540
 AliRsnAnalysisPhi7TeV.cxx:541
 AliRsnAnalysisPhi7TeV.cxx:542
 AliRsnAnalysisPhi7TeV.cxx:543
 AliRsnAnalysisPhi7TeV.cxx:544
 AliRsnAnalysisPhi7TeV.cxx:545
 AliRsnAnalysisPhi7TeV.cxx:546
 AliRsnAnalysisPhi7TeV.cxx:547
 AliRsnAnalysisPhi7TeV.cxx:548
 AliRsnAnalysisPhi7TeV.cxx:549
 AliRsnAnalysisPhi7TeV.cxx:550
 AliRsnAnalysisPhi7TeV.cxx:551
 AliRsnAnalysisPhi7TeV.cxx:552
 AliRsnAnalysisPhi7TeV.cxx:553
 AliRsnAnalysisPhi7TeV.cxx:554
 AliRsnAnalysisPhi7TeV.cxx:555
 AliRsnAnalysisPhi7TeV.cxx:556
 AliRsnAnalysisPhi7TeV.cxx:557
 AliRsnAnalysisPhi7TeV.cxx:558
 AliRsnAnalysisPhi7TeV.cxx:559
 AliRsnAnalysisPhi7TeV.cxx:560
 AliRsnAnalysisPhi7TeV.cxx:561
 AliRsnAnalysisPhi7TeV.cxx:562
 AliRsnAnalysisPhi7TeV.cxx:563
 AliRsnAnalysisPhi7TeV.cxx:564
 AliRsnAnalysisPhi7TeV.cxx:565
 AliRsnAnalysisPhi7TeV.cxx:566
 AliRsnAnalysisPhi7TeV.cxx:567
 AliRsnAnalysisPhi7TeV.cxx:568
 AliRsnAnalysisPhi7TeV.cxx:569
 AliRsnAnalysisPhi7TeV.cxx:570
 AliRsnAnalysisPhi7TeV.cxx:571
 AliRsnAnalysisPhi7TeV.cxx:572
 AliRsnAnalysisPhi7TeV.cxx:573
 AliRsnAnalysisPhi7TeV.cxx:574
 AliRsnAnalysisPhi7TeV.cxx:575
 AliRsnAnalysisPhi7TeV.cxx:576
 AliRsnAnalysisPhi7TeV.cxx:577
 AliRsnAnalysisPhi7TeV.cxx:578
 AliRsnAnalysisPhi7TeV.cxx:579
 AliRsnAnalysisPhi7TeV.cxx:580
 AliRsnAnalysisPhi7TeV.cxx:581
 AliRsnAnalysisPhi7TeV.cxx:582
 AliRsnAnalysisPhi7TeV.cxx:583
 AliRsnAnalysisPhi7TeV.cxx:584
 AliRsnAnalysisPhi7TeV.cxx:585
 AliRsnAnalysisPhi7TeV.cxx:586
 AliRsnAnalysisPhi7TeV.cxx:587
 AliRsnAnalysisPhi7TeV.cxx:588
 AliRsnAnalysisPhi7TeV.cxx:589
 AliRsnAnalysisPhi7TeV.cxx:590
 AliRsnAnalysisPhi7TeV.cxx:591
 AliRsnAnalysisPhi7TeV.cxx:592
 AliRsnAnalysisPhi7TeV.cxx:593
 AliRsnAnalysisPhi7TeV.cxx:594
 AliRsnAnalysisPhi7TeV.cxx:595
 AliRsnAnalysisPhi7TeV.cxx:596
 AliRsnAnalysisPhi7TeV.cxx:597
 AliRsnAnalysisPhi7TeV.cxx:598
 AliRsnAnalysisPhi7TeV.cxx:599
 AliRsnAnalysisPhi7TeV.cxx:600
 AliRsnAnalysisPhi7TeV.cxx:601
 AliRsnAnalysisPhi7TeV.cxx:602
 AliRsnAnalysisPhi7TeV.cxx:603
 AliRsnAnalysisPhi7TeV.cxx:604
 AliRsnAnalysisPhi7TeV.cxx:605
 AliRsnAnalysisPhi7TeV.cxx:606
 AliRsnAnalysisPhi7TeV.cxx:607
 AliRsnAnalysisPhi7TeV.cxx:608
 AliRsnAnalysisPhi7TeV.cxx:609
 AliRsnAnalysisPhi7TeV.cxx:610
 AliRsnAnalysisPhi7TeV.cxx:611
 AliRsnAnalysisPhi7TeV.cxx:612
 AliRsnAnalysisPhi7TeV.cxx:613
 AliRsnAnalysisPhi7TeV.cxx:614
 AliRsnAnalysisPhi7TeV.cxx:615
 AliRsnAnalysisPhi7TeV.cxx:616
 AliRsnAnalysisPhi7TeV.cxx:617
 AliRsnAnalysisPhi7TeV.cxx:618
 AliRsnAnalysisPhi7TeV.cxx:619
 AliRsnAnalysisPhi7TeV.cxx:620
 AliRsnAnalysisPhi7TeV.cxx:621
 AliRsnAnalysisPhi7TeV.cxx:622
 AliRsnAnalysisPhi7TeV.cxx:623
 AliRsnAnalysisPhi7TeV.cxx:624
 AliRsnAnalysisPhi7TeV.cxx:625
 AliRsnAnalysisPhi7TeV.cxx:626
 AliRsnAnalysisPhi7TeV.cxx:627
 AliRsnAnalysisPhi7TeV.cxx:628
 AliRsnAnalysisPhi7TeV.cxx:629
 AliRsnAnalysisPhi7TeV.cxx:630
 AliRsnAnalysisPhi7TeV.cxx:631
 AliRsnAnalysisPhi7TeV.cxx:632
 AliRsnAnalysisPhi7TeV.cxx:633
 AliRsnAnalysisPhi7TeV.cxx:634
 AliRsnAnalysisPhi7TeV.cxx:635
 AliRsnAnalysisPhi7TeV.cxx:636
 AliRsnAnalysisPhi7TeV.cxx:637
 AliRsnAnalysisPhi7TeV.cxx:638
 AliRsnAnalysisPhi7TeV.cxx:639
 AliRsnAnalysisPhi7TeV.cxx:640
 AliRsnAnalysisPhi7TeV.cxx:641
 AliRsnAnalysisPhi7TeV.cxx:642
 AliRsnAnalysisPhi7TeV.cxx:643
 AliRsnAnalysisPhi7TeV.cxx:644
 AliRsnAnalysisPhi7TeV.cxx:645
 AliRsnAnalysisPhi7TeV.cxx:646
 AliRsnAnalysisPhi7TeV.cxx:647
 AliRsnAnalysisPhi7TeV.cxx:648
 AliRsnAnalysisPhi7TeV.cxx:649
 AliRsnAnalysisPhi7TeV.cxx:650
 AliRsnAnalysisPhi7TeV.cxx:651
 AliRsnAnalysisPhi7TeV.cxx:652
 AliRsnAnalysisPhi7TeV.cxx:653
 AliRsnAnalysisPhi7TeV.cxx:654
 AliRsnAnalysisPhi7TeV.cxx:655
 AliRsnAnalysisPhi7TeV.cxx:656
 AliRsnAnalysisPhi7TeV.cxx:657
 AliRsnAnalysisPhi7TeV.cxx:658
 AliRsnAnalysisPhi7TeV.cxx:659
 AliRsnAnalysisPhi7TeV.cxx:660
 AliRsnAnalysisPhi7TeV.cxx:661
 AliRsnAnalysisPhi7TeV.cxx:662
 AliRsnAnalysisPhi7TeV.cxx:663
 AliRsnAnalysisPhi7TeV.cxx:664
 AliRsnAnalysisPhi7TeV.cxx:665
 AliRsnAnalysisPhi7TeV.cxx:666
 AliRsnAnalysisPhi7TeV.cxx:667
 AliRsnAnalysisPhi7TeV.cxx:668
 AliRsnAnalysisPhi7TeV.cxx:669
 AliRsnAnalysisPhi7TeV.cxx:670
 AliRsnAnalysisPhi7TeV.cxx:671
 AliRsnAnalysisPhi7TeV.cxx:672
 AliRsnAnalysisPhi7TeV.cxx:673
 AliRsnAnalysisPhi7TeV.cxx:674
 AliRsnAnalysisPhi7TeV.cxx:675
 AliRsnAnalysisPhi7TeV.cxx:676
 AliRsnAnalysisPhi7TeV.cxx:677
 AliRsnAnalysisPhi7TeV.cxx:678
 AliRsnAnalysisPhi7TeV.cxx:679
 AliRsnAnalysisPhi7TeV.cxx:680
 AliRsnAnalysisPhi7TeV.cxx:681
 AliRsnAnalysisPhi7TeV.cxx:682
 AliRsnAnalysisPhi7TeV.cxx:683
 AliRsnAnalysisPhi7TeV.cxx:684
 AliRsnAnalysisPhi7TeV.cxx:685
 AliRsnAnalysisPhi7TeV.cxx:686
 AliRsnAnalysisPhi7TeV.cxx:687
 AliRsnAnalysisPhi7TeV.cxx:688
 AliRsnAnalysisPhi7TeV.cxx:689
 AliRsnAnalysisPhi7TeV.cxx:690
 AliRsnAnalysisPhi7TeV.cxx:691
 AliRsnAnalysisPhi7TeV.cxx:692
 AliRsnAnalysisPhi7TeV.cxx:693
 AliRsnAnalysisPhi7TeV.cxx:694
 AliRsnAnalysisPhi7TeV.cxx:695
 AliRsnAnalysisPhi7TeV.cxx:696
 AliRsnAnalysisPhi7TeV.cxx:697
 AliRsnAnalysisPhi7TeV.cxx:698
 AliRsnAnalysisPhi7TeV.cxx:699
 AliRsnAnalysisPhi7TeV.cxx:700
 AliRsnAnalysisPhi7TeV.cxx:701
 AliRsnAnalysisPhi7TeV.cxx:702
 AliRsnAnalysisPhi7TeV.cxx:703
 AliRsnAnalysisPhi7TeV.cxx:704
 AliRsnAnalysisPhi7TeV.cxx:705
 AliRsnAnalysisPhi7TeV.cxx:706
 AliRsnAnalysisPhi7TeV.cxx:707
 AliRsnAnalysisPhi7TeV.cxx:708
 AliRsnAnalysisPhi7TeV.cxx:709
 AliRsnAnalysisPhi7TeV.cxx:710
 AliRsnAnalysisPhi7TeV.cxx:711
 AliRsnAnalysisPhi7TeV.cxx:712
 AliRsnAnalysisPhi7TeV.cxx:713
 AliRsnAnalysisPhi7TeV.cxx:714
 AliRsnAnalysisPhi7TeV.cxx:715
 AliRsnAnalysisPhi7TeV.cxx:716
 AliRsnAnalysisPhi7TeV.cxx:717
 AliRsnAnalysisPhi7TeV.cxx:718
 AliRsnAnalysisPhi7TeV.cxx:719
 AliRsnAnalysisPhi7TeV.cxx:720
 AliRsnAnalysisPhi7TeV.cxx:721
 AliRsnAnalysisPhi7TeV.cxx:722
 AliRsnAnalysisPhi7TeV.cxx:723
 AliRsnAnalysisPhi7TeV.cxx:724
 AliRsnAnalysisPhi7TeV.cxx:725
 AliRsnAnalysisPhi7TeV.cxx:726
 AliRsnAnalysisPhi7TeV.cxx:727
 AliRsnAnalysisPhi7TeV.cxx:728
 AliRsnAnalysisPhi7TeV.cxx:729
 AliRsnAnalysisPhi7TeV.cxx:730
 AliRsnAnalysisPhi7TeV.cxx:731
 AliRsnAnalysisPhi7TeV.cxx:732
 AliRsnAnalysisPhi7TeV.cxx:733
 AliRsnAnalysisPhi7TeV.cxx:734
 AliRsnAnalysisPhi7TeV.cxx:735
 AliRsnAnalysisPhi7TeV.cxx:736
 AliRsnAnalysisPhi7TeV.cxx:737
 AliRsnAnalysisPhi7TeV.cxx:738
 AliRsnAnalysisPhi7TeV.cxx:739
 AliRsnAnalysisPhi7TeV.cxx:740
 AliRsnAnalysisPhi7TeV.cxx:741
 AliRsnAnalysisPhi7TeV.cxx:742
 AliRsnAnalysisPhi7TeV.cxx:743
 AliRsnAnalysisPhi7TeV.cxx:744
 AliRsnAnalysisPhi7TeV.cxx:745
 AliRsnAnalysisPhi7TeV.cxx:746
 AliRsnAnalysisPhi7TeV.cxx:747
 AliRsnAnalysisPhi7TeV.cxx:748
 AliRsnAnalysisPhi7TeV.cxx:749
 AliRsnAnalysisPhi7TeV.cxx:750
 AliRsnAnalysisPhi7TeV.cxx:751
 AliRsnAnalysisPhi7TeV.cxx:752
 AliRsnAnalysisPhi7TeV.cxx:753
 AliRsnAnalysisPhi7TeV.cxx:754
 AliRsnAnalysisPhi7TeV.cxx:755
 AliRsnAnalysisPhi7TeV.cxx:756
 AliRsnAnalysisPhi7TeV.cxx:757
 AliRsnAnalysisPhi7TeV.cxx:758
 AliRsnAnalysisPhi7TeV.cxx:759
 AliRsnAnalysisPhi7TeV.cxx:760
 AliRsnAnalysisPhi7TeV.cxx:761
 AliRsnAnalysisPhi7TeV.cxx:762
 AliRsnAnalysisPhi7TeV.cxx:763
 AliRsnAnalysisPhi7TeV.cxx:764
 AliRsnAnalysisPhi7TeV.cxx:765
 AliRsnAnalysisPhi7TeV.cxx:766
 AliRsnAnalysisPhi7TeV.cxx:767
 AliRsnAnalysisPhi7TeV.cxx:768
 AliRsnAnalysisPhi7TeV.cxx:769
 AliRsnAnalysisPhi7TeV.cxx:770
 AliRsnAnalysisPhi7TeV.cxx:771
 AliRsnAnalysisPhi7TeV.cxx:772
 AliRsnAnalysisPhi7TeV.cxx:773
 AliRsnAnalysisPhi7TeV.cxx:774
 AliRsnAnalysisPhi7TeV.cxx:775
 AliRsnAnalysisPhi7TeV.cxx:776
 AliRsnAnalysisPhi7TeV.cxx:777
 AliRsnAnalysisPhi7TeV.cxx:778
 AliRsnAnalysisPhi7TeV.cxx:779
 AliRsnAnalysisPhi7TeV.cxx:780
 AliRsnAnalysisPhi7TeV.cxx:781
 AliRsnAnalysisPhi7TeV.cxx:782
 AliRsnAnalysisPhi7TeV.cxx:783
 AliRsnAnalysisPhi7TeV.cxx:784
 AliRsnAnalysisPhi7TeV.cxx:785
 AliRsnAnalysisPhi7TeV.cxx:786
 AliRsnAnalysisPhi7TeV.cxx:787
 AliRsnAnalysisPhi7TeV.cxx:788
 AliRsnAnalysisPhi7TeV.cxx:789
 AliRsnAnalysisPhi7TeV.cxx:790
 AliRsnAnalysisPhi7TeV.cxx:791
 AliRsnAnalysisPhi7TeV.cxx:792
 AliRsnAnalysisPhi7TeV.cxx:793
 AliRsnAnalysisPhi7TeV.cxx:794
 AliRsnAnalysisPhi7TeV.cxx:795
 AliRsnAnalysisPhi7TeV.cxx:796
 AliRsnAnalysisPhi7TeV.cxx:797
 AliRsnAnalysisPhi7TeV.cxx:798
 AliRsnAnalysisPhi7TeV.cxx:799
 AliRsnAnalysisPhi7TeV.cxx:800
 AliRsnAnalysisPhi7TeV.cxx:801
 AliRsnAnalysisPhi7TeV.cxx:802
 AliRsnAnalysisPhi7TeV.cxx:803
 AliRsnAnalysisPhi7TeV.cxx:804
 AliRsnAnalysisPhi7TeV.cxx:805
 AliRsnAnalysisPhi7TeV.cxx:806
 AliRsnAnalysisPhi7TeV.cxx:807
 AliRsnAnalysisPhi7TeV.cxx:808
 AliRsnAnalysisPhi7TeV.cxx:809
 AliRsnAnalysisPhi7TeV.cxx:810
 AliRsnAnalysisPhi7TeV.cxx:811
 AliRsnAnalysisPhi7TeV.cxx:812
 AliRsnAnalysisPhi7TeV.cxx:813
 AliRsnAnalysisPhi7TeV.cxx:814
 AliRsnAnalysisPhi7TeV.cxx:815
 AliRsnAnalysisPhi7TeV.cxx:816
 AliRsnAnalysisPhi7TeV.cxx:817
 AliRsnAnalysisPhi7TeV.cxx:818
 AliRsnAnalysisPhi7TeV.cxx:819
 AliRsnAnalysisPhi7TeV.cxx:820
 AliRsnAnalysisPhi7TeV.cxx:821
 AliRsnAnalysisPhi7TeV.cxx:822
 AliRsnAnalysisPhi7TeV.cxx:823
 AliRsnAnalysisPhi7TeV.cxx:824
 AliRsnAnalysisPhi7TeV.cxx:825
 AliRsnAnalysisPhi7TeV.cxx:826
 AliRsnAnalysisPhi7TeV.cxx:827
 AliRsnAnalysisPhi7TeV.cxx:828
 AliRsnAnalysisPhi7TeV.cxx:829
 AliRsnAnalysisPhi7TeV.cxx:830
 AliRsnAnalysisPhi7TeV.cxx:831
 AliRsnAnalysisPhi7TeV.cxx:832
 AliRsnAnalysisPhi7TeV.cxx:833
 AliRsnAnalysisPhi7TeV.cxx:834
 AliRsnAnalysisPhi7TeV.cxx:835