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.                  *
 **************************************************************************/

//
// Create a new AOD starting from the general AOD. This Task can be used also strating 
//from ESD changing the input handler. (Method to be testeted on the grid)
// filtering of the ESD. 
//
// Authors: S. Bufalino (stefania.bufalino@cern.ch)
//          R. Lea      (ramona.lea@cern.ch)
// Based on AliAnalysisTaskESDMuonFilter.cxx  
//
// (see AddFilteredAOD method)
//

#include "AliAnalysisTaskESDNuclExFilter.h"

#include "AliAODDimuon.h"
#include "AliAODEvent.h"
#include "AliAODHandler.h"
#include "AliAODExtension.h"
#include "AliAODMCParticle.h"
#include "AliAODNuclExReplicator.h"
#include "AliAODVertex.h"
#include "AliAnalysisFilter.h"
#include "AliAnalysisManager.h"
#include "AliCodeTimer.h"
#include "AliESDEvent.h"
#include "AliESDInputHandler.h"
#include "AliESDMuonTrack.h"
#include "AliESDVertex.h"
#include "AliESDtrack.h"
#include "AliLog.h"
#include "AliMCEvent.h"
#include "AliMCEventHandler.h"
#include "AliMultiplicity.h"
#include <TChain.h>
#include <TFile.h>
#include <TParticle.h>
#include "AliESDtrackCuts.h"
#include "AliAODTrack.h"
#include "AliAODPid.h"
#include "TF1.h"
#include "AliPIDResponse.h"

using std::cout;
using std::endl;
ClassImp(AliAnalysisTaskESDNuclExFilter)
//ClassImp(AliAnalysisNonMuonTrackCuts)

////////////////////////////////////////////////////////////////////////

// AliAnalysisNonMuonTrackCuts::AliAnalysisNonMuonTrackCuts()
// {
//   // default ctor 
// }

// Bool_t AliAnalysisNonMuonTrackCuts::IsSelected(TObject* obj)
// {
//   // Returns true if the object is a muon track
//   AliAODTrack* track = dynamic_cast<AliAODTrack*>(obj);

//   ULong_t  status;

//   if(track){
    
//     status  = (ULong_t)track->GetStatus();

//     if(track->GetTPCNcls() > 80 &&
//        track->Chi2perNDF() < 5  &&
//        track->IsOn(AliAODTrack::kTPCrefit) &&
//        track->IsOn(AliAODTrack::kTPCin)    &&
//        !track->IsOn(AliAODTrack::kITSpureSA))
//       {
// 	return kTRUE;
//       }
//   } 
  
//   else 
//     return kFALSE;
  

// }

// AliAnalysisNonPrimaryVertices::AliAnalysisNonPrimaryVertices()
// {
//   // default ctor   
// }

// Bool_t AliAnalysisNonPrimaryVertices::IsSelected(TObject* obj)
// {
//   // Returns true if the object is a primary vertex
  
//   AliAODVertex* vertex = dynamic_cast<AliAODVertex*>(obj);
//   if (vertex)
//     {
//       if ( vertex->GetType() == AliAODVertex::kPrimary     ||
// 	   vertex->GetType() == AliAODVertex::kMainSPD     ||
// 	   vertex->GetType() == AliAODVertex::kPileupSPD   ||
// 	   vertex->GetType() == AliAODVertex::kPileupTracks||
// 	   vertex->GetType() == AliAODVertex::kMainTPC )
// 	{
// 	  return kTRUE;
// 	}
//     }
  
//   //  enum AODVtx_t {kUndef=-1, kPrimary, kKink, kV0, kCascade, kMulti, kMainSPD, kPileupSPD, kPileupTracks,kMainTPC};

//   return kFALSE;
  
// }
//-----------------------------------------------------------------------------------

AliAnalysisTaskESDNuclExFilter::AliAnalysisTaskESDNuclExFilter(Bool_t onlyMuon, Bool_t keepAllEvents, Int_t mcMode, Int_t nsigmaTrk1,Int_t nsigmaTrk2, Int_t partType1,Int_t partType2):
  AliAnalysisTaskSE(),
  fTrackFilter(0x0),
  fEnableMuonAOD(kTRUE),
  fEnableDimuonAOD(kTRUE),
  fOnlyMuon(onlyMuon),
  fKeepAllEvents(keepAllEvents),
  fMCMode(mcMode),
  fnSigmaTrk1(nsigmaTrk1),
  fnSigmaTrk2(nsigmaTrk2),
  fpartType1(partType1),
  fpartType2(partType2),
  murep(0x0),
  fPIDResponse(0)
{
  // Default constructor
}

AliAnalysisTaskESDNuclExFilter::AliAnalysisTaskESDNuclExFilter(const char* name, Bool_t onlyMuon, Bool_t keepAllEvents, Int_t mcMode, Int_t nsigmaTrk1,Int_t nsigmaTrk2, Int_t partType1,Int_t partType2):
  AliAnalysisTaskSE(name),
  fTrackFilter(0x0),
  fEnableMuonAOD(kTRUE),
  fEnableDimuonAOD(kTRUE),
  fOnlyMuon(onlyMuon),
  fKeepAllEvents(keepAllEvents),
  fMCMode(mcMode),
  fnSigmaTrk1(nsigmaTrk1),
  fnSigmaTrk2(nsigmaTrk2),
  fpartType1(partType1),
  fpartType2(partType2),
  murep(0x0),
  fPIDResponse(0)
{
  // Constructor
}

