ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/
//------------------------------------------------------------------------------
// AlidNdPtCutAnalysis class. 
//
// a. functionality:
// - fills generic cut histograms
// - generates cuts (selection criteria)
//
// b. data members:
// - generic cut histograms
// - control histograms
//
// Author: J.Otwinowski 04/11/2008 
//------------------------------------------------------------------------------
#include "TH1.h"
#include "TH2.h"

#include "AliHeader.h"  
#include "AliGenEventHeader.h"  
#include "AliInputEventHandler.h"  
#include "AliStack.h"  
#include "AliESDEvent.h"  
#include "AliMCEvent.h"  
#include "AliESDtrackCuts.h"  
#include "AliLog.h" 
#include "AliTracker.h" 

#include "AlidNdPtEventCuts.h"
#include "AlidNdPtAcceptanceCuts.h"
#include "AlidNdPtBackgroundCuts.h"
#include "AlidNdPtAnalysis.h"
#include "AliPhysicsSelection.h"

#include "AliPWG0Helper.h"
#include "AlidNdPtHelper.h"
#include "AlidNdPtCutAnalysis.h"

using namespace std;

ClassImp(AlidNdPtCutAnalysis)

//_____________________________________________________________________________
  AlidNdPtCutAnalysis::AlidNdPtCutAnalysis(): AlidNdPt(),
  fAnalysisFolder(0),
  fEventCount(0),
  fRecEventHist(0),
  fMCEventHist(0),
  fRecMCEventHist(0),
  fRecMCTrackHist(0)
{
  // default constructor
  Init();
}

//_____________________________________________________________________________
AlidNdPtCutAnalysis::AlidNdPtCutAnalysis(Char_t* name, Char_t* title): AlidNdPt(name,title),
  fAnalysisFolder(0),
  fEventCount(0),
  fRecEventHist(0),
  fMCEventHist(0),
  fRecMCEventHist(0),
  fRecMCTrackHist(0)
{
  // constructor
  Init();
}

//_____________________________________________________________________________
AlidNdPtCutAnalysis::~AlidNdPtCutAnalysis() {
  // 
  if(fEventCount) delete fEventCount; fEventCount=0;
  if(fRecEventHist) delete fRecEventHist; fRecEventHist=0;
  if(fMCEventHist) delete fMCEventHist; fMCEventHist=0;
  if(fRecMCEventHist) delete fRecMCEventHist; fRecMCEventHist=0;
  if(fRecMCTrackHist) delete fRecMCTrackHist; fRecMCTrackHist=0;

  if(fAnalysisFolder) delete fAnalysisFolder; fAnalysisFolder=0;
}

