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

//-----------------------------------------------------------------
//         AliAnalysisTaskSpectraBoth class
//-----------------------------------------------------------------

#include "TChain.h"
#include "TTree.h"
#include "TLegend.h"
#include "TH1F.h"
#include "TH2F.h"
#include "TH3F.h"
#include "TCanvas.h"
#include "AliAnalysisTask.h"
#include "AliAnalysisManager.h"
#include "AliAODTrack.h"
#include "AliAODMCParticle.h"
#include "AliVParticle.h"
#include "AliAODEvent.h"
#include "AliAODInputHandler.h"
#include "AliAnalysisTaskSpectraBoth.h"
#include "AliAnalysisTaskESDfilter.h"
#include "AliAnalysisDataContainer.h"
#include "AliSpectraBothHistoManager.h"
#include "AliSpectraBothTrackCuts.h"
#include "AliSpectraBothEventCuts.h"
#include "AliCentrality.h"
#include "TProof.h"
#include "AliPID.h"
#include "AliVEvent.h"
#include "AliESDEvent.h"
#include "AliPIDResponse.h"
#include "AliStack.h"
#include "AliSpectraBothPID.h"
#include "AliGenEventHeader.h"	
#include <TMCProcess.h>

#include <iostream>




using namespace AliSpectraNameSpaceBoth;
using namespace std;

ClassImp(AliAnalysisTaskSpectraBoth)

//________________________________________________________________________
AliAnalysisTaskSpectraBoth::AliAnalysisTaskSpectraBoth(const char *name) : AliAnalysisTaskSE(name), fAOD(0), fHistMan(0), fTrackCuts(0), fEventCuts(0),  fPID(0), fIsMC(0), fNRebin(0),fUseMinSigma(0),fCuts(0),fdotheMCLoopAfterEventCuts(0),fmakePIDQAhisto(1),fMotherWDPDGcode(-1)