//______________________________________________________________________________
void AliAnalysisTaskESDNuclExFilter::UserCreateOutputObjects()
{
  //-----------------------------------------------
  // Particle Identification Setup (new PID object)
  //-----------------------------------------------
  AliAnalysisManager *man=AliAnalysisManager::GetAnalysisManager();
  //cout<<"===========================================Manager: "<<man<<endl;
  AliInputEventHandler* inputHandler = (AliInputEventHandler*) (man->GetInputEventHandler());
  //cout<<"ih: "<<inputHandler<<endl;
  
  fPIDResponse = inputHandler->GetPIDResponse();

  // Create the output container
  if (fTrackFilter) OutputTree()->GetUserInfo()->Add(fTrackFilter);
  //cout<<"Sotto"<<endl;
}

//______________________________________________________________________________
void AliAnalysisTaskESDNuclExFilter::PrintTask(Option_t *option, Int_t indent) const
{
  // Specify how we are configured
  
  AliAnalysisTaskSE::PrintTask(option,indent);
  
  TString spaces(' ',indent+3);
  
  if ( fOnlyMuon ) 
    {
      cout << spaces.Data() << "Keep only muon information " << endl;        
    }
  else 
    {
      cout << spaces.Data() << "Keep all information from standard AOD" << endl;
    }
  
  if ( fKeepAllEvents ) 
    {
      cout << spaces.Data() << "Keep all events, regardless of number of muons" << endl;    
    }
  else 
    {
      cout << spaces.Data() << "Keep only events with at least one muon" << endl;
    }
  
  if ( fMCMode > 0 ) 
    {
      cout << spaces.Data() << "Assuming work on MC data (i.e. will transmit MC branches)" << endl;
    }
}