//_____________________________________________________________________________
void AlidNdPtCutAnalysis::Init(){
  //
  // Init histograms
  //
  /*
  const Int_t ptNbins = 56; 
  const Double_t ptMin = 0.; 
  const Double_t ptMax = 16.; 
  Double_t binsPt[ptNbins+1] = {0.,0.05,0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5,0.55,0.6,0.65,0.7,0.75,0.8,0.85,0.9,0.95,1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2.0,2.2,2.4,2.6,2.8,3.0,3.2,3.4,3.6,3.8,4.0,4.5,5.0,5.5,6.0,6.5,7.0,7.5,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0};
  */
  // set pt bins
  const Int_t ptNbins = 50;
  const Double_t ptMin = 1.e-2, ptMax = 50.;
  Double_t *binsPt = CreateLogAxis(ptNbins,ptMin,ptMax);

  // 
  Int_t binsEventCount[2]={2,2};
  Double_t minEventCount[2]={0,0}; 
  Double_t maxEventCount[2]={2,2}; 
  fEventCount = new THnSparseF("fEventCount","trig vs trig+vertex",2,binsEventCount,minEventCount,maxEventCount);
  fEventCount->GetAxis(0)->SetTitle("trig");
  fEventCount->GetAxis(1)->SetTitle("trig+vert");
  fEventCount->Sumw2();

  //Xv:Yv:Zv:ResZv:Mult
  Double_t kFact = 1.0;

  Int_t binsRecEventHist[5]={80,80,100,80,150};
  Double_t minRecEventHist[5]={-3.*kFact,-3.*kFact,-35.,0.,0.}; 
  Double_t maxRecEventHist[5]={3.*kFact,3.*kFact,35.,10.,150.}; 
  fRecEventHist = new THnSparseF("fRecEventHist","Xv:Yv:Zv:ResZv:Mult",5,binsRecEventHist,minRecEventHist,maxRecEventHist);
  fRecEventHist->GetAxis(0)->SetTitle("Xv (cm)");
  fRecEventHist->GetAxis(1)->SetTitle("Yv (cm)");
  fRecEventHist->GetAxis(2)->SetTitle("Zv (cm)");
  fRecEventHist->GetAxis(3)->SetTitle("ResZv (cm)");
  fRecEventHist->GetAxis(4)->SetTitle("Mult");
  fRecEventHist->Sumw2();

  //Xv:Yv:Zv
  Int_t binsMCEventHist[3]={80,80,100};
  Double_t minMCEventHist[3]={-0.1,-0.1,-35.}; 
  Double_t maxMCEventHist[3]={0.1,0.1,35.}; 
  fMCEventHist = new THnSparseF("fMCEventHist","mcXv:mcYv:mcZv",3,binsMCEventHist,minMCEventHist,maxMCEventHist);
  fMCEventHist->GetAxis(0)->SetTitle("mcXv (cm)");
  fMCEventHist->GetAxis(1)->SetTitle("mcYv (cm)");
  fMCEventHist->GetAxis(2)->SetTitle("mcZv (cm)");
  fMCEventHist->Sumw2();

  //Xv-mcXv:Yv-mcYv:Zv-mcZv:Mult
  Int_t binsRecMCEventHist[4]={100,100,100,150};
  Double_t minRecMCEventHist[4]={-1.0*kFact,-1.0*kFact,-1.0*kFact,0.}; 
  Double_t maxRecMCEventHist[4]={1.0*kFact,1.0*kFact,1.0*kFact,150.}; 
  fRecMCEventHist = new THnSparseF("fRecMCEventHist","Xv-mcXv:Yv-mcYv:Zv-mcZv:Mult",4,binsRecMCEventHist,minRecMCEventHist,maxRecMCEventHist);
  fRecMCEventHist->GetAxis(0)->SetTitle("Xv-mcXv (cm)");
  fRecMCEventHist->GetAxis(1)->SetTitle("Yv-mcYv (cm)");
  fRecMCEventHist->GetAxis(2)->SetTitle("Zv-mcZv (cm)");
  fRecMCEventHist->GetAxis(3)->SetTitle("Mult");
  fRecMCEventHist->Sumw2();

  //
  // THnSparse track histograms
  //

 //nCrossRows:chi2PerClust:nCrossRows/nFindableClust:fracSharedClust:DCAy:DCAz:eta:phi:pt:hasStrangeMother:isFromMaterial:isPrim:charge
  Int_t binsRecMCTrackHist[13]=  { 160,  10,  20,  20, 50,  50,   20,  90,             ptNbins, 2,  2,  2,  3  };
  Double_t minRecMCTrackHist[13]={ 0.,   0.,  0.,  0., -0.5,-0.5,-1.0, 0.,             ptMin,   0., 0., 0.,-1. };
  Double_t maxRecMCTrackHist[13]={ 160., 10., 1.,  1., 0.5, 0.5,  1.0, 2.*TMath::Pi(), ptMax,   2., 2., 2., 2. };

  fRecMCTrackHist = new THnSparseF("fRecMCTrackHist","nCrossRows:chi2PerClust:nCrossRows/nFindableClust:fracSharedClust:DCAy:DCAz:eta:phi:pt:hasStrangeMother:isFromMaterial:isPrim:charge",13,binsRecMCTrackHist,minRecMCTrackHist,maxRecMCTrackHist);
  fRecMCTrackHist->SetBinEdges(8,binsPt);
  fRecMCTrackHist->GetAxis(0)->SetTitle("nCrossRows");
  fRecMCTrackHist->GetAxis(1)->SetTitle("chi2PerClust");
  fRecMCTrackHist->GetAxis(2)->SetTitle("nCrossRows/nFindableClust");
  fRecMCTrackHist->GetAxis(3)->SetTitle("fracSharedClust");
  fRecMCTrackHist->GetAxis(4)->SetTitle("DCAy (cm)");
  fRecMCTrackHist->GetAxis(5)->SetTitle("DCAz (cm)");
  fRecMCTrackHist->GetAxis(6)->SetTitle("#eta");
  fRecMCTrackHist->GetAxis(7)->SetTitle("#phi (rad)");
  fRecMCTrackHist->GetAxis(8)->SetTitle("p_{T} (GeV/c)");
  fRecMCTrackHist->GetAxis(9)->SetTitle("hasStrangeMother");
  fRecMCTrackHist->GetAxis(10)->SetTitle("isFromMaterial");
  fRecMCTrackHist->GetAxis(11)->SetTitle("isPrim");
  fRecMCTrackHist->GetAxis(12)->SetTitle("charge");
  fRecMCTrackHist->Sumw2();

  //nClust:chi2PerClust:nClust/nFindableClust:DCAy:DCAz:eta:phi:pt:kinkIdx:isPrim:polarity
  /*
  Int_t binsRecMCTrackHist[11]={160,80,80,100,100,90,90,ptNbins, 3, 2, 2};
  Double_t minRecMCTrackHist[11]={0., 0., 0., -1.,-1.,-1.5, 0., ptMin, -1., 0., 0.};
  Double_t maxRecMCTrackHist[11]={160.,10.,1.2, 1.,1.,1.5, 2.*TMath::Pi(), ptMax, 2., 2., 2.};

  fRecMCTrackHist = new THnSparseF("fRecMCTrackHist","nClust:chi2PerClust:nClust/nFindableClust:DCAy:DCAz:eta:phi:pt:kinkIdx:isPrim:polarity",11,binsRecMCTrackHist,minRecMCTrackHist,maxRecMCTrackHist);
  fRecMCTrackHist->SetBinEdges(7,binsPt);

  fRecMCTrackHist->GetAxis(0)->SetTitle("nClust");
  fRecMCTrackHist->GetAxis(1)->SetTitle("chi2PerClust");
  fRecMCTrackHist->GetAxis(2)->SetTitle("nClust/nFindableClust");
  fRecMCTrackHist->GetAxis(3)->SetTitle("DCAy (cm)");
  fRecMCTrackHist->GetAxis(4)->SetTitle("DCAz (cm)");
  fRecMCTrackHist->GetAxis(5)->SetTitle("#eta");
  fRecMCTrackHist->GetAxis(6)->SetTitle("#phi (rad)");
  fRecMCTrackHist->GetAxis(7)->SetTitle("p_{T} (GeV/c)");
  fRecMCTrackHist->GetAxis(8)->SetTitle("kinkIdx"); // 0 - no kink, -1 - kink mother, 1 - kink daugther 
  fRecMCTrackHist->GetAxis(9)->SetTitle("isPrim");
  fRecMCTrackHist->GetAxis(10)->SetTitle("polarity");
  fRecMCTrackHist->Sumw2();
  */

  // init output folder
  fAnalysisFolder = CreateFolder("folderdNdPt","Analysis dNdPt Folder");

}

