ROOT logo

/**************************************************************************
 * Copyright(c) 1998-2009, 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.                  *
 **************************************************************************/

//-----------------------------------------------------------------
//         AliSpectraAODTrackCuts class
//-----------------------------------------------------------------

#include "TChain.h"
#include "TTree.h"
#include "TLegend.h"
#include "TH1F.h"
#include "TH1I.h"
#include "TH2F.h"
#include "TCanvas.h"
#include "AliAnalysisTask.h"
#include "AliAnalysisManager.h"
#include "AliAODTrack.h"
#include "AliPIDResponse.h"   
#include "AliExternalTrackParam.h"
#include "AliAODMCParticle.h"
#include "AliAODEvent.h"
#include "AliAODInputHandler.h"
#include "AliAnalysisTaskESDfilter.h"
#include "AliAnalysisDataContainer.h"
#include "AliSpectraAODTrackCuts.h"
#include <iostream>

using namespace std;

const char * AliSpectraAODTrackCuts::kBinLabel[] ={"TrkBit",
						   "TrkCuts",
						   "TrkEta",
						   "TrkDCA",
						   "TrkP",
						   "TrkPt",
						   "TrkPtTOF",
						   "TOFMatching",
						   "kTOFout",
						   "kTIME",
						   "kTOFpid",
						   "Accepted"};


ClassImp(AliSpectraAODTrackCuts)


AliSpectraAODTrackCuts::AliSpectraAODTrackCuts(const char *name) : TNamed(name, "AOD Track Cuts"), fIsSelected(0), fTrackBits(0), fMinTPCcls(0), fRequestSPDcls(0), fEtaCutMin(0), fEtaCutMax(0), fDCACut(0), fPCut(0), fPtCut(0), fYCut(0),
  fPtCutTOFMatching(0), fHistoCuts(0), fHistoNSelectedPos(0), fHistoNSelectedNeg(0), fHistoNMatchedPos(0), fHistoNMatchedNeg(0), fHistoEtaPhiHighPt(0), fTrack(0), fPIDResponse(0)
{
  // Constructor
  fHistoCuts = new TH1I("fTrkCuts", "Track Cuts", kNTrkCuts, -0.5, kNTrkCuts - 0.5);
  for(Int_t ibin=1;ibin<=kNTrkCuts;ibin++)fHistoCuts->GetXaxis()->SetBinLabel(ibin,kBinLabel[ibin-1]);
  //standard histo
  const Double_t templBins[] = {0.20,0.30,0.4,0.5,0.6,0.7,0.8,0.9,1.0,1.2,1.4,1.6,1.8,2.0,2.4,2.8,3.2,3.6,4.0,5.0,6.0,7.0,8.0,9.0,10.,12.,15.};
  const Int_t nbinsTempl=26;

  fHistoNSelectedPos=new TH1F("fHistoNSelectedPos","fHistoNSelectedPos",nbinsTempl,templBins);
  fHistoNSelectedPos->GetXaxis()->SetTitle("P_{T} (GeV / c)");
  fHistoNSelectedNeg=new TH1F("fHistoNSelectedNeg","fHistoNSelectedNeg",nbinsTempl,templBins);
  fHistoNSelectedNeg->GetXaxis()->SetTitle("P_{T} (GeV / c)");
  fHistoNMatchedPos=new TH1F("fHistoNMatchedPos","fHistoNMatchedPos",nbinsTempl,templBins);
  fHistoNMatchedPos->GetXaxis()->SetTitle("P_{T} (GeV / c)");
  fHistoNMatchedNeg=new TH1F("fHistoNMatchedNeg","fHistoNMatchedNeg",nbinsTempl,templBins);
  fHistoNMatchedNeg->GetXaxis()->SetTitle("P_{T} (GeV / c)");
  fHistoEtaPhiHighPt=new TH2F("fHistoEtaPhiHighPt","fHistoEtaPhiHighPt",200,-1,1,400,0,7);
  fHistoEtaPhiHighPt->SetXTitle("eta");
  fHistoEtaPhiHighPt->SetYTitle("phi");
  
  fEtaCutMin = -100000.0; // default value of eta cut ~ no cut
  fEtaCutMax = 100000.0; // default value of eta cut ~ no cut
  fDCACut = 100000.0; // default value of dca cut ~ no cut
  fPCut = 100000.0; // default value of p cut ~ no cut
  fPtCut = 100000.0; // default value of pt cut ~ no cut 
  fPtCutTOFMatching=0.6; //default value fot matching with TOF
  fYCut       = 100000.0; // default value of y cut ~ no cut 
  fMinTPCcls=70; // ncls in TPC
  fRequestSPDcls=kFALSE; //request a hit in the SPD
}