{
  // Default constructor
  
  DefineInput(0, TChain::Class());
  DefineOutput(1, AliSpectraBothHistoManager::Class());
  DefineOutput(2, AliSpectraBothEventCuts::Class());
  DefineOutput(3, AliSpectraBothTrackCuts::Class());
  DefineOutput(4, AliSpectraBothPID::Class());
  fNRebin=0;
  
}
//________________________________________________________________________
//________________________________________________________________________
void AliAnalysisTaskSpectraBoth::UserCreateOutputObjects()
{
  // create output objects
  fHistMan = new AliSpectraBothHistoManager("SpectraHistos",fNRebin,fmakePIDQAhisto);

  if (!fTrackCuts) AliFatal("Track Cuts should be set in the steering macro");
  if (!fEventCuts) AliFatal("Event Cuts should be set in the steering macro");
  if (!fPID)       AliFatal("PID object should be set in the steering macro");
  fTrackCuts->SetAliESDtrackCuts(fCuts);
  fEventCuts->InitHisto();
  fTrackCuts->InitHisto();

  PostData(1, fHistMan  );
  PostData(2, fEventCuts);
  PostData(3, fTrackCuts);
  PostData(4, fPID      );
}
//________________________________________________________________________
void AliAnalysisTaskSpectraBoth::UserExec(Option_t *)
{
  // main event loop
	Int_t ifAODEvent=AliSpectraBothTrackCuts::kotherobject;
	fAOD = dynamic_cast<AliVEvent*>(InputEvent());
  //	AliESDEvent* esdevent=0x0;
 // 	AliAODEvent* aodevent=0x0;
   
   	TString nameoftrack(fAOD->ClassName());  
    	if(!nameoftrack.CompareTo("AliESDEvent"))
    	{
		ifAODEvent=AliSpectraBothTrackCuts::kESDobject;
		//esdevent=dynamic_cast<AliESDEvent*>(fAOD);
	}
	else if(!nameoftrack.CompareTo("AliAODEvent"))
	{
		ifAODEvent=AliSpectraBothTrackCuts::kAODobject;
		//aodevent=dynamic_cast<AliAODEvent*>(fAOD);
	}
	else
		AliFatal("Not processing AODs or ESDS") ;
	if(fIsMC)
  	{		
  		if(!fEventCuts->CheckMCProcessType(MCEvent()))
			return ;		
  	}


	if(fdotheMCLoopAfterEventCuts)
  		if(!fEventCuts->IsSelected(fAOD,fTrackCuts,fIsMC,-100,fHistMan->GetEventStatHist()))
			return;//event selection
  	TClonesArray *arrayMC = 0;
  	Int_t npar=0;
  	AliStack* stack=0x0;
	 Double_t mcZ=-100;

 	if (fIsMC)
  	{
		TArrayF mcVertex(3);
  		mcVertex[0]=9999.; mcVertex[1]=9999.; mcVertex[2]=9999.;
		AliMCEvent* mcEvent=(AliMCEvent*)MCEvent();
		if (!mcEvent) 
		{
			AliFatal("Error: MC particles branch not found!\n");
		}
		AliHeader* header = mcEvent->Header();
    		if (!header) 
		{
      			AliDebug(AliLog::kError, "Header not available");
      			return;
    		}
	
		AliGenEventHeader* genHeader = header->GenEventHeader();
    		if(genHeader)
		{
			genHeader->PrimaryVertex(mcVertex);
  			mcZ=mcVertex[2];
		}
		  if(ifAODEvent==AliSpectraBothTrackCuts::kAODobject)
		  {
			  arrayMC = (TClonesArray*) fAOD->GetList()->FindObject(AliAODMCParticle::StdBranchName());
			  if (!arrayMC) 
			  {
					AliFatal("Error: MC particles branch not found!\n");
			  }
			  Int_t nMC = arrayMC->GetEntries();
			  for (Int_t iMC = 0; iMC < nMC; iMC++)
			  {
				  AliAODMCParticle *partMC = (AliAODMCParticle*) arrayMC->At(iMC);
				  if(!partMC->Charge()) continue;//Skip neutrals
				  //if(partMC->Eta() > fTrackCuts->GetEtaMin() && partMC->Eta() < fTrackCuts->GetEtaMax()){//charged hadron are filled inside the eta acceptance
				  //Printf("%f     %f-%f",partMC->Eta(),fTrackCuts->GetEtaMin(),fTrackCuts->GetEtaMax());
				  if(partMC->Eta() > fTrackCuts->GetEtaMin() && partMC->Eta() < fTrackCuts->GetEtaMax())
						fHistMan->GetPtHistogram(kHistPtGen)->Fill(partMC->Pt(),partMC->IsPhysicalPrimary());					 				 
				  //rapidity cut
				  if(partMC->Y() > fTrackCuts->GetYMax()|| partMC->Y() < fTrackCuts->GetYMin() ) 
					continue;	
				  if(partMC->IsPhysicalPrimary())
				 	 npar++;    
				  // check for true PID + and fill P_t histos 
				  Int_t charge = partMC->Charge() > 0 ? kChPos : kChNeg ;
				  Int_t id = fPID->GetParticleSpecie(partMC);
				  if(id != kSpUndefined) 
				  {
					fHistMan->GetHistogram2D(kHistPtGenTruePrimary,id,charge)->Fill(partMC->Pt(),partMC->IsPhysicalPrimary());
				  }
			  }
		  }
		  if(ifAODEvent==AliSpectraBothTrackCuts::kESDobject)
		  {
			stack = mcEvent->Stack();
			Int_t nMC = stack->GetNtrack();
			for (Int_t iMC = 0; iMC < nMC; iMC++)
			{
				 
				TParticle *partMC = stack->Particle(iMC);
				
				if(!partMC)	
					continue;	
	
				if(!partMC->GetPDG(0))
					continue;
				if(TMath::Abs(partMC->GetPDG(0)->Charge()/3.0)<0.01) 
					continue;//Skip neutrals
			 	if(partMC->Eta() > fTrackCuts->GetEtaMin() && partMC->Eta() < fTrackCuts->GetEtaMax())
					fHistMan->GetPtHistogram(kHistPtGen)->Fill(partMC->Pt(),stack->IsPhysicalPrimary(iMC));
				if(partMC->Y()   > fTrackCuts->GetYMax() ||partMC->Y()   < fTrackCuts->GetYMin()  ) 
					continue;
				if(stack->IsPhysicalPrimary(iMC))
					 npar++;    
				  // check for true PID + and fill P_t histos 
				Int_t charge = partMC->GetPDG(0)->Charge()/3.0 > 0 ? kChPos : kChNeg ;
				Int_t id = fPID->GetParticleSpecie(partMC);
				if(id != kSpUndefined) 
				{
					fHistMan->GetHistogram2D(kHistPtGenTruePrimary,id,charge)->Fill(partMC->Pt(),stack->IsPhysicalPrimary(iMC));
				}
			  }
		  }
	}
	if(!fdotheMCLoopAfterEventCuts)
  		if(!fEventCuts->IsSelected(fAOD,fTrackCuts,fIsMC,mcZ,fHistMan->GetEventStatHist()))
			return;//event selection
  	//main loop on tracks
	Int_t ntracks=0;
  	//cout<<fAOD->GetNumberOfTracks()<<endl;
  	for (Int_t iTracks = 0; iTracks < fAOD->GetNumberOfTracks(); iTracks++) 
	{
		AliVTrack* track = dynamic_cast<AliVTrack*>(fAOD->GetTrack(iTracks));
      		AliAODTrack* aodtrack=0;
  		AliESDtrack* esdtrack=0;
  		Float_t dca=-999.;
		Float_t dcaz=-999.;
		Short_t ncls=-1; 
		Float_t chi2perndf=-1.0;
  		if(ifAODEvent==AliSpectraBothTrackCuts::kESDobject)
  		{
			esdtrack=dynamic_cast<AliESDtrack*>(track);
			if(!esdtrack)
				continue;
			esdtrack->GetImpactParameters(dca,dcaz);
			ncls=esdtrack->GetTPCNcls();
			if ( ncls > 5) 
       				chi2perndf=(esdtrack->GetTPCchi2()/Float_t(ncls - 5));
  
			else 
       				chi2perndf=-1;
    			
  		}
  		else if (ifAODEvent==AliSpectraBothTrackCuts::kAODobject)
  		{
			aodtrack=dynamic_cast<AliAODTrack*>(track);
			if(!aodtrack)
				continue;		
			dca=aodtrack->DCA();
			dcaz=aodtrack->ZAtDCA();
			ncls=aodtrack->GetTPCNcls();
			chi2perndf=aodtrack->Chi2perNDF();
  		}
  		else
			continue;
    		if (!fTrackCuts->IsSelected(track,kTRUE)) 
			continue;	
			
    		ntracks++;
		if(fmakePIDQAhisto)
    			fPID->FillQAHistos(fHistMan, track, fTrackCuts);
    		
		//calculate DCA for AOD track
    		if(dca==-999.)
		{// track->DCA() does not work in old AOD production
     	 		Double_t d[2], covd[3];
      			AliVTrack* track_clone=(AliVTrack*)track->Clone("track_clone"); // need to clone because PropagateToDCA updates the track parameters
      			Bool_t isDCA = track_clone->PropagateToDCA(fAOD->GetPrimaryVertex(),fAOD->GetMagneticField(),9999.,d,covd);
      			delete track_clone;
      			if(!isDCA)
				d[0]=-999.;
      			dca=d[0];
			dcaz=d[1];	
    		}
	
     		fHistMan->GetPtHistogram(kHistPtRec)->Fill(track->Pt(),dca);  // PT histo
    		// get identity and charge
    		Bool_t rec[3]={false,false,false};
		Bool_t sel[3]={false,false,false};
    		Int_t idRec  = fPID->GetParticleSpecie(fHistMan,track, fTrackCuts,rec);
		for(int irec=kSpPion;irec<kNSpecies;irec++)
    		{
   
			if(fUseMinSigma)
			{
				if(irec>kSpPion)
					break;
			}
			else
			{	
				if(!rec[irec]) 
					idRec = kSpUndefined;
				else	
					idRec=irec;
			}		
   
			Int_t charge = track->Charge() > 0 ? kChPos : kChNeg;
		
			// Fill histograms, only if inside y and nsigma acceptance
			if(idRec != kSpUndefined && fTrackCuts->CheckYCut ((BothParticleSpecies_t)idRec))
			{
				fHistMan->GetHistogram2D(kHistPtRecSigma,idRec,charge)->Fill(track->Pt(),dca);
				if(fTrackCuts->GetMakeQAhisto())
				{ 
					fTrackCuts->GetHistoDCAzQA()->Fill(idRec,track->Pt(),dcaz);
					fTrackCuts->GetHistoNclustersQA()->Fill(idRec,track->Pt(),ncls);
					fTrackCuts->GetHistochi2perNDFQA()->Fill(idRec,track->Pt(),chi2perndf);
				}
				sel[idRec]=true;
			}
			//can't put a continue because we still have to fill allcharged primaries, done later
		
			/* MC Part */
			if (arrayMC||stack) 
			{
				Bool_t isPrimary           = kFALSE;
			 	Bool_t isSecondaryMaterial = kFALSE; 
			 	Bool_t isSecondaryWeak     = kFALSE; 
			 	Int_t idGen     =kSpUndefined;
			 	Int_t pdgcode=0;
				Int_t motherpdg=-1;
				if (ifAODEvent==AliSpectraBothTrackCuts::kAODobject)
				{
					AliAODMCParticle *partMC = (AliAODMCParticle*) arrayMC->At(TMath::Abs(track->GetLabel()));
				  	if (!partMC) 
					{ 
						AliError("Cannot get MC particle");
						continue; 
				  	}
				  	// Check if it is primary, secondary from material or secondary from weak decay
				  	isPrimary           = partMC->IsPhysicalPrimary();
					isSecondaryWeak     = partMC->IsSecondaryFromWeakDecay();
					isSecondaryMaterial      = partMC->IsSecondaryFromMaterial();
					//cout<<"AOD tagging "<<isPrimary<<" "<<isSecondaryWeak<<isSecondaryMaterial<<" "<<partMC->GetMCProcessCode()<<endl;

				  	if(!isPrimary&&!isSecondaryWeak&&!isSecondaryMaterial)//old tagging for old AODs 
				  	{
						AliError("old tagging");
						Int_t mfl=-999,codemoth=-999;
						Int_t indexMoth=partMC->GetMother(); // FIXME ignore fakes? TO BE CHECKED, on ESD is GetFirstMother()
						if(indexMoth>=0)
						{//is not fake
					  		AliAODMCParticle* moth = (AliAODMCParticle*) arrayMC->At(indexMoth);
					  		codemoth = TMath::Abs(moth->GetPdgCode());
					  		mfl = Int_t (codemoth/ TMath::Power(10, Int_t(TMath::Log10(codemoth))));
						}
						//Int_t uniqueID = partMC->GetUniqueID();
						//cout<<"uniqueID: "<<partMC->GetUniqueID()<<"       "<<kPDecay<<endl;
						//cout<<"status: "<<partMC->GetStatus()<<"       "<<kPDecay<<endl;
						// if(uniqueID == kPDecay)Printf("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
						if(mfl==3) 
							isSecondaryWeak     = kTRUE; // add if(partMC->GetStatus() & kPDecay)? FIXME
						else       
							isSecondaryMaterial = kTRUE;
				  	}
					//cout<<"AOD 2 tagging "<<isPrimary<<" "<<isSecondaryWeak<<isSecondaryMaterial<<" "<<partMC->GetMCProcessCode()<<endl;
					if(isSecondaryWeak)
					{	
						Int_t indexMoth=partMC->GetMother(); // FIXME ignore fakes? TO BE CHECKED, on ESD is GetFirstMother()
						if(indexMoth>=0)
						{
					  		AliAODMCParticle* moth = (AliAODMCParticle*) arrayMC->At(indexMoth);
							if(moth)
					  			motherpdg=TMath::Abs(moth->GetPdgCode());
						}
					}

				  	idGen     = fPID->GetParticleSpecie(partMC);
				  	pdgcode=partMC->GetPdgCode(); 
				}
				else if (ifAODEvent==AliSpectraBothTrackCuts::kESDobject)
				{
					TParticle *partMC =stack->Particle(TMath::Abs(track->GetLabel()));
					if (!partMC) 
					{ 
						AliError("Cannot get MC particle");
						continue; 
				  	}
				  	isPrimary           = stack->IsPhysicalPrimary(TMath::Abs(track->GetLabel()));
					isSecondaryWeak     = stack->IsSecondaryFromWeakDecay(TMath::Abs(track->GetLabel()));
					isSecondaryMaterial      = stack->IsSecondaryFromMaterial(TMath::Abs(track->GetLabel()));
					//cout<<"ESD tagging "<<isPrimary<<" "<<isSecondaryWeak<<isSecondaryMaterial<<endl;
					
					if(isSecondaryWeak)	
					{

						TParticle* moth=stack->Particle(TMath::Abs(partMC->GetFirstMother()));
						if(moth)
							 motherpdg = TMath::Abs(moth->GetPdgCode());

					}
					

				   	idGen     = fPID->GetParticleSpecie(partMC);
				   	pdgcode=partMC->GetPdgCode(); 
				}
				else
					return;
			
			//	  cout<<isPrimary<<" "<<isSecondaryWeak<<" "<<isSecondaryMaterial<<endl;
			//	  cout<<" functions "<<partMC->IsPhysicalPrimary()<<" "<<partMC->IsSecondaryFromWeakDecay()<<" "<<partMC->IsSecondaryFromMaterial()<<endl;
		  
		  		if (isPrimary&&irec==kSpPion)
					fHistMan->GetPtHistogram(kHistPtRecPrimaryAll)->Fill(track->Pt(),dca);  // PT histo of reconstrutsed primaries in defined eta
		  
		  	//nsigma cut (reconstructed nsigma)
		  		if(idRec == kSpUndefined) 
					continue;
		  
		  	// rapidity cut (reconstructed pt and identity)
		 		 if(!fTrackCuts->CheckYCut ((BothParticleSpecies_t)idRec)) continue;
		  
		  // Get true ID
		  		 	
		  
		 		 if (idRec == idGen) fHistMan->GetHistogram2D(kHistPtRecTrue,  idGen, charge)->Fill(track->Pt(),dca); 
		  
		  		if (isPrimary) 
				{
					fHistMan->GetHistogram2D(kHistPtRecSigmaPrimary, idRec, charge)->Fill(track->Pt(),dca); 
					if(idGen != kSpUndefined) 
					{
		  				fHistMan->GetHistogram2D(kHistPtRecPrimary,      idGen, charge)->Fill(track->Pt(),dca);
		  				if (idRec == idGen) 
							fHistMan->GetHistogram2D(kHistPtRecTruePrimary,  idGen, charge)->Fill(track->Pt(),dca); 
					}
		  		}
		 		 //25th Apr - Muons are added to Pions -- FIXME
		 		if ( pdgcode == 13 && idRec == kSpPion) 
				{ 
					fHistMan->GetPtHistogram(kHistPtRecTrueMuonPlus)->Fill(track->Pt(),dca); 
					if(isPrimary)
		  				fHistMan->GetPtHistogram(kHistPtRecTruePrimaryMuonPlus)->Fill(track->Pt(),dca); 
		  		}
		  		if ( pdgcode == -13 && idRec == kSpPion) 
				{ 
					fHistMan->GetPtHistogram(kHistPtRecTrueMuonMinus)->Fill(track->Pt(),dca); 
					if (isPrimary) 
					{
		  				fHistMan->GetPtHistogram(kHistPtRecTruePrimaryMuonMinus)->Fill(track->Pt(),dca); 
					}
		  		}
		  
		 		 ///..... END FIXME
		  
		  		// Fill secondaries
		  		if(isSecondaryWeak)
				{  
					if(fMotherWDPDGcode>0)
					{
						if(motherpdg==fMotherWDPDGcode)
							fHistMan->GetHistogram2D(kHistPtRecSigmaSecondaryWeakDecay, idRec, charge)->Fill(track->Pt(),dca);
					}	
					else	
						fHistMan->GetHistogram2D(kHistPtRecSigmaSecondaryWeakDecay, idRec, charge)->Fill(track->Pt(),dca);
				}
		  		if(isSecondaryMaterial)  
					fHistMan->GetHistogram2D(kHistPtRecSigmaSecondaryMaterial , idRec, charge)->Fill(track->Pt(),dca);
		  
			}//end if(arrayMC)
		}
		if(sel[0]&&sel[1]&&sel[2])//pi+k+p
			fHistMan->GetPtHistogram("hHistDoubleCounts")->Fill(track->Pt(),0);
		else if(sel[0]&&sel[1]) //pi+k
			fHistMan->GetPtHistogram("hHistDoubleCounts")->Fill(track->Pt(),1);
		else if(sel[0]&&sel[2]) //pi+k
			fHistMan->GetPtHistogram("hHistDoubleCounts")->Fill(track->Pt(),2);
		else if(sel[1]&&sel[2]) //p+k
			fHistMan->GetPtHistogram("hHistDoubleCounts")->Fill(track->Pt(),3);

	
	
  	} // end loop on tracks

 // cout<< ntracks<<endl;
  fHistMan->GetGenMulvsRawMulHistogram("hHistGenMulvsRawMul")->Fill(npar,ntracks);
  PostData(1, fHistMan  );
  PostData(2, fEventCuts);
  PostData(3, fTrackCuts);
  PostData(4, fPID      );
}

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