//_____________________________________________________________________________
void AlidNdPtCutAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent * const mcEvent)
{
  //
  // Process real and/or simulated events
  //
  if(!esdEvent) {
    AliDebug(AliLog::kError, "esdEvent not available");
    return;
  }

  // get selection cuts
  AlidNdPtEventCuts *evtCuts = GetEventCuts(); 
  AlidNdPtAcceptanceCuts *accCuts = GetAcceptanceCuts(); 
  AliESDtrackCuts *esdTrackCuts = GetTrackCuts(); 

  if(!evtCuts || !accCuts  || !esdTrackCuts) {
    AliDebug(AliLog::kError, "cuts not available");
    return;
  }

  // trigger selection

  Bool_t isEventTriggered = kTRUE;
  AliPhysicsSelection *physicsSelection = NULL;
  AliTriggerAnalysis* triggerAnalysis = NULL;

  // 
  AliInputEventHandler* inputHandler = (AliInputEventHandler*) AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler();
  if (!inputHandler)
  {
    Printf("ERROR: Could not receive input handler");
    return;
  }

  if(evtCuts->IsTriggerRequired())  
  {
    // always MB
    isEventTriggered = inputHandler->IsEventSelected() & AliVEvent::kMB;

    physicsSelection = static_cast<AliPhysicsSelection*> (inputHandler->GetEventSelection());
    if(!physicsSelection) return;
    //SetPhysicsTriggerSelection(physicsSelection);

    if (isEventTriggered && (GetTrigger() == AliTriggerAnalysis::kV0AND)) {
      // set trigger (V0AND)
      triggerAnalysis = physicsSelection->GetTriggerAnalysis();
      if(!triggerAnalysis) return;
      isEventTriggered = triggerAnalysis->IsOfflineTriggerFired(esdEvent, GetTrigger());
    }
  }

  // use MC information
  AliHeader* header = 0;
  AliGenEventHeader* genHeader = 0;
  AliStack* stack = 0;
  TArrayF vtxMC(3);
  AliPWG0Helper::MCProcessType evtType = AliPWG0Helper::kInvalidProcess;

  if(IsUseMCInfo())
  {
    if(!mcEvent) {
      AliDebug(AliLog::kError, "mcEvent not available");
      return;
    }

    // get MC event header
    header = mcEvent->Header();
    if (!header) {
      AliDebug(AliLog::kError, "Header not available");
      return;
    }

    // MC particle stack
    stack = mcEvent->Stack();
    if (!stack) {
      AliDebug(AliLog::kError, "Stack not available");
      return;
    }

    // get event type (ND=0x1, DD=0x2, SD=0x4)
    evtType = AliPWG0Helper::GetEventProcessType(header);
    AliDebug(AliLog::kDebug+1, Form("Found process type %d", evtType));

    // get MC vertex
    genHeader = header->GenEventHeader();
    if (!genHeader) {
      AliDebug(AliLog::kError, "Could not retrieve genHeader from Header");
      return;
    }
    genHeader->PrimaryVertex(vtxMC);

    // Fill MC event histogram
    Double_t vMCEventHist[3]={vtxMC[0],vtxMC[1],vtxMC[2]};
    fMCEventHist->Fill(vMCEventHist);

  } // end bUseMC

  // get reconstructed vertex  
  Bool_t bRedoTPCVertex = evtCuts->IsRedoTPCVertex();
  Bool_t bUseConstraints = evtCuts->IsUseBeamSpotConstraint();
  const AliESDVertex* vtxESD = AlidNdPtHelper::GetVertex(esdEvent,evtCuts,accCuts,esdTrackCuts,GetAnalysisMode(),kFALSE,bRedoTPCVertex,bUseConstraints); 
  Bool_t isRecVertex = AlidNdPtHelper::TestRecVertex(vtxESD, esdEvent->GetPrimaryVertexSPD(), GetAnalysisMode(), kFALSE);
  Bool_t isEventOK = evtCuts->AcceptEvent(esdEvent,mcEvent,vtxESD) && isRecVertex;

  TObjArray *allChargedTracks=0;
  Int_t multAll=0;
  
  //
  // event counter
  // 
  //printf("isEventOK %d, isEventTriggered %d \n",isEventOK,isEventTriggered);

  Bool_t isTrigAndVertex = isEventTriggered && isEventOK;
  Double_t vEventCount[2] = { static_cast<Double_t>(isEventTriggered), static_cast<Double_t>(isTrigAndVertex)};
  fEventCount->Fill(vEventCount);

  //
  // cosmic background and splitted tracks
  //
  if(GetParticleMode() == AlidNdPtHelper::kBackgroundTrack) 
  {
    AlidNdPtBackgroundCuts *backCuts = GetBackgroundCuts(); 
    if(!backCuts) return;

    for (Int_t iTrack = 0; iTrack < esdEvent->GetNumberOfTracks(); iTrack++) 
    {
      AliESDtrack *track1 = esdEvent->GetTrack(iTrack);
      if(!track1) continue; 
      if(track1->Charge()==0) continue; 

      for (Int_t jTrack = iTrack+1; jTrack < esdEvent->GetNumberOfTracks(); jTrack++) 
      {
        AliESDtrack *track2 = esdEvent->GetTrack(jTrack);
        if(!track2) continue; 
        if(track2->Charge()==0) continue; 

	//printf("track2->Charge() %d\n",track2->Charge());

        backCuts->IsBackgroundTrack(track1, track2);
      }
    }
  }

  // check event cuts
  if(isEventOK && isEventTriggered)
  {
    // get all charged tracks
    allChargedTracks = AlidNdPtHelper::GetAllChargedTracks(esdEvent,GetAnalysisMode());
    if(!allChargedTracks) return;

    Int_t entries = allChargedTracks->GetEntries();
    for(Int_t i=0; i<entries;++i) 
    {
      AliESDtrack *track = (AliESDtrack*)allChargedTracks->At(i);
      if(!track) continue;

      if(!esdTrackCuts->AcceptTrack(track)) continue;

      //
      Bool_t isOK = kFALSE;
      Double_t x[3]; track->GetXYZ(x);
      Double_t b[3]; AliTracker::GetBxByBz(x,b);

      //
      // if TPC-ITS hybrid tracking (kTPCITSHybrid)
      // replace track parameters with TPC-ony track parameters
      //
      if( GetAnalysisMode() == AlidNdPtHelper::kTPCITSHybrid || GetAnalysisMode() == AlidNdPtHelper::kTPCITSHybridTrackSPDvtx || GetAnalysisMode() == AlidNdPtHelper::kTPCITSHybridTrackSPDvtxDCArPt) 
      {
        // Relate TPC-only tracks to SPD vertex
        isOK = track->RelateToVertexTPCBxByBz(vtxESD, b, kVeryBig);
        if(!isOK) continue;

	// replace esd track parameters with TPCinner
        AliExternalTrackParam  *tpcTrack  = new AliExternalTrackParam(*(track->GetTPCInnerParam()));
	if (!tpcTrack) return;
        track->Set(tpcTrack->GetX(),tpcTrack->GetAlpha(),tpcTrack->GetParameter(),tpcTrack->GetCovariance());

        if(tpcTrack) delete tpcTrack; 
      } 

      //
      if (GetAnalysisMode()==AlidNdPtHelper::kTPCSPDvtxUpdate || GetAnalysisMode() == AlidNdPtHelper::kTPCTrackSPDvtxUpdate) 
      {
        //
        // update track parameters
	//
        AliExternalTrackParam cParam;
        isOK = track->RelateToVertexTPCBxByBz(vtxESD, b, kVeryBig, &cParam);
	if(!isOK) continue;

	track->Set(cParam.GetX(),cParam.GetAlpha(),cParam.GetParameter(),cParam.GetCovariance());
      }

      FillHistograms(track, stack);
      multAll++;
    }

    Double_t vRecEventHist[5] = {vtxESD->GetX(),vtxESD->GetY(),vtxESD->GetZ(),vtxESD->GetZRes(),static_cast<Double_t>(multAll)};
    fRecEventHist->Fill(vRecEventHist);

    if(IsUseMCInfo()) {
      Double_t vRecMCEventHist[5] = {vtxESD->GetX()-vtxMC[0],vtxESD->GetY()-vtxMC[1],vtxESD->GetZ()-vtxMC[2],static_cast<Double_t>(multAll)};
      fRecMCEventHist->Fill(vRecMCEventHist);
    }
  }

  if(allChargedTracks) delete allChargedTracks; allChargedTracks = 0;

}