//_______________________________________________________
Bool_t AliSpectraAODTrackCuts::IsSelected(AliAODTrack * track,Bool_t FillHistStat)
{
  // Returns true if Track Cuts are selected and applied
  if (!track)
    {
      printf("ERROR: Could not receive track");
      return kFALSE;
    }
  fTrack = track;
  
  if(!CheckTrackType()){
    return kFALSE;
  }
  if(FillHistStat)fHistoCuts->Fill(kTrkBit);
  
  if(!CheckTrackCuts()){
    return kFALSE;
  }
  if(FillHistStat)fHistoCuts->Fill(kTrkCuts);
  if(!CheckEtaCut()){
    return kFALSE;
  }
  if(FillHistStat)fHistoCuts->Fill(kTrkEta);
  if(!CheckDCACut()){
    return kFALSE;
  }
  if(FillHistStat)fHistoCuts->Fill(kTrkDCA);
  if(!CheckPCut()){
    return kFALSE;
  }
  if(FillHistStat)fHistoCuts->Fill(kTrkP);
  if(!CheckPtCut()){
    return kFALSE;
  }
  if(FillHistStat)fHistoCuts->Fill(kTrkPt);
  if(!CheckTOFMatching(FillHistStat)){
    return kFALSE;
  }
  if(FillHistStat)fHistoCuts->Fill(kAccepted);
  return kTRUE;
}
//_________________________________________________________

Bool_t AliSpectraAODTrackCuts::CheckTrackType()
{
  // Check track Type
  if (fTrack->TestFilterBit(fTrackBits)) return kTRUE;
  return kFALSE;
}
//_________________________________________________________

Bool_t AliSpectraAODTrackCuts::CheckTrackCuts()
{
  // Check additional track Cuts
  Bool_t PassTrackCuts=kTRUE;
  if (!fTrack->HasPointOnITSLayer(0) && !fTrack->HasPointOnITSLayer(1)  && fRequestSPDcls)PassTrackCuts=kFALSE; //FIXME 1 SPD for the moment
  if (fTrack->GetTPCNcls()<fMinTPCcls)PassTrackCuts=kFALSE;
  return PassTrackCuts;
}
//________________________________________________________
Bool_t AliSpectraAODTrackCuts::CheckEtaCut()
{
  // Check eta cut
  if (fTrack->Eta() < fEtaCutMax && fTrack->Eta() > fEtaCutMin) return kTRUE;
  return kFALSE;
}

Bool_t AliSpectraAODTrackCuts::CheckYCut(Double_t mass) 
{
  // check if the rapidity is within the set range
  Double_t y=-1000;
  if (mass > 0.) { y = fTrack->Y(mass); }//negative mass for unidentified particles
  if (TMath::Abs(y) > fYCut || y < -998.) return kFALSE;
  return kTRUE;
}
//_______________________________________________________
Bool_t AliSpectraAODTrackCuts::CheckDCACut()
{
  // Check DCA cut
  if (TMath::Abs(fTrack->DCA()) < fDCACut) return kTRUE; //FIXME for newest AOD fTrack->DCA() always gives -999
  return kFALSE;
}
//________________________________________________________
Bool_t AliSpectraAODTrackCuts::CheckPCut()
{
  // Check P cut
  if (fTrack->P() < fPCut) return kTRUE;
  return kFALSE;
}
//_______________________________________________________
Bool_t AliSpectraAODTrackCuts::CheckPtCut()
{
  // check Pt cut
  if (fTrack->Pt() < fPtCut) return kTRUE;
  return kFALSE;
}