//______________________________________________________________________________
void AliAnalysisTaskESDNuclExFilter::AddFilteredAOD(const char* aodfilename, const char* title, Bool_t toMerge)
{
  
  //cout<<"Entro ne ADDFILTETEDAOD"<<endl;

  AliAODHandler *aodH = (AliAODHandler*)((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
  if (!aodH) Fatal("UserCreateOutputObjects", "No AOD handler");

  if(aodH){

    //cout<<"Add Filterd AOD "<<aodH->AddFilteredAOD(aodfilename,title)<<endl;
    AliAODExtension* ext = aodH->AddFilteredAOD(aodfilename,title,toMerge);
    //cout<<"Handle inside add filterAOD: "<<aodH<<endl;
    //cout<<"########### ext: "<<ext<<endl;
    
    if (!ext) return;
    
    //cout<<"ONLY MUON?? "<<fOnlyMuon<<endl;
    
    if ( fOnlyMuon ) 
      {    
	
	//cout<<"Inside fonly muon: "<<endl;
	
	
	if(!murep)delete murep;
	
	murep = new AliAODNuclExReplicator("NuclExReplicator",
					   "remove non interesting tracks",
					   // new AliAnalysisNonMuonTrackCuts,
					   // new AliAnalysisNonPrimaryVertices,
					   fMCMode,fnSigmaTrk1,fnSigmaTrk2,fpartType1,fpartType2);
	
	//cout<<"murep: "<<murep<<endl;
	
	ext->DropUnspecifiedBranches(); // all branches not part of a FilterBranch call (below) will be dropped
	
	// ext->FilterBranch("header",murep);    
	// ext->FilterBranch("tracks",murep);    
	// ext->FilterBranch("vertices",murep);  
	// ext->FilterBranch("dimuons",murep); //per test
	// ext->FilterBranch("AliAODVZERO",murep);
	// ext->FilterBranch("AliAODTZERO",murep);
	
	ext->FilterBranch("header",murep);    
	ext->FilterBranch("vertices",murep);    
	ext->FilterBranch("nuclei",murep);  
	ext->FilterBranch("secvertices",murep); //per test
	ext->FilterBranch("daughtertracks",murep);
	
	//cout<<"add filterd aod"<<endl;
	
	if ( fMCMode > 0 ) 
	  {
	    // MC branches will be copied (if present), as they are, but only
	    // for events with at least one muon. 
	    // For events w/o muon, mcparticles array will be empty and mcheader will be dummy
	    // (e.g. strlen(GetGeneratorName())==0)
	    
	    ext->FilterBranch("mcparticles",murep);
	    ext->FilterBranch("mcHeader",murep);
	  }
      }  
    
  }
  //cout<<"fine add filterd"<<endl;
}

//______________________________________________________________________________
void AliAnalysisTaskESDNuclExFilter::Init()
{

  //cout<<"%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Sono in INIT"<<endl;
  // Initialization
  if(fEnableMuonAOD) 
    AddFilteredAOD("AliAOD.NuclEx.root", "NuclexFilteredEvents",kTRUE);
  //cout<<"Fine INIT"<<endl;
  //  if(fEnableDimuonAOD) AddFilteredAOD("AliAOD.Dimuons.root", "DimuonEvents");    
}


//______________________________________________________________________________
void AliAnalysisTaskESDNuclExFilter::UserExec(Option_t */*option*/)
{
  // Execute analysis for current event					    
  
  //cout<<">>>>>>>>>>>>Inside User exec<<<<<<<<<<<<<<<<<"<<endl;

  Long64_t ientry = Entry();
  if(fDebug)printf("Muon Filter: Analysing event # %5d\n", (Int_t) ientry);
  //cout<<"--------------->Enter the user exec<------------------------------"<<endl;
  
  //Check the PIDresponse
  if(!fPIDResponse) {
    AliError("Cannot get pid response");
    return;
  }

  //***************************************************

  ConvertESDtoAOD();

  //*************************************************
  
  //cout<<"-------------------------------------------------------------------FINE ESD TO AOD CONVERTER!!!"<<endl;
  
  // if(!murep)
  //   delete murep;
  
}





//---- Funziona


void AliAnalysisTaskESDNuclExFilter::ConvertESDtoAOD() 

{
  //cout<<"========================> CONVERT ESD TO AOD <============================="<<endl;

  
  AliAODEvent *lAODevent=(AliAODEvent*)InputEvent();

  // Read primary vertex from AOD event 
  // AliAODVertex *primary = *(AODEvent()->GetPrimaryVertex());

  AliAODVertex *primary = lAODevent->GetPrimaryVertex();
  if (fDebug && primary) primary->Print();
  //cout<<"Primary vtx x: "<<primary->GetX()<<" "<<primary->GetY()<<" "<<primary->GetZ()<<endl;
  
    
  AliAODHandler* handler = dynamic_cast<AliAODHandler*>(AliAnalysisManager::GetAnalysisManager()->GetOutputEventHandler());
  //AliAODHandler* handler = dynamic_cast<AliAODHandler*>(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());

  //cout<<"Mag field Filer: "<<lAODevent->GetMagneticField()<<endl;

  // lAODevent->Print();

  //cout<<"handler inside convert "<<handler<<endl;
  if ( handler ){
    
    //cout<<"Hadler in the loop "<<handler<<endl;

    //cout<<"Inside if handler loop"<<endl;

    AliAODExtension *extNuclEx = handler->GetFilteredAOD("AliAOD.NuclEx.root");
    //  AliAODExtension *extNuclEx = handler->GetFilteredAOD("../1/pass2/AliAOD.root");
    
    //cout<<"extmuon? "<<extNuclEx<<endl;

    if ( extNuclEx ) {				
     //   extNuclEx->Init("");
      
      // extNuclEx->GetAOD()->GetHeader()->ResetEventplanePointer();
      // extNuclEx->GetTree()->Fill(); // fill header for all events without tracks

      extNuclEx->SetEvent(lAODevent);
      extNuclEx->SelectEvent();
      // extNuclEx->IsFilteredAOD();
      // extNuclEx->Print();
      extNuclEx->FinishEvent();
     
     //cout<<"extMuons? "<<extMuons<<endl;

   }
  }


}
//------------------------------------------------
void AliAnalysisTaskESDNuclExFilter::Terminate(Option_t */*option*/)
{
  // Terminate analysis
  //
  //  delete murep;
  
  if (fDebug > 1) printf("AnalysisESDfilter: Terminate() \n");
}
 AliAnalysisTaskESDNuclExFilter.cxx:1
 AliAnalysisTaskESDNuclExFilter.cxx:2
 AliAnalysisTaskESDNuclExFilter.cxx:3
 AliAnalysisTaskESDNuclExFilter.cxx:4
 AliAnalysisTaskESDNuclExFilter.cxx:5
 AliAnalysisTaskESDNuclExFilter.cxx:6
 AliAnalysisTaskESDNuclExFilter.cxx:7
 AliAnalysisTaskESDNuclExFilter.cxx:8
 AliAnalysisTaskESDNuclExFilter.cxx:9
 AliAnalysisTaskESDNuclExFilter.cxx:10
 AliAnalysisTaskESDNuclExFilter.cxx:11
 AliAnalysisTaskESDNuclExFilter.cxx:12
 AliAnalysisTaskESDNuclExFilter.cxx:13
 AliAnalysisTaskESDNuclExFilter.cxx:14
 AliAnalysisTaskESDNuclExFilter.cxx:15
 AliAnalysisTaskESDNuclExFilter.cxx:16
 AliAnalysisTaskESDNuclExFilter.cxx:17
 AliAnalysisTaskESDNuclExFilter.cxx:18
 AliAnalysisTaskESDNuclExFilter.cxx:19
 AliAnalysisTaskESDNuclExFilter.cxx:20
 AliAnalysisTaskESDNuclExFilter.cxx:21
 AliAnalysisTaskESDNuclExFilter.cxx:22
 AliAnalysisTaskESDNuclExFilter.cxx:23
 AliAnalysisTaskESDNuclExFilter.cxx:24
 AliAnalysisTaskESDNuclExFilter.cxx:25
 AliAnalysisTaskESDNuclExFilter.cxx:26
 AliAnalysisTaskESDNuclExFilter.cxx:27
 AliAnalysisTaskESDNuclExFilter.cxx:28
 AliAnalysisTaskESDNuclExFilter.cxx:29
 AliAnalysisTaskESDNuclExFilter.cxx:30
 AliAnalysisTaskESDNuclExFilter.cxx:31
 AliAnalysisTaskESDNuclExFilter.cxx:32
 AliAnalysisTaskESDNuclExFilter.cxx:33
 AliAnalysisTaskESDNuclExFilter.cxx:34
 AliAnalysisTaskESDNuclExFilter.cxx:35
 AliAnalysisTaskESDNuclExFilter.cxx:36
 AliAnalysisTaskESDNuclExFilter.cxx:37
 AliAnalysisTaskESDNuclExFilter.cxx:38
 AliAnalysisTaskESDNuclExFilter.cxx:39
 AliAnalysisTaskESDNuclExFilter.cxx:40
 AliAnalysisTaskESDNuclExFilter.cxx:41
 AliAnalysisTaskESDNuclExFilter.cxx:42
 AliAnalysisTaskESDNuclExFilter.cxx:43
 AliAnalysisTaskESDNuclExFilter.cxx:44
 AliAnalysisTaskESDNuclExFilter.cxx:45
 AliAnalysisTaskESDNuclExFilter.cxx:46
 AliAnalysisTaskESDNuclExFilter.cxx:47
 AliAnalysisTaskESDNuclExFilter.cxx:48
 AliAnalysisTaskESDNuclExFilter.cxx:49
 AliAnalysisTaskESDNuclExFilter.cxx:50
 AliAnalysisTaskESDNuclExFilter.cxx:51
 AliAnalysisTaskESDNuclExFilter.cxx:52
 AliAnalysisTaskESDNuclExFilter.cxx:53
 AliAnalysisTaskESDNuclExFilter.cxx:54
 AliAnalysisTaskESDNuclExFilter.cxx:55
 AliAnalysisTaskESDNuclExFilter.cxx:56
 AliAnalysisTaskESDNuclExFilter.cxx:57
 AliAnalysisTaskESDNuclExFilter.cxx:58
 AliAnalysisTaskESDNuclExFilter.cxx:59
 AliAnalysisTaskESDNuclExFilter.cxx:60
 AliAnalysisTaskESDNuclExFilter.cxx:61
 AliAnalysisTaskESDNuclExFilter.cxx:62
 AliAnalysisTaskESDNuclExFilter.cxx:63
 AliAnalysisTaskESDNuclExFilter.cxx:64
 AliAnalysisTaskESDNuclExFilter.cxx:65
 AliAnalysisTaskESDNuclExFilter.cxx:66
 AliAnalysisTaskESDNuclExFilter.cxx:67
 AliAnalysisTaskESDNuclExFilter.cxx:68
 AliAnalysisTaskESDNuclExFilter.cxx:69
 AliAnalysisTaskESDNuclExFilter.cxx:70
 AliAnalysisTaskESDNuclExFilter.cxx:71
 AliAnalysisTaskESDNuclExFilter.cxx:72
 AliAnalysisTaskESDNuclExFilter.cxx:73
 AliAnalysisTaskESDNuclExFilter.cxx:74
 AliAnalysisTaskESDNuclExFilter.cxx:75
 AliAnalysisTaskESDNuclExFilter.cxx:76
 AliAnalysisTaskESDNuclExFilter.cxx:77
 AliAnalysisTaskESDNuclExFilter.cxx:78
 AliAnalysisTaskESDNuclExFilter.cxx:79
 AliAnalysisTaskESDNuclExFilter.cxx:80
 AliAnalysisTaskESDNuclExFilter.cxx:81
 AliAnalysisTaskESDNuclExFilter.cxx:82
 AliAnalysisTaskESDNuclExFilter.cxx:83
 AliAnalysisTaskESDNuclExFilter.cxx:84
 AliAnalysisTaskESDNuclExFilter.cxx:85
 AliAnalysisTaskESDNuclExFilter.cxx:86
 AliAnalysisTaskESDNuclExFilter.cxx:87
 AliAnalysisTaskESDNuclExFilter.cxx:88
 AliAnalysisTaskESDNuclExFilter.cxx:89
 AliAnalysisTaskESDNuclExFilter.cxx:90
 AliAnalysisTaskESDNuclExFilter.cxx:91
 AliAnalysisTaskESDNuclExFilter.cxx:92
 AliAnalysisTaskESDNuclExFilter.cxx:93
 AliAnalysisTaskESDNuclExFilter.cxx:94
 AliAnalysisTaskESDNuclExFilter.cxx:95
 AliAnalysisTaskESDNuclExFilter.cxx:96
 AliAnalysisTaskESDNuclExFilter.cxx:97
 AliAnalysisTaskESDNuclExFilter.cxx:98
 AliAnalysisTaskESDNuclExFilter.cxx:99
 AliAnalysisTaskESDNuclExFilter.cxx:100
 AliAnalysisTaskESDNuclExFilter.cxx:101
 AliAnalysisTaskESDNuclExFilter.cxx:102
 AliAnalysisTaskESDNuclExFilter.cxx:103
 AliAnalysisTaskESDNuclExFilter.cxx:104
 AliAnalysisTaskESDNuclExFilter.cxx:105
 AliAnalysisTaskESDNuclExFilter.cxx:106
 AliAnalysisTaskESDNuclExFilter.cxx:107
 AliAnalysisTaskESDNuclExFilter.cxx:108
 AliAnalysisTaskESDNuclExFilter.cxx:109
 AliAnalysisTaskESDNuclExFilter.cxx:110
 AliAnalysisTaskESDNuclExFilter.cxx:111
 AliAnalysisTaskESDNuclExFilter.cxx:112
 AliAnalysisTaskESDNuclExFilter.cxx:113
 AliAnalysisTaskESDNuclExFilter.cxx:114
 AliAnalysisTaskESDNuclExFilter.cxx:115
 AliAnalysisTaskESDNuclExFilter.cxx:116
 AliAnalysisTaskESDNuclExFilter.cxx:117
 AliAnalysisTaskESDNuclExFilter.cxx:118
 AliAnalysisTaskESDNuclExFilter.cxx:119
 AliAnalysisTaskESDNuclExFilter.cxx:120
 AliAnalysisTaskESDNuclExFilter.cxx:121
 AliAnalysisTaskESDNuclExFilter.cxx:122
 AliAnalysisTaskESDNuclExFilter.cxx:123
 AliAnalysisTaskESDNuclExFilter.cxx:124
 AliAnalysisTaskESDNuclExFilter.cxx:125
 AliAnalysisTaskESDNuclExFilter.cxx:126
 AliAnalysisTaskESDNuclExFilter.cxx:127
 AliAnalysisTaskESDNuclExFilter.cxx:128
 AliAnalysisTaskESDNuclExFilter.cxx:129
 AliAnalysisTaskESDNuclExFilter.cxx:130
 AliAnalysisTaskESDNuclExFilter.cxx:131
 AliAnalysisTaskESDNuclExFilter.cxx:132
 AliAnalysisTaskESDNuclExFilter.cxx:133
 AliAnalysisTaskESDNuclExFilter.cxx:134
 AliAnalysisTaskESDNuclExFilter.cxx:135
 AliAnalysisTaskESDNuclExFilter.cxx:136
 AliAnalysisTaskESDNuclExFilter.cxx:137
 AliAnalysisTaskESDNuclExFilter.cxx:138
 AliAnalysisTaskESDNuclExFilter.cxx:139
 AliAnalysisTaskESDNuclExFilter.cxx:140
 AliAnalysisTaskESDNuclExFilter.cxx:141
 AliAnalysisTaskESDNuclExFilter.cxx:142
 AliAnalysisTaskESDNuclExFilter.cxx:143
 AliAnalysisTaskESDNuclExFilter.cxx:144
 AliAnalysisTaskESDNuclExFilter.cxx:145
 AliAnalysisTaskESDNuclExFilter.cxx:146
 AliAnalysisTaskESDNuclExFilter.cxx:147
 AliAnalysisTaskESDNuclExFilter.cxx:148
 AliAnalysisTaskESDNuclExFilter.cxx:149
 AliAnalysisTaskESDNuclExFilter.cxx:150
 AliAnalysisTaskESDNuclExFilter.cxx:151
 AliAnalysisTaskESDNuclExFilter.cxx:152
 AliAnalysisTaskESDNuclExFilter.cxx:153
 AliAnalysisTaskESDNuclExFilter.cxx:154
 AliAnalysisTaskESDNuclExFilter.cxx:155
 AliAnalysisTaskESDNuclExFilter.cxx:156
 AliAnalysisTaskESDNuclExFilter.cxx:157
 AliAnalysisTaskESDNuclExFilter.cxx:158
 AliAnalysisTaskESDNuclExFilter.cxx:159
 AliAnalysisTaskESDNuclExFilter.cxx:160
 AliAnalysisTaskESDNuclExFilter.cxx:161
 AliAnalysisTaskESDNuclExFilter.cxx:162
 AliAnalysisTaskESDNuclExFilter.cxx:163
 AliAnalysisTaskESDNuclExFilter.cxx:164
 AliAnalysisTaskESDNuclExFilter.cxx:165
 AliAnalysisTaskESDNuclExFilter.cxx:166
 AliAnalysisTaskESDNuclExFilter.cxx:167
 AliAnalysisTaskESDNuclExFilter.cxx:168
 AliAnalysisTaskESDNuclExFilter.cxx:169
 AliAnalysisTaskESDNuclExFilter.cxx:170
 AliAnalysisTaskESDNuclExFilter.cxx:171
 AliAnalysisTaskESDNuclExFilter.cxx:172
 AliAnalysisTaskESDNuclExFilter.cxx:173
 AliAnalysisTaskESDNuclExFilter.cxx:174
 AliAnalysisTaskESDNuclExFilter.cxx:175
 AliAnalysisTaskESDNuclExFilter.cxx:176
 AliAnalysisTaskESDNuclExFilter.cxx:177
 AliAnalysisTaskESDNuclExFilter.cxx:178
 AliAnalysisTaskESDNuclExFilter.cxx:179
 AliAnalysisTaskESDNuclExFilter.cxx:180
 AliAnalysisTaskESDNuclExFilter.cxx:181
 AliAnalysisTaskESDNuclExFilter.cxx:182
 AliAnalysisTaskESDNuclExFilter.cxx:183
 AliAnalysisTaskESDNuclExFilter.cxx:184
 AliAnalysisTaskESDNuclExFilter.cxx:185
 AliAnalysisTaskESDNuclExFilter.cxx:186
 AliAnalysisTaskESDNuclExFilter.cxx:187
 AliAnalysisTaskESDNuclExFilter.cxx:188
 AliAnalysisTaskESDNuclExFilter.cxx:189
 AliAnalysisTaskESDNuclExFilter.cxx:190
 AliAnalysisTaskESDNuclExFilter.cxx:191
 AliAnalysisTaskESDNuclExFilter.cxx:192
 AliAnalysisTaskESDNuclExFilter.cxx:193
 AliAnalysisTaskESDNuclExFilter.cxx:194
 AliAnalysisTaskESDNuclExFilter.cxx:195
 AliAnalysisTaskESDNuclExFilter.cxx:196
 AliAnalysisTaskESDNuclExFilter.cxx:197
 AliAnalysisTaskESDNuclExFilter.cxx:198
 AliAnalysisTaskESDNuclExFilter.cxx:199
 AliAnalysisTaskESDNuclExFilter.cxx:200
 AliAnalysisTaskESDNuclExFilter.cxx:201
 AliAnalysisTaskESDNuclExFilter.cxx:202
 AliAnalysisTaskESDNuclExFilter.cxx:203
 AliAnalysisTaskESDNuclExFilter.cxx:204
 AliAnalysisTaskESDNuclExFilter.cxx:205
 AliAnalysisTaskESDNuclExFilter.cxx:206
 AliAnalysisTaskESDNuclExFilter.cxx:207
 AliAnalysisTaskESDNuclExFilter.cxx:208
 AliAnalysisTaskESDNuclExFilter.cxx:209
 AliAnalysisTaskESDNuclExFilter.cxx:210
 AliAnalysisTaskESDNuclExFilter.cxx:211
 AliAnalysisTaskESDNuclExFilter.cxx:212
 AliAnalysisTaskESDNuclExFilter.cxx:213
 AliAnalysisTaskESDNuclExFilter.cxx:214
 AliAnalysisTaskESDNuclExFilter.cxx:215
 AliAnalysisTaskESDNuclExFilter.cxx:216
 AliAnalysisTaskESDNuclExFilter.cxx:217
 AliAnalysisTaskESDNuclExFilter.cxx:218
 AliAnalysisTaskESDNuclExFilter.cxx:219
 AliAnalysisTaskESDNuclExFilter.cxx:220
 AliAnalysisTaskESDNuclExFilter.cxx:221
 AliAnalysisTaskESDNuclExFilter.cxx:222
 AliAnalysisTaskESDNuclExFilter.cxx:223
 AliAnalysisTaskESDNuclExFilter.cxx:224
 AliAnalysisTaskESDNuclExFilter.cxx:225
 AliAnalysisTaskESDNuclExFilter.cxx:226
 AliAnalysisTaskESDNuclExFilter.cxx:227
 AliAnalysisTaskESDNuclExFilter.cxx:228
 AliAnalysisTaskESDNuclExFilter.cxx:229
 AliAnalysisTaskESDNuclExFilter.cxx:230
 AliAnalysisTaskESDNuclExFilter.cxx:231
 AliAnalysisTaskESDNuclExFilter.cxx:232
 AliAnalysisTaskESDNuclExFilter.cxx:233
 AliAnalysisTaskESDNuclExFilter.cxx:234
 AliAnalysisTaskESDNuclExFilter.cxx:235
 AliAnalysisTaskESDNuclExFilter.cxx:236
 AliAnalysisTaskESDNuclExFilter.cxx:237
 AliAnalysisTaskESDNuclExFilter.cxx:238
 AliAnalysisTaskESDNuclExFilter.cxx:239
 AliAnalysisTaskESDNuclExFilter.cxx:240
 AliAnalysisTaskESDNuclExFilter.cxx:241
 AliAnalysisTaskESDNuclExFilter.cxx:242
 AliAnalysisTaskESDNuclExFilter.cxx:243
 AliAnalysisTaskESDNuclExFilter.cxx:244
 AliAnalysisTaskESDNuclExFilter.cxx:245
 AliAnalysisTaskESDNuclExFilter.cxx:246
 AliAnalysisTaskESDNuclExFilter.cxx:247
 AliAnalysisTaskESDNuclExFilter.cxx:248
 AliAnalysisTaskESDNuclExFilter.cxx:249
 AliAnalysisTaskESDNuclExFilter.cxx:250
 AliAnalysisTaskESDNuclExFilter.cxx:251
 AliAnalysisTaskESDNuclExFilter.cxx:252
 AliAnalysisTaskESDNuclExFilter.cxx:253
 AliAnalysisTaskESDNuclExFilter.cxx:254
 AliAnalysisTaskESDNuclExFilter.cxx:255
 AliAnalysisTaskESDNuclExFilter.cxx:256
 AliAnalysisTaskESDNuclExFilter.cxx:257
 AliAnalysisTaskESDNuclExFilter.cxx:258
 AliAnalysisTaskESDNuclExFilter.cxx:259
 AliAnalysisTaskESDNuclExFilter.cxx:260
 AliAnalysisTaskESDNuclExFilter.cxx:261
 AliAnalysisTaskESDNuclExFilter.cxx:262
 AliAnalysisTaskESDNuclExFilter.cxx:263
 AliAnalysisTaskESDNuclExFilter.cxx:264
 AliAnalysisTaskESDNuclExFilter.cxx:265
 AliAnalysisTaskESDNuclExFilter.cxx:266
 AliAnalysisTaskESDNuclExFilter.cxx:267
 AliAnalysisTaskESDNuclExFilter.cxx:268
 AliAnalysisTaskESDNuclExFilter.cxx:269
 AliAnalysisTaskESDNuclExFilter.cxx:270
 AliAnalysisTaskESDNuclExFilter.cxx:271
 AliAnalysisTaskESDNuclExFilter.cxx:272
 AliAnalysisTaskESDNuclExFilter.cxx:273
 AliAnalysisTaskESDNuclExFilter.cxx:274
 AliAnalysisTaskESDNuclExFilter.cxx:275
 AliAnalysisTaskESDNuclExFilter.cxx:276
 AliAnalysisTaskESDNuclExFilter.cxx:277
 AliAnalysisTaskESDNuclExFilter.cxx:278
 AliAnalysisTaskESDNuclExFilter.cxx:279
 AliAnalysisTaskESDNuclExFilter.cxx:280
 AliAnalysisTaskESDNuclExFilter.cxx:281
 AliAnalysisTaskESDNuclExFilter.cxx:282
 AliAnalysisTaskESDNuclExFilter.cxx:283
 AliAnalysisTaskESDNuclExFilter.cxx:284
 AliAnalysisTaskESDNuclExFilter.cxx:285
 AliAnalysisTaskESDNuclExFilter.cxx:286
 AliAnalysisTaskESDNuclExFilter.cxx:287
 AliAnalysisTaskESDNuclExFilter.cxx:288
 AliAnalysisTaskESDNuclExFilter.cxx:289
 AliAnalysisTaskESDNuclExFilter.cxx:290
 AliAnalysisTaskESDNuclExFilter.cxx:291
 AliAnalysisTaskESDNuclExFilter.cxx:292
 AliAnalysisTaskESDNuclExFilter.cxx:293
 AliAnalysisTaskESDNuclExFilter.cxx:294
 AliAnalysisTaskESDNuclExFilter.cxx:295
 AliAnalysisTaskESDNuclExFilter.cxx:296
 AliAnalysisTaskESDNuclExFilter.cxx:297
 AliAnalysisTaskESDNuclExFilter.cxx:298
 AliAnalysisTaskESDNuclExFilter.cxx:299
 AliAnalysisTaskESDNuclExFilter.cxx:300
 AliAnalysisTaskESDNuclExFilter.cxx:301
 AliAnalysisTaskESDNuclExFilter.cxx:302
 AliAnalysisTaskESDNuclExFilter.cxx:303
 AliAnalysisTaskESDNuclExFilter.cxx:304
 AliAnalysisTaskESDNuclExFilter.cxx:305
 AliAnalysisTaskESDNuclExFilter.cxx:306
 AliAnalysisTaskESDNuclExFilter.cxx:307
 AliAnalysisTaskESDNuclExFilter.cxx:308
 AliAnalysisTaskESDNuclExFilter.cxx:309
 AliAnalysisTaskESDNuclExFilter.cxx:310
 AliAnalysisTaskESDNuclExFilter.cxx:311
 AliAnalysisTaskESDNuclExFilter.cxx:312
 AliAnalysisTaskESDNuclExFilter.cxx:313
 AliAnalysisTaskESDNuclExFilter.cxx:314
 AliAnalysisTaskESDNuclExFilter.cxx:315
 AliAnalysisTaskESDNuclExFilter.cxx:316
 AliAnalysisTaskESDNuclExFilter.cxx:317
 AliAnalysisTaskESDNuclExFilter.cxx:318
 AliAnalysisTaskESDNuclExFilter.cxx:319
 AliAnalysisTaskESDNuclExFilter.cxx:320
 AliAnalysisTaskESDNuclExFilter.cxx:321
 AliAnalysisTaskESDNuclExFilter.cxx:322
 AliAnalysisTaskESDNuclExFilter.cxx:323
 AliAnalysisTaskESDNuclExFilter.cxx:324
 AliAnalysisTaskESDNuclExFilter.cxx:325
 AliAnalysisTaskESDNuclExFilter.cxx:326
 AliAnalysisTaskESDNuclExFilter.cxx:327
 AliAnalysisTaskESDNuclExFilter.cxx:328
 AliAnalysisTaskESDNuclExFilter.cxx:329
 AliAnalysisTaskESDNuclExFilter.cxx:330
 AliAnalysisTaskESDNuclExFilter.cxx:331
 AliAnalysisTaskESDNuclExFilter.cxx:332
 AliAnalysisTaskESDNuclExFilter.cxx:333
 AliAnalysisTaskESDNuclExFilter.cxx:334
 AliAnalysisTaskESDNuclExFilter.cxx:335
 AliAnalysisTaskESDNuclExFilter.cxx:336
 AliAnalysisTaskESDNuclExFilter.cxx:337
 AliAnalysisTaskESDNuclExFilter.cxx:338
 AliAnalysisTaskESDNuclExFilter.cxx:339
 AliAnalysisTaskESDNuclExFilter.cxx:340
 AliAnalysisTaskESDNuclExFilter.cxx:341
 AliAnalysisTaskESDNuclExFilter.cxx:342
 AliAnalysisTaskESDNuclExFilter.cxx:343
 AliAnalysisTaskESDNuclExFilter.cxx:344
 AliAnalysisTaskESDNuclExFilter.cxx:345
 AliAnalysisTaskESDNuclExFilter.cxx:346
 AliAnalysisTaskESDNuclExFilter.cxx:347
 AliAnalysisTaskESDNuclExFilter.cxx:348
 AliAnalysisTaskESDNuclExFilter.cxx:349
 AliAnalysisTaskESDNuclExFilter.cxx:350
 AliAnalysisTaskESDNuclExFilter.cxx:351
 AliAnalysisTaskESDNuclExFilter.cxx:352
 AliAnalysisTaskESDNuclExFilter.cxx:353
 AliAnalysisTaskESDNuclExFilter.cxx:354
 AliAnalysisTaskESDNuclExFilter.cxx:355
 AliAnalysisTaskESDNuclExFilter.cxx:356
 AliAnalysisTaskESDNuclExFilter.cxx:357
 AliAnalysisTaskESDNuclExFilter.cxx:358
 AliAnalysisTaskESDNuclExFilter.cxx:359
 AliAnalysisTaskESDNuclExFilter.cxx:360
 AliAnalysisTaskESDNuclExFilter.cxx:361
 AliAnalysisTaskESDNuclExFilter.cxx:362
 AliAnalysisTaskESDNuclExFilter.cxx:363
 AliAnalysisTaskESDNuclExFilter.cxx:364
 AliAnalysisTaskESDNuclExFilter.cxx:365
 AliAnalysisTaskESDNuclExFilter.cxx:366
 AliAnalysisTaskESDNuclExFilter.cxx:367
 AliAnalysisTaskESDNuclExFilter.cxx:368
 AliAnalysisTaskESDNuclExFilter.cxx:369
 AliAnalysisTaskESDNuclExFilter.cxx:370
 AliAnalysisTaskESDNuclExFilter.cxx:371
 AliAnalysisTaskESDNuclExFilter.cxx:372
 AliAnalysisTaskESDNuclExFilter.cxx:373
 AliAnalysisTaskESDNuclExFilter.cxx:374
 AliAnalysisTaskESDNuclExFilter.cxx:375
 AliAnalysisTaskESDNuclExFilter.cxx:376
 AliAnalysisTaskESDNuclExFilter.cxx:377
 AliAnalysisTaskESDNuclExFilter.cxx:378
 AliAnalysisTaskESDNuclExFilter.cxx:379
 AliAnalysisTaskESDNuclExFilter.cxx:380
 AliAnalysisTaskESDNuclExFilter.cxx:381
 AliAnalysisTaskESDNuclExFilter.cxx:382
 AliAnalysisTaskESDNuclExFilter.cxx:383
 AliAnalysisTaskESDNuclExFilter.cxx:384
 AliAnalysisTaskESDNuclExFilter.cxx:385
 AliAnalysisTaskESDNuclExFilter.cxx:386
 AliAnalysisTaskESDNuclExFilter.cxx:387
 AliAnalysisTaskESDNuclExFilter.cxx:388
 AliAnalysisTaskESDNuclExFilter.cxx:389
 AliAnalysisTaskESDNuclExFilter.cxx:390
 AliAnalysisTaskESDNuclExFilter.cxx:391
 AliAnalysisTaskESDNuclExFilter.cxx:392
 AliAnalysisTaskESDNuclExFilter.cxx:393
 AliAnalysisTaskESDNuclExFilter.cxx:394