//_____________________________________________________________________________
void AlidNdPtCutAnalysis::FillHistograms(AliESDtrack *const esdTrack, AliStack *const stack) const
{
  //
  // Fill ESD track and MC histograms 
  //
  if(!esdTrack) return;
  if(esdTrack->Charge() == 0.) return;

  Float_t pt = esdTrack->Pt();
  Float_t eta = esdTrack->Eta();
  Float_t phi = esdTrack->Phi();


  Int_t nClust = 0;
  if(GetAnalysisMode() == AlidNdPtHelper::kTPC) { 
    nClust = esdTrack->GetTPCNclsIter1();
  } else {
    nClust = esdTrack->GetTPCclusters(0);
  }

  Float_t chi2PerCluster = 0.;
  if(GetAnalysisMode() == AlidNdPtHelper::kTPC) { 
    if(nClust>0.) chi2PerCluster = esdTrack->GetTPCchi2Iter1()/Float_t(nClust);
  } else {
    chi2PerCluster = esdTrack->GetTPCchi2()/Float_t(nClust);
  }

  Int_t nFindableClust = esdTrack->GetTPCNclsF();

  
  Float_t clustPerFindClust = 0.;
  if(nFindableClust>0.) clustPerFindClust = Float_t(nClust)/nFindableClust;

  Float_t b[2], bCov[3];
  esdTrack->GetImpactParameters(b,bCov);

  // 
  Float_t nCrossedRowsTPC = esdTrack->GetTPCClusterInfo(2,1);

  Float_t  ratioCrossedRowsOverFindableClustersTPC = 1.0;
  if (esdTrack->GetTPCNclsF()>0) {
     ratioCrossedRowsOverFindableClustersTPC = esdTrack->GetTPCClusterInfo(2,1)/esdTrack->GetTPCNclsF();
  }

  //
  Int_t nClustersTPCShared = esdTrack->GetTPCnclsS();
  Float_t fracClustersTPCShared = -1.;
  fracClustersTPCShared = Float_t(nClustersTPCShared)/Float_t(nClust);


  // kink idx
  Int_t kinkIdx = 0;
  //if(esdTrack->GetKinkIndex(0) > 0.)   isKink  = kTRUE;
  if(esdTrack->GetKinkIndex(0) > 0)      kinkIdx = 1;   // kink daughter
  else if(esdTrack->GetKinkIndex(0) < 0) kinkIdx = -1;  // kink mother
  else kinkIdx = 0; // not kink

  //printf("esdTrack->GetKinkIndex(0) %d \n", esdTrack->GetKinkIndex(0));
  //printf("esdTrack->GetKinkIndex(1) %d \n", esdTrack->GetKinkIndex(1));
  //printf("esdTrack->GetKinkIndex(2) %d \n", esdTrack->GetKinkIndex(2));
  //printf("kinkIdx %d \n", kinkIdx);

  //
  // Fill rec vs MC information
  //
  Bool_t isPrim = kTRUE;
  Bool_t hasStrangeMother = kFALSE;
  Bool_t isFromMaterial = kFALSE;

  if(IsUseMCInfo()) {
    if(!stack) return;
    Int_t label = TMath::Abs(esdTrack->GetLabel()); 
    TParticle* particle = stack->Particle(label);
    if(!particle) return;
    if(particle->GetPDG() && particle->GetPDG()->Charge()==0.) return;
    isPrim = stack->IsPhysicalPrimary(label);

    // check whether has stange mother
    //
    Int_t motherPdg = -1; 
    TParticle* mother = 0; 
       
    Int_t motherLabel = particle->GetMother(0);  
    if(motherLabel>0) mother = stack->Particle(motherLabel); 
    if(mother) motherPdg = TMath::Abs(mother->GetPdgCode()); // take abs for visualisation only 
    Int_t mech = particle->GetUniqueID(); // production mechanism 

    if( (motherPdg == 3122) || (motherPdg == -3122) || (motherPdg == 310)) // lambda, antilambda, k0s
    {
      if( (mech == 4) || (mech == 5) ) hasStrangeMother = kTRUE;
    } 
    else {
      //if(isPrim==0 && mech == 13)   
      //printf("mech %d \n", mech);
      if(!isPrim) isFromMaterial = kTRUE; 
    }

    //if(isPrim && pt > 1.5 && kinkIdx == -1) printf("nClust  %d \n", nClust);
  }
  
  // fill histo
  Int_t charge = esdTrack->Charge(); 

  //Double_t vRecMCTrackHist[11] = { nClust,chi2PerCluster,clustPerFindClust,b[0],b[1],eta,phi,pt,kinkIdx,isPrim, polarity }; 
  //fRecMCTrackHist->Fill(vRecMCTrackHist);

  Double_t vRecMCTrackHist[13] = { static_cast<Double_t>(nCrossedRowsTPC), chi2PerCluster, ratioCrossedRowsOverFindableClustersTPC, fracClustersTPCShared , b[0], b[1], eta, phi, pt, static_cast<Double_t>(hasStrangeMother), static_cast<Double_t>(isFromMaterial), static_cast<Double_t>(isPrim), static_cast<Double_t>(charge) }; 
  fRecMCTrackHist->Fill(vRecMCTrackHist);

}