//_______________________________________________________
Bool_t AliSpectraAODTrackCuts::CheckTOFMatching(Bool_t FillHistStat)
{
  if (fTrack->Pt() < fPtCutTOFMatching) return kTRUE;
  else{
    if(FillHistStat)fHistoCuts->Fill(kTrkPtTOF);
    if(fTrack->Charge()>0)fHistoNSelectedPos->Fill(fTrack->Pt());
    else fHistoNSelectedNeg->Fill(fTrack->Pt());
    
    // Get PID response object, if needed
    if(!fPIDResponse) {
      AliAnalysisManager *man = AliAnalysisManager::GetAnalysisManager();
      AliInputEventHandler* inputHandler = (AliInputEventHandler*)(man->GetInputEventHandler());
      fPIDResponse = inputHandler->GetPIDResponse();
    }
    if(!fPIDResponse) {
      AliFatal("Cannot get pid response");
      return 0;
    }
    
    if(fPIDResponse->CheckPIDStatus(AliPIDResponse::kTOF,fTrack)==0)return kFALSE; 
    
    //check the bits of the selected particles
    UInt_t status; 
    status=fTrack->GetStatus();
    if((status&AliAODTrack::kTOFout)&&FillHistStat)fHistoCuts->Fill(kTrTOFout);
    if((status&AliAODTrack::kTIME)&&FillHistStat)fHistoCuts->Fill(kTrTIME);
    if((status&AliAODTrack::kTOFpid)&&FillHistStat)fHistoCuts->Fill(kTrTOFpid);
    
    
    if(FillHistStat)fHistoCuts->Fill(kTOFMatching);
    if(fTrack->Charge()>0)fHistoNMatchedPos->Fill(fTrack->Pt());
    else fHistoNMatchedNeg->Fill(fTrack->Pt());
    if(fTrack->Pt()>1.5){
      //fHistoEtaPhiHighPt->Fill(fTrack->GetOuterParam()->Eta(),fTrack->GetOuterParam()->Phi());
      //Printf("AliExternalTrackParam * extpar=(AliExternalTrackParam*)fTrack->GetOuterParam();");
      //AliExternalTrackParam * extpar=(AliExternalTrackParam*)fTrack->GetOuterParam();
      fHistoEtaPhiHighPt->Fill(fTrack->Eta(),fTrack->Phi());
      //Printf("fHistoEtaPhiHighPt->Fill(extpar->Eta(),extpar->Phi());");
      //fHistoEtaPhiHighPt->Fill(extpar->Eta(),extpar->Phi());
      //delete extpar;
    }
    return kTRUE;
  }
}
//_______________________________________________________
void AliSpectraAODTrackCuts::PrintCuts() const
{
  // Print cuts
  cout << "Track Cuts" << endl;
  cout << " > TrackBit\t" << fTrackBits << endl;
  cout << " > Eta cut\t" << fEtaCutMin <<","<< fEtaCutMax << endl;
  cout << " > DCA cut\t" << fDCACut << endl;
  cout << " > P cut\t" << fPCut << endl;
  cout << " > Pt cut \t" << fPtCut << endl;
  cout << " > TPC cls \t" << fMinTPCcls << endl;
}
//_______________________________________________________
void AliSpectraAODTrackCuts::SetTrackType(UInt_t bit)
{
  // Set the type of track to be used. The argument should be the bit number. The mask is produced automatically.
  fTrackBits = (0x1 << (bit - 1));
}
//_______________________________________________________