//_____________________________________________________________________________
Long64_t AlidNdPtCutAnalysis::Merge(TCollection* const list) 
{
  // Merge list of objects (needed by PROOF)

  if (!list)
  return 0;

  if (list->IsEmpty())
  return 1;

  TIterator* iter = list->MakeIterator();
  TObject* obj = 0;

  //TList *collPhysSelection = new TList;

  // collection of generated histograms
  Int_t count=0;
  while((obj = iter->Next()) != 0) {
    AlidNdPtCutAnalysis* entry = dynamic_cast<AlidNdPtCutAnalysis*>(obj);
    if (entry == 0) continue; 
  
    // event histo
    fEventCount->Add(entry->fEventCount);
    fRecEventHist->Add(entry->fRecEventHist);
    fRecMCEventHist->Add(entry->fRecMCEventHist);
    fMCEventHist->Add(entry->fMCEventHist);

    // track histo
    fRecMCTrackHist->Add(entry->fRecMCTrackHist);

    // physics selection
    //collPhysSelection->Add(entry->GetPhysicsTriggerSelection());
    
  count++;
  }

  //AliPhysicsSelection *trigSelection = GetPhysicsTriggerSelection();
  //trigSelection->Merge(collPhysSelection);

  //if(collPhysSelection) delete collPhysSelection;

return count;
}

//_____________________________________________________________________________
void AlidNdPtCutAnalysis::Analyse() 
{
  //
  // Analyse histograms
  //
  TH1::AddDirectory(kFALSE);
  TObjArray *aFolderObj = new TObjArray;
  if(!aFolderObj) return;

  TH1D *h1D = 0; 
  TH2D *h2D = 0; 


  //
  // get cuts
  //
  AlidNdPtEventCuts *evtCuts = GetEventCuts(); 
  AlidNdPtAcceptanceCuts *accCuts = GetAcceptanceCuts(); 
  AliESDtrackCuts *esdTrackCuts = GetTrackCuts(); 

  if(!evtCuts || !accCuts || !esdTrackCuts) {
    Error("AlidNdPtCutAnalysis::Analyse()", "cuts not available");
    return;
  }

  //
  // set min and max values
  //
  Double_t minPt = accCuts->GetMinPt();
  Double_t maxPt = accCuts->GetMaxPt();
  Double_t minEta = accCuts->GetMinEta();
  Double_t maxEta = accCuts->GetMaxEta()-0.00001;

  Double_t maxDCAr = accCuts->GetMaxDCAr();

  //
  // Event counters
  //
  h2D = (TH2D*)fEventCount->Projection(0,1);
  if(!h2D) return;
  h2D->SetName("trig_vs_trigANDvertex");
  aFolderObj->Add(h2D);

  fEventCount->GetAxis(0)->SetRange(2,2); // triggered
  h1D = (TH1D*)fEventCount->Projection(1);
  if(!h1D) return;
  h1D->SetTitle("rec. vertex for triggered events");
  h1D->SetName("trigANDvertex");
  aFolderObj->Add(h1D);

  //
  // Create rec. event histograms
  //
  h1D = (TH1D *)fRecEventHist->Projection(0);
  if(!h1D) return;
  h1D->SetName("rec_xv");
  aFolderObj->Add(h1D);

  h1D = (TH1D *)fRecEventHist->Projection(1);
  if(!h1D) return;
  h1D->SetName("rec_yv");
  aFolderObj->Add(h1D);

  h1D = (TH1D *)fRecEventHist->Projection(2);
  if(!h1D) return;
  h1D->SetName("rec_zv");
  aFolderObj->Add(h1D);

  h2D = (TH2D *)fRecEventHist->Projection(3,4);
  if(!h2D) return;
  h2D->SetName("rec_resZv_vs_Mult");
  aFolderObj->Add(h2D);

  h2D = (TH2D *)fRecEventHist->Projection(0,1);
  if(!h2D) return;
  h2D->SetName("rec_xv_vs_yv");
  aFolderObj->Add(h2D);

  h2D = (TH2D *)fRecEventHist->Projection(0,2);
  if(!h2D) return;
  h2D->SetName("rec_xv_vs_zv");
  aFolderObj->Add(h2D);

  h2D = (TH2D *)fRecEventHist->Projection(3,4);
  if(!h2D) return;
  h2D->SetName("rec_resZv_vs_Mult");
  aFolderObj->Add(h2D);

  //
  // MC available
  //
  if(IsUseMCInfo()) {

  //
  // Create mc event histograms
  //
  h2D = (TH2D *)fMCEventHist->Projection(0,1);
  if(!h2D) return;
  h2D->SetName("mc_xv_vs_yv");
  aFolderObj->Add(h2D);

  h2D = (TH2D *)fMCEventHist->Projection(0,2);
  if(!h2D) return;
  h2D->SetName("mc_xv_vs_zv");
  aFolderObj->Add(h2D);

  //
  // Create rec-mc event histograms
  //
  h2D = (TH2D *)fRecMCEventHist->Projection(0,3);
  if(!h2D) return;
  h2D->SetName("rec_mc_deltaXv_vs_mult");
  aFolderObj->Add(h2D);

  h2D = (TH2D *)fRecMCEventHist->Projection(1,3);
  if(!h2D) return;
  h2D->SetName("rec_mc_deltaYv_vs_mult");
  aFolderObj->Add(h2D);

  h2D = (TH2D *)fRecMCEventHist->Projection(2,3);
  if(!h2D) return;
  h2D->SetName("rec_mc_deltaZv_vs_mult");
  aFolderObj->Add(h2D);

  } // end use MC info 



  //
  // Create rec-mc track track histograms 
  //

  // DCA cuts
  fRecMCTrackHist->GetAxis(3)->SetRangeUser(-maxDCAr,maxDCAr);
  fRecMCTrackHist->GetAxis(4)->SetRangeUser(-maxDCAr,maxDCAr);

  h2D = (TH2D *)fRecMCTrackHist->Projection(7,5);
  if(!h2D) return;
  h2D->SetName("pt_vs_eta");
  aFolderObj->Add(h2D);

  fRecMCTrackHist->GetAxis(7)->SetRangeUser(minPt,maxPt);  

  h2D = (TH2D *)fRecMCTrackHist->Projection(0,5);
  if(!h2D) return;
  h2D->SetName("nClust_vs_eta");
  aFolderObj->Add(h2D);

  h2D = (TH2D *)fRecMCTrackHist->Projection(1,5);
  if(!h2D) return;
  h2D->SetName("chi2PerClust_vs_eta");
  aFolderObj->Add(h2D);

  h2D = (TH2D *)fRecMCTrackHist->Projection(2,5);
  if(!h2D) return;
  h2D->SetName("ratio_nClust_nFindableClust_vs_eta");
  aFolderObj->Add(h2D);

  h2D = (TH2D *)fRecMCTrackHist->Projection(5,6);
  if(!h2D) return;
  h2D->SetName("eta_vs_phi");
  aFolderObj->Add(h2D);

  //
  fRecMCTrackHist->GetAxis(5)->SetRangeUser(minEta,maxEta);  

  h2D = (TH2D *)fRecMCTrackHist->Projection(0,6);
  if(!h2D) return;
  h2D->SetName("nClust_vs_phi");
  aFolderObj->Add(h2D);

  h2D = (TH2D *)fRecMCTrackHist->Projection(1,6);
  if(!h2D) return;
  h2D->SetName("chi2PerClust_vs_phi");
  aFolderObj->Add(h2D);

  h2D = (TH2D *)fRecMCTrackHist->Projection(2,6);
  if(!h2D) return;
  h2D->SetName("ratio_nClust_nFindableClust_vs_phi");
  aFolderObj->Add(h2D);

  //
  fRecMCTrackHist->GetAxis(7)->SetRangeUser(0.0,maxPt);  

  h2D = (TH2D *)fRecMCTrackHist->Projection(0,7);
  if(!h2D) return;
  h2D->SetName("nClust_vs_pt");
  aFolderObj->Add(h2D);

  h2D = (TH2D *)fRecMCTrackHist->Projection(1,7);
  if(!h2D) return;
  h2D->SetName("chi2PerClust_vs_pt");
  aFolderObj->Add(h2D);

  h2D = (TH2D *)fRecMCTrackHist->Projection(2,7);
  if(!h2D) return;
  h2D->SetName("ratio_nClust_nFindableClust_vs_pt");
  aFolderObj->Add(h2D);

  h2D = (TH2D *)fRecMCTrackHist->Projection(6,7);
  if(!h2D) return;
  h2D->SetName("phi_vs_pt");
  aFolderObj->Add(h2D);


  // fiducial volume
  fRecMCTrackHist->GetAxis(5)->SetRangeUser(minEta,maxEta);  
  fRecMCTrackHist->GetAxis(7)->SetRangeUser(minPt,maxPt);  

  // DCA cuts
  fRecMCTrackHist->GetAxis(3)->SetRangeUser(-maxDCAr,maxDCAr);
  fRecMCTrackHist->GetAxis(4)->SetRangeUser(-maxDCAr,maxDCAr);

  h2D = (TH2D *)fRecMCTrackHist->Projection(0,1);
  if(!h2D) return;
  h2D->SetName("nClust_vs_chi2PerClust");
  aFolderObj->Add(h2D);

  h2D = (TH2D *)fRecMCTrackHist->Projection(0,2);
  if(!h2D) return;
  h2D->SetName("nClust_vs_ratio_nClust_nFindableClust");
  aFolderObj->Add(h2D);

  //
  // DCAy cuts
  //
  fRecMCTrackHist->GetAxis(0)->SetRange(50,160); // nClust/track > 50
  fRecMCTrackHist->GetAxis(1)->SetRangeUser(0.,3.9999); // chi2/cluster < 4.0
  fRecMCTrackHist->GetAxis(3)->SetRange(1,fRecMCTrackHist->GetAxis(3)->GetNbins());
  //fRecMCTrackHist->GetAxis(4)->SetRangeUser(-1.0,1.0);
  fRecMCTrackHist->GetAxis(4)->SetRange(1,fRecMCTrackHist->GetAxis(4)->GetNbins());

  // sec
  fRecMCTrackHist->GetAxis(9)->SetRange(1,1);
  h1D = (TH1D *)fRecMCTrackHist->Projection(3);
  if(!h1D) return;
  h1D->SetName("dcay_sec");
  aFolderObj->Add(h1D);

  // prim
  fRecMCTrackHist->GetAxis(9)->SetRange(2,2);
  h1D = (TH1D *)fRecMCTrackHist->Projection(3);
  if(!h1D) return;
  h1D->SetName("dcay_prim");
  aFolderObj->Add(h1D);

  // DCAz cuts
  //fRecMCTrackHist->GetAxis(3)->SetRangeUser(-1.0,1.0);
  fRecMCTrackHist->GetAxis(4)->SetRange(1,fRecMCTrackHist->GetAxis(4)->GetNbins());

  // sec
  fRecMCTrackHist->GetAxis(9)->SetRange(1,1);
  h1D = (TH1D *)fRecMCTrackHist->Projection(4);
  if(!h1D) return;
  h1D->SetName("dcaz_sec");
  aFolderObj->Add(h1D);

  // prim
  fRecMCTrackHist->GetAxis(9)->SetRange(2,2);
  h1D = (TH1D *)fRecMCTrackHist->Projection(4);
  if(!h1D) return;
  h1D->SetName("dcaz_prim");
  aFolderObj->Add(h1D);


  // export objects to analysis folder
  fAnalysisFolder = ExportToFolder(aFolderObj);
  if(!fAnalysisFolder) {
      if(aFolderObj) delete aFolderObj;
      return;
  }

  // delete only TObjArray
  if(aFolderObj) delete aFolderObj;
}

//_____________________________________________________________________________
TFolder* AlidNdPtCutAnalysis::ExportToFolder(TObjArray * const array) 
{
  // recreate folder avery time and export objects to new one
  //
  AlidNdPtCutAnalysis * comp=this;
  TFolder *folder = comp->GetAnalysisFolder();

  TString name, title;
  TFolder *newFolder = 0;
  Int_t i = 0;
  Int_t size = array->GetSize();

  if(folder) { 
     // get name and title from old folder
     name = folder->GetName();  
     title = folder->GetTitle();  

	 // delete old one
     delete folder;

	 // create new one
     newFolder = CreateFolder(name.Data(),title.Data());
     newFolder->SetOwner();

	 // add objects to folder
     while(i < size) {
	   newFolder->Add(array->At(i));
	   i++;
	 }
  }

return newFolder;
}

//_____________________________________________________________________________
TFolder* AlidNdPtCutAnalysis::CreateFolder(TString name,TString title) { 
// create folder for analysed histograms
//
TFolder *folder = 0;
  folder = new TFolder(name.Data(),title.Data());

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