Long64_t AliSpectraAODTrackCuts::Merge(TCollection* list)
{
  // Merge a list of AliSpectraAODTrackCuts objects with this.
  // Returns the number of merged objects (including this).

  //  AliInfo("Merging");

  if (!list)
    return 0;

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

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

  // collections of all histograms
  TList collections;//FIXME we should only 1 collection
  TList collections_histoNSelectedPos;
  TList collections_histoNSelectedNeg;
  TList collections_histoNMatchedPos;
  TList collections_histoNMatchedNeg;
  TList collections_histoEtaPhiHighPt;

  Int_t count = 0;

  while ((obj = iter->Next())) {
    AliSpectraAODTrackCuts* entry = dynamic_cast<AliSpectraAODTrackCuts*> (obj);
    if (entry == 0) 
      continue;
    
    TH1I * histo = entry->GetHistoCuts();      
    collections.Add(histo);
    TH1F * histoNSelectedPos = entry->GetHistoNSelectedPos();      
    collections_histoNSelectedPos.Add(histoNSelectedPos);
    TH1F * histoNSelectedNeg = entry->GetHistoNSelectedNeg();      
    collections_histoNSelectedNeg.Add(histoNSelectedNeg);
    TH1F * histoNMatchedPos = entry->GetHistoNMatchedPos();      
    collections_histoNMatchedPos.Add(histoNMatchedPos);
    TH1F * histoNMatchedNeg = entry->GetHistoNMatchedNeg();      
    collections_histoNMatchedNeg.Add(histoNMatchedNeg);
    TH2F * histoEtaPhiHighPt = entry->GetHistoEtaPhiHighPt();      
    collections_histoEtaPhiHighPt.Add(histoEtaPhiHighPt);
    count++;
  }
  
  fHistoCuts->Merge(&collections);
  fHistoNSelectedPos->Merge(&collections_histoNSelectedPos);
  fHistoNSelectedNeg->Merge(&collections_histoNSelectedNeg);
  fHistoNMatchedPos->Merge(&collections_histoNMatchedPos);
  fHistoNMatchedNeg->Merge(&collections_histoNMatchedNeg);
  fHistoEtaPhiHighPt->Merge(&collections_histoEtaPhiHighPt);
  
  delete iter;

  return count+1;
}

 AliSpectraAODTrackCuts.cxx:1
 AliSpectraAODTrackCuts.cxx:2
 AliSpectraAODTrackCuts.cxx:3
 AliSpectraAODTrackCuts.cxx:4
 AliSpectraAODTrackCuts.cxx:5
 AliSpectraAODTrackCuts.cxx:6
 AliSpectraAODTrackCuts.cxx:7
 AliSpectraAODTrackCuts.cxx:8
 AliSpectraAODTrackCuts.cxx:9
 AliSpectraAODTrackCuts.cxx:10
 AliSpectraAODTrackCuts.cxx:11
 AliSpectraAODTrackCuts.cxx:12
 AliSpectraAODTrackCuts.cxx:13
 AliSpectraAODTrackCuts.cxx:14
 AliSpectraAODTrackCuts.cxx:15
 AliSpectraAODTrackCuts.cxx:16
 AliSpectraAODTrackCuts.cxx:17
 AliSpectraAODTrackCuts.cxx:18
 AliSpectraAODTrackCuts.cxx:19
 AliSpectraAODTrackCuts.cxx:20
 AliSpectraAODTrackCuts.cxx:21
 AliSpectraAODTrackCuts.cxx:22
 AliSpectraAODTrackCuts.cxx:23
 AliSpectraAODTrackCuts.cxx:24
 AliSpectraAODTrackCuts.cxx:25
 AliSpectraAODTrackCuts.cxx:26
 AliSpectraAODTrackCuts.cxx:27
 AliSpectraAODTrackCuts.cxx:28
 AliSpectraAODTrackCuts.cxx:29
 AliSpectraAODTrackCuts.cxx:30
 AliSpectraAODTrackCuts.cxx:31
 AliSpectraAODTrackCuts.cxx:32
 AliSpectraAODTrackCuts.cxx:33
 AliSpectraAODTrackCuts.cxx:34
 AliSpectraAODTrackCuts.cxx:35
 AliSpectraAODTrackCuts.cxx:36
 AliSpectraAODTrackCuts.cxx:37
 AliSpectraAODTrackCuts.cxx:38
 AliSpectraAODTrackCuts.cxx:39
 AliSpectraAODTrackCuts.cxx:40
 AliSpectraAODTrackCuts.cxx:41
 AliSpectraAODTrackCuts.cxx:42
 AliSpectraAODTrackCuts.cxx:43
 AliSpectraAODTrackCuts.cxx:44
 AliSpectraAODTrackCuts.cxx:45
 AliSpectraAODTrackCuts.cxx:46
 AliSpectraAODTrackCuts.cxx:47
 AliSpectraAODTrackCuts.cxx:48
 AliSpectraAODTrackCuts.cxx:49
 AliSpectraAODTrackCuts.cxx:50
 AliSpectraAODTrackCuts.cxx:51
 AliSpectraAODTrackCuts.cxx:52
 AliSpectraAODTrackCuts.cxx:53
 AliSpectraAODTrackCuts.cxx:54
 AliSpectraAODTrackCuts.cxx:55
 AliSpectraAODTrackCuts.cxx:56
 AliSpectraAODTrackCuts.cxx:57
 AliSpectraAODTrackCuts.cxx:58
 AliSpectraAODTrackCuts.cxx:59
 AliSpectraAODTrackCuts.cxx:60
 AliSpectraAODTrackCuts.cxx:61
 AliSpectraAODTrackCuts.cxx:62
 AliSpectraAODTrackCuts.cxx:63
 AliSpectraAODTrackCuts.cxx:64
 AliSpectraAODTrackCuts.cxx:65
 AliSpectraAODTrackCuts.cxx:66
 AliSpectraAODTrackCuts.cxx:67
 AliSpectraAODTrackCuts.cxx:68
 AliSpectraAODTrackCuts.cxx:69
 AliSpectraAODTrackCuts.cxx:70
 AliSpectraAODTrackCuts.cxx:71
 AliSpectraAODTrackCuts.cxx:72
 AliSpectraAODTrackCuts.cxx:73
 AliSpectraAODTrackCuts.cxx:74
 AliSpectraAODTrackCuts.cxx:75
 AliSpectraAODTrackCuts.cxx:76
 AliSpectraAODTrackCuts.cxx:77
 AliSpectraAODTrackCuts.cxx:78
 AliSpectraAODTrackCuts.cxx:79
 AliSpectraAODTrackCuts.cxx:80
 AliSpectraAODTrackCuts.cxx:81
 AliSpectraAODTrackCuts.cxx:82
 AliSpectraAODTrackCuts.cxx:83
 AliSpectraAODTrackCuts.cxx:84
 AliSpectraAODTrackCuts.cxx:85
 AliSpectraAODTrackCuts.cxx:86
 AliSpectraAODTrackCuts.cxx:87
 AliSpectraAODTrackCuts.cxx:88
 AliSpectraAODTrackCuts.cxx:89
 AliSpectraAODTrackCuts.cxx:90
 AliSpectraAODTrackCuts.cxx:91
 AliSpectraAODTrackCuts.cxx:92
 AliSpectraAODTrackCuts.cxx:93
 AliSpectraAODTrackCuts.cxx:94
 AliSpectraAODTrackCuts.cxx:95
 AliSpectraAODTrackCuts.cxx:96
 AliSpectraAODTrackCuts.cxx:97
 AliSpectraAODTrackCuts.cxx:98
 AliSpectraAODTrackCuts.cxx:99
 AliSpectraAODTrackCuts.cxx:100
 AliSpectraAODTrackCuts.cxx:101
 AliSpectraAODTrackCuts.cxx:102
 AliSpectraAODTrackCuts.cxx:103
 AliSpectraAODTrackCuts.cxx:104
 AliSpectraAODTrackCuts.cxx:105
 AliSpectraAODTrackCuts.cxx:106
 AliSpectraAODTrackCuts.cxx:107
 AliSpectraAODTrackCuts.cxx:108
 AliSpectraAODTrackCuts.cxx:109
 AliSpectraAODTrackCuts.cxx:110
 AliSpectraAODTrackCuts.cxx:111
 AliSpectraAODTrackCuts.cxx:112
 AliSpectraAODTrackCuts.cxx:113
 AliSpectraAODTrackCuts.cxx:114
 AliSpectraAODTrackCuts.cxx:115
 AliSpectraAODTrackCuts.cxx:116
 AliSpectraAODTrackCuts.cxx:117
 AliSpectraAODTrackCuts.cxx:118
 AliSpectraAODTrackCuts.cxx:119
 AliSpectraAODTrackCuts.cxx:120
 AliSpectraAODTrackCuts.cxx:121
 AliSpectraAODTrackCuts.cxx:122
 AliSpectraAODTrackCuts.cxx:123
 AliSpectraAODTrackCuts.cxx:124
 AliSpectraAODTrackCuts.cxx:125
 AliSpectraAODTrackCuts.cxx:126
 AliSpectraAODTrackCuts.cxx:127
 AliSpectraAODTrackCuts.cxx:128
 AliSpectraAODTrackCuts.cxx:129
 AliSpectraAODTrackCuts.cxx:130
 AliSpectraAODTrackCuts.cxx:131
 AliSpectraAODTrackCuts.cxx:132
 AliSpectraAODTrackCuts.cxx:133
 AliSpectraAODTrackCuts.cxx:134
 AliSpectraAODTrackCuts.cxx:135
 AliSpectraAODTrackCuts.cxx:136
 AliSpectraAODTrackCuts.cxx:137
 AliSpectraAODTrackCuts.cxx:138
 AliSpectraAODTrackCuts.cxx:139
 AliSpectraAODTrackCuts.cxx:140
 AliSpectraAODTrackCuts.cxx:141
 AliSpectraAODTrackCuts.cxx:142
 AliSpectraAODTrackCuts.cxx:143
 AliSpectraAODTrackCuts.cxx:144
 AliSpectraAODTrackCuts.cxx:145
 AliSpectraAODTrackCuts.cxx:146
 AliSpectraAODTrackCuts.cxx:147
 AliSpectraAODTrackCuts.cxx:148
 AliSpectraAODTrackCuts.cxx:149
 AliSpectraAODTrackCuts.cxx:150
 AliSpectraAODTrackCuts.cxx:151
 AliSpectraAODTrackCuts.cxx:152
 AliSpectraAODTrackCuts.cxx:153
 AliSpectraAODTrackCuts.cxx:154
 AliSpectraAODTrackCuts.cxx:155
 AliSpectraAODTrackCuts.cxx:156
 AliSpectraAODTrackCuts.cxx:157
 AliSpectraAODTrackCuts.cxx:158
 AliSpectraAODTrackCuts.cxx:159
 AliSpectraAODTrackCuts.cxx:160
 AliSpectraAODTrackCuts.cxx:161
 AliSpectraAODTrackCuts.cxx:162
 AliSpectraAODTrackCuts.cxx:163
 AliSpectraAODTrackCuts.cxx:164
 AliSpectraAODTrackCuts.cxx:165
 AliSpectraAODTrackCuts.cxx:166
 AliSpectraAODTrackCuts.cxx:167
 AliSpectraAODTrackCuts.cxx:168
 AliSpectraAODTrackCuts.cxx:169
 AliSpectraAODTrackCuts.cxx:170
 AliSpectraAODTrackCuts.cxx:171
 AliSpectraAODTrackCuts.cxx:172
 AliSpectraAODTrackCuts.cxx:173
 AliSpectraAODTrackCuts.cxx:174
 AliSpectraAODTrackCuts.cxx:175
 AliSpectraAODTrackCuts.cxx:176
 AliSpectraAODTrackCuts.cxx:177
 AliSpectraAODTrackCuts.cxx:178
 AliSpectraAODTrackCuts.cxx:179
 AliSpectraAODTrackCuts.cxx:180
 AliSpectraAODTrackCuts.cxx:181
 AliSpectraAODTrackCuts.cxx:182
 AliSpectraAODTrackCuts.cxx:183
 AliSpectraAODTrackCuts.cxx:184
 AliSpectraAODTrackCuts.cxx:185
 AliSpectraAODTrackCuts.cxx:186
 AliSpectraAODTrackCuts.cxx:187
 AliSpectraAODTrackCuts.cxx:188
 AliSpectraAODTrackCuts.cxx:189
 AliSpectraAODTrackCuts.cxx:190
 AliSpectraAODTrackCuts.cxx:191
 AliSpectraAODTrackCuts.cxx:192
 AliSpectraAODTrackCuts.cxx:193
 AliSpectraAODTrackCuts.cxx:194
 AliSpectraAODTrackCuts.cxx:195
 AliSpectraAODTrackCuts.cxx:196
 AliSpectraAODTrackCuts.cxx:197
 AliSpectraAODTrackCuts.cxx:198
 AliSpectraAODTrackCuts.cxx:199
 AliSpectraAODTrackCuts.cxx:200
 AliSpectraAODTrackCuts.cxx:201
 AliSpectraAODTrackCuts.cxx:202
 AliSpectraAODTrackCuts.cxx:203
 AliSpectraAODTrackCuts.cxx:204
 AliSpectraAODTrackCuts.cxx:205
 AliSpectraAODTrackCuts.cxx:206
 AliSpectraAODTrackCuts.cxx:207
 AliSpectraAODTrackCuts.cxx:208
 AliSpectraAODTrackCuts.cxx:209
 AliSpectraAODTrackCuts.cxx:210
 AliSpectraAODTrackCuts.cxx:211
 AliSpectraAODTrackCuts.cxx:212
 AliSpectraAODTrackCuts.cxx:213
 AliSpectraAODTrackCuts.cxx:214
 AliSpectraAODTrackCuts.cxx:215
 AliSpectraAODTrackCuts.cxx:216
 AliSpectraAODTrackCuts.cxx:217
 AliSpectraAODTrackCuts.cxx:218
 AliSpectraAODTrackCuts.cxx:219
 AliSpectraAODTrackCuts.cxx:220
 AliSpectraAODTrackCuts.cxx:221
 AliSpectraAODTrackCuts.cxx:222
 AliSpectraAODTrackCuts.cxx:223
 AliSpectraAODTrackCuts.cxx:224
 AliSpectraAODTrackCuts.cxx:225
 AliSpectraAODTrackCuts.cxx:226
 AliSpectraAODTrackCuts.cxx:227
 AliSpectraAODTrackCuts.cxx:228
 AliSpectraAODTrackCuts.cxx:229
 AliSpectraAODTrackCuts.cxx:230
 AliSpectraAODTrackCuts.cxx:231
 AliSpectraAODTrackCuts.cxx:232
 AliSpectraAODTrackCuts.cxx:233
 AliSpectraAODTrackCuts.cxx:234
 AliSpectraAODTrackCuts.cxx:235
 AliSpectraAODTrackCuts.cxx:236
 AliSpectraAODTrackCuts.cxx:237
 AliSpectraAODTrackCuts.cxx:238
 AliSpectraAODTrackCuts.cxx:239
 AliSpectraAODTrackCuts.cxx:240
 AliSpectraAODTrackCuts.cxx:241
 AliSpectraAODTrackCuts.cxx:242
 AliSpectraAODTrackCuts.cxx:243
 AliSpectraAODTrackCuts.cxx:244
 AliSpectraAODTrackCuts.cxx:245
 AliSpectraAODTrackCuts.cxx:246
 AliSpectraAODTrackCuts.cxx:247
 AliSpectraAODTrackCuts.cxx:248
 AliSpectraAODTrackCuts.cxx:249
 AliSpectraAODTrackCuts.cxx:250
 AliSpectraAODTrackCuts.cxx:251
 AliSpectraAODTrackCuts.cxx:252
 AliSpectraAODTrackCuts.cxx:253
 AliSpectraAODTrackCuts.cxx:254
 AliSpectraAODTrackCuts.cxx:255
 AliSpectraAODTrackCuts.cxx:256
 AliSpectraAODTrackCuts.cxx:257
 AliSpectraAODTrackCuts.cxx:258
 AliSpectraAODTrackCuts.cxx:259
 AliSpectraAODTrackCuts.cxx:260
 AliSpectraAODTrackCuts.cxx:261
 AliSpectraAODTrackCuts.cxx:262
 AliSpectraAODTrackCuts.cxx:263
 AliSpectraAODTrackCuts.cxx:264
 AliSpectraAODTrackCuts.cxx:265
 AliSpectraAODTrackCuts.cxx:266
 AliSpectraAODTrackCuts.cxx:267
 AliSpectraAODTrackCuts.cxx:268
 AliSpectraAODTrackCuts.cxx:269
 AliSpectraAODTrackCuts.cxx:270
 AliSpectraAODTrackCuts.cxx:271
 AliSpectraAODTrackCuts.cxx:272
 AliSpectraAODTrackCuts.cxx:273
 AliSpectraAODTrackCuts.cxx:274
 AliSpectraAODTrackCuts.cxx:275
 AliSpectraAODTrackCuts.cxx:276
 AliSpectraAODTrackCuts.cxx:277
 AliSpectraAODTrackCuts.cxx:278
 AliSpectraAODTrackCuts.cxx:279
 AliSpectraAODTrackCuts.cxx:280
 AliSpectraAODTrackCuts.cxx:281
 AliSpectraAODTrackCuts.cxx:282
 AliSpectraAODTrackCuts.cxx:283
 AliSpectraAODTrackCuts.cxx:284
 AliSpectraAODTrackCuts.cxx:285
 AliSpectraAODTrackCuts.cxx:286
 AliSpectraAODTrackCuts.cxx:287
 AliSpectraAODTrackCuts.cxx:288
 AliSpectraAODTrackCuts.cxx:289
 AliSpectraAODTrackCuts.cxx:290
 AliSpectraAODTrackCuts.cxx:291
 AliSpectraAODTrackCuts.cxx:292
 AliSpectraAODTrackCuts.cxx:293
 AliSpectraAODTrackCuts.cxx:294
 AliSpectraAODTrackCuts.cxx:295
 AliSpectraAODTrackCuts.cxx:296
 AliSpectraAODTrackCuts.cxx:297
 AliSpectraAODTrackCuts.cxx:298
 AliSpectraAODTrackCuts.cxx:299
 AliSpectraAODTrackCuts.cxx:300
 AliSpectraAODTrackCuts.cxx:301
 AliSpectraAODTrackCuts.cxx:302
 AliSpectraAODTrackCuts.cxx:303
 AliSpectraAODTrackCuts.cxx:304
 AliSpectraAODTrackCuts.cxx:305
 AliSpectraAODTrackCuts.cxx:306
 AliSpectraAODTrackCuts.cxx:307
 AliSpectraAODTrackCuts.cxx:308
 AliSpectraAODTrackCuts.cxx:309
 AliSpectraAODTrackCuts.cxx:310
 AliSpectraAODTrackCuts.cxx:311
 AliSpectraAODTrackCuts.cxx:312
 AliSpectraAODTrackCuts.cxx:313