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

//-----------------------------------------------------------------
//         AliSpectraBothEventCuts 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 "AliAODMCParticle.h"
#include "AliAODEvent.h"
#include "AliESDEvent.h"
#include "AliAODInputHandler.h"
#include "AliAnalysisTaskESDfilter.h"
#include "AliAnalysisDataContainer.h"
#include "AliSpectraBothEventCuts.h"
#include "AliSpectraBothTrackCuts.h"
#include "AliAnalysisUtils.h"
#include "AliPPVsMultUtils.h"	
#include "AliGenPythiaEventHeader.h"
//#include "AliSpectraBothHistoManager.h"
#include <iostream>

using namespace std;

ClassImp(AliSpectraBothEventCuts)

AliSpectraBothEventCuts::AliSpectraBothEventCuts(const char *name) : TNamed(name, "AOD Event Cuts"), fAOD(0),fAODEvent(AliSpectraBothTrackCuts::kAODobject), fTrackBits(0),fIsMC(0),fCentEstimator(""), fUseCentPatchAOD049(0), fUseSDDPatchforLHC11a(kDoNotCheckforSDD),fTriggerSettings(AliVEvent::kMB),fTrackCuts(0),
fIsSelected(0), fCentralityCutMin(0), fCentralityCutMax(0), fQVectorCutMin(0), fQVectorCutMax(0), fVertexCutMin(0), fVertexCutMax(0), fMultiplicityCutMin(0), fMultiplicityCutMax(0),fMaxChi2perNDFforVertex(0),
fMinRun(0),fMaxRun(0),fetarangeofmultiplicitycut(0.0),fUseAliPPVsMultUtils(false),
fNMCProcessType(0),fEventMCProcessType(0),fEventMCProcessTypeIncluded(0),
fHistoCuts(0),fHistoVtxBefSel(0),fHistoVtxAftSel(0),fHistoEtaBefSel(0),fHistoEtaAftSel(0),fHistoNChAftSel(0),fHistoQVector(0)
,fHistoEP(0),fHistoVtxAftSelwithoutZvertexCut(0),fHistoVtxalltriggerEventswithMCz(0),fHistoVtxAftSelwithoutZvertexCutusingMCz(0),fHistoRunNumbers(0),
fHistoCentrality(0),fHistoMultiplicty(0),fAnalysisUtils(0),fAliPPVsMultUtils(0)

{
  // Constructori
 // Bool_t oldStatus = TH1::AddDirectoryStatus();
  //TH1::AddDirectory(kFALSE);	
 // fHistoCuts = new TH1I("fEventCuts", "Event Cuts", kNVtxCuts, -0.5, kNVtxCuts - 0.5);
 // fHistoVtxBefSel = new TH1F("fHistoVtxBefSel", "Vtx distr before event selection",300,-15,15);
//  fHistoVtxAftSel = new TH1F("fHistoVtxAftSel", "Vtx distr after event selection",300,-15,15);
//  fHistoVtxAftSelwithoutZvertexCut=new TH1F("fHistoVtxAftSelwithoutZvertexcut", "Vtx distr after event selection without Z vertex cut",300,-15,15);
//  fHistoVtxalltriggerEventswithMCz=new TH1F("fHistoVtxalltriggerEventswithMCz", "generated z vertex position",300,-15,15);
//  fHistoVtxAftSelwithoutZvertexCutusingMCz=new TH1F("fHistoVtxAftSelwithoutZvertexCutusingMCz", "Vtx distr after event selection without Z vertex cut using MC z",300,-15,15);
//  fHistoEtaBefSel = new TH1F("fHistoEtaBefSel", "Eta distr before event selection",500,-2,2);
//  fHistoEtaAftSel = new TH1F("fHistoEtaAftSel", "Eta distr after event selection",500,-2,2);
 // fHistoNChAftSel = new TH1F("fHistoNChAftSel", "NCh distr after event selection",2000,-0.5,1999.5);
  //fHistoQVectorPos = new TH1F("fHistoQVectorPos", "QVectorPos distribution",100,0,10);
  //fHistoQVectorNeg = new TH1F("fHistoQVectorNeg", "QVectorNeg distribution",100,0,10);
 // fHistoQVector = new TH1F("fHistoQVector", "QVector with VZERO distribution",100,0,10);
 // fHistoEP = new TH1F("fHistoEP", "EP with VZERO distribution",100,-10,10);
  fCentralityCutMin = 0.0;      // default value of centrality cut minimum, 0 ~ no cut
  fCentralityCutMax = 10000.0;  // default value of centrality cut maximum,  ~ no cut
  // fQVectorPosCutMin=0.0;
  // fQVectorPosCutMax=10000.0;
  // fQVectorNegCutMin=0.0;
  // fQVectorNegCutMax=10000.0;
  fQVectorCutMin=0.0;
  fQVectorCutMax=10000.0;
  fVertexCutMin=-10.0;
  fVertexCutMax=10.0;
  fMultiplicityCutMin=-1.0;
  fMultiplicityCutMax=-1.0;
  fTrackBits=1;
  fCentEstimator="V0M";
  fMaxChi2perNDFforVertex=-1;	
 // TH1::AddDirectory(oldStatus);	
}
//______________________________________________________

AliSpectraBothEventCuts::~AliSpectraBothEventCuts()
{
	if(fHistoCuts)
		delete fHistoCuts;
	if(fHistoVtxBefSel)
		delete fHistoVtxBefSel;
	if(fHistoVtxAftSel)
		delete fHistoVtxAftSel;
	if(fHistoVtxAftSelwithoutZvertexCut)
		delete fHistoVtxAftSelwithoutZvertexCut;
	if(fHistoVtxalltriggerEventswithMCz)
		delete fHistoVtxalltriggerEventswithMCz;
	if(fHistoVtxAftSelwithoutZvertexCutusingMCz)
		delete fHistoVtxAftSelwithoutZvertexCutusingMCz;
	if(fHistoEtaBefSel)
		delete fHistoEtaBefSel;
	if(fHistoEtaAftSel)
		delete fHistoEtaAftSel ;
	if(fHistoNChAftSel)
		delete fHistoNChAftSel;
	if(fHistoQVector)
		delete fHistoQVector;
	if(fHistoEP)
		delete fHistoEP;
	if(fHistoRunNumbers)
		delete fHistoRunNumbers;
	if(fHistoCentrality)
		delete fHistoCentrality;
  	if(fHistoMultiplicty)
		delete fHistoMultiplicty;
	if(fAnalysisUtils)
		delete fAnalysisUtils;
	if(fAliPPVsMultUtils)
		delete fAliPPVsMultUtils;
	if(fEventMCProcessType)
		delete [] fEventMCProcessType;

}
//______________________________________________________
void AliSpectraBothEventCuts::InitHisto()
{
	Bool_t oldStatus = TH1::AddDirectoryStatus();
  	TH1::AddDirectory(kFALSE);
	if(!fHistoCuts)	
 		fHistoCuts = new TH1I("fEventCuts", "Event Cuts", kNVtxCuts, -0.5, kNVtxCuts - 0.5);
 	if(!fHistoVtxBefSel )
		fHistoVtxBefSel = new TH1F("fHistoVtxBefSel", "Vtx distr before event selection",300,-15,15);
	if(!fHistoVtxAftSel)
  		fHistoVtxAftSel = new TH1F("fHistoVtxAftSel", "Vtx distr after event selection",300,-15,15);
	if(!fHistoVtxAftSelwithoutZvertexCut)
  		fHistoVtxAftSelwithoutZvertexCut=new TH1F("fHistoVtxAftSelwithoutZvertexcut", "Vtx distr after event selection without Z vertex cut",300,-15,15);
  	if(!fHistoVtxalltriggerEventswithMCz)
		fHistoVtxalltriggerEventswithMCz=new TH1F("fHistoVtxalltriggerEventswithMCz", "generated z vertex position",300,-15,15);
  	if(!fHistoVtxAftSelwithoutZvertexCutusingMCz)
		fHistoVtxAftSelwithoutZvertexCutusingMCz=new TH1F("fHistoVtxAftSelwithoutZvertexCutusingMCz", "Vtx distr after event selection without Z vertex cut using MC z",300,-15,15);
  	if(!fHistoEtaBefSel)
		fHistoEtaBefSel = new TH1F("fHistoEtaBefSel", "Eta distr before event selection",500,-2,2);
  	if(!fHistoEtaAftSel)
		fHistoEtaAftSel = new TH1F("fHistoEtaAftSel", "Eta distr after event selection",500,-2,2);
  	if(!fHistoNChAftSel)
		fHistoNChAftSel = new TH1F("fHistoNChAftSel", "NCh distr after event selection",2000,-0.5,1999.5);
  //fHistoQVectorPos = new TH1F("fHistoQVectorPos", "QVectorPos distribution",100,0,10);
  //fHistoQVectorNeg = new TH1F("fHistoQVectorNeg", "QVectorNeg distribution",100,0,10);
	if(!fHistoQVector)
		fHistoQVector = new TH1F("fHistoQVector", "QVector with VZERO distribution",100,0,10);
  	if(!fHistoEP)
		fHistoEP = new TH1F("fHistoEP", "EP with VZERO distribution",100,-10,10);
	if(!fHistoRunNumbers)
	{
		if(fMaxRun>fMinRun&&fMinRun>=0)
			fHistoRunNumbers=new TH1F("fHistoRunNumbers","Run numbers",fMaxRun-fMinRun+1,fMinRun-0.5,fMaxRun+0.5);
		else
			fHistoRunNumbers=new TH1F("fHistoRunNumbers","Run numbers",1001,120000-.5,121000+0.5);

	}
	if(!fHistoCentrality)
		fHistoCentrality = new TH2F("fHistoCentrality", "centrality",2,0,2,100,0.0,100);

	if(!fHistoMultiplicty)
		fHistoMultiplicty= new TH2F("fHistoMultiplicty", "multiplicty estimator",2,0,2,155,-4.5,150.5);

	TH1::AddDirectory(oldStatus);		
}
//______________________________________________________
Bool_t AliSpectraBothEventCuts::IsSelected(AliVEvent * aod,AliSpectraBothTrackCuts* trackcuts,Bool_t isMC,Double_t mcZ,TH1F* managerhisteventcuts)
{
  // Returns true if Event Cuts are selected and applied
  fAOD = aod;
  fTrackCuts = trackcuts;
  fHistoCuts->Fill(kProcessedEvents);
  if(managerhisteventcuts)
	managerhisteventcuts->Fill(0);
  fHistoRunNumbers->Fill(aod->GetRunNumber());
  Bool_t IsPhysSel = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & fTriggerSettings);//FIXME we can add the trigger mask here
  if(!IsPhysSel)
	return IsPhysSel;
  if(fAnalysisUtils) // we check for pile-up
		 IsPhysSel = (!fAnalysisUtils->IsPileUpEvent(fAOD));
  if(!IsPhysSel)
	return IsPhysSel;
 	
  if(isMC)	
   	fHistoVtxalltriggerEventswithMCz->Fill(mcZ);
   //loop on tracks, before event selection, filling QA histos
  AliESDEvent* esdevent=0x0;
  AliAODEvent* aodevent=0x0;
  Bool_t isSDD=kFALSE;
  TString nameoftrack(fAOD->ClassName());  
    if(!nameoftrack.CompareTo("AliESDEvent"))
    {
		fAODEvent=AliSpectraBothTrackCuts::kESDobject;
		
		if(fUseSDDPatchforLHC11a!=kDoNotCheckforSDD)
		{
			esdevent=dynamic_cast<AliESDEvent*>(fAOD);
			if(!esdevent)
				return kFALSE;
			if(esdevent->GetFiredTriggerClasses().Contains("ALLNOTRD"))
				isSDD=kTRUE;
		}	
	}
	else if(!nameoftrack.CompareTo("AliAODEvent"))
	{
		fAODEvent=AliSpectraBothTrackCuts::kAODobject;
		if(fUseSDDPatchforLHC11a!=kDoNotCheckforSDD)
		{
			aodevent=dynamic_cast<AliAODEvent*>(fAOD);
			if(!aodevent)
				return kFALSE;
			if(aodevent->GetFiredTriggerClasses().Contains("ALLNOTRD"))
				isSDD=kTRUE;	
		}	
	}
	else
		return false; 
      if(fUseSDDPatchforLHC11a==kwithSDD&&isSDD==kFALSE)
		return false;
     if(fUseSDDPatchforLHC11a==kwithoutSDD&&isSDD==kTRUE)
		return false;

    fHistoCuts->Fill(kPhysSelEvents);
   if(managerhisteventcuts)
	managerhisteventcuts->Fill(1);




   const AliVVertex * vertex = fAOD->GetPrimaryVertex();//FIXME vertex is recreated	

  if(vertex)
	fHistoVtxBefSel->Fill(vertex->GetZ());
  fIsSelected =kFALSE;
  if(CheckVtx())
   { //selection on vertex

    fIsSelected=kTRUE;
  }
  if(fIsSelected&&vertex)
  {
  	fHistoVtxAftSelwithoutZvertexCut->Fill(vertex->GetZ());
      	if(isMC)
        	fHistoVtxAftSelwithoutZvertexCutusingMCz->Fill(mcZ);	
     	if (vertex->GetZ() > fVertexCutMin && vertex->GetZ() < fVertexCutMax)
     	{
		fIsSelected=kTRUE;
		fHistoVtxAftSel->Fill(vertex->GetZ());
     	}
    	else	
    	{
		fIsSelected=kFALSE;
    	}	
  }
  if(fIsSelected)
  {
	if( CheckCentralityCut() && CheckMultiplicityCut() && CheckQVectorCut())
		fIsSelected=kTRUE;
	else
		fIsSelected=kFALSE;	
  }	



  Int_t Nch=0;
  for (Int_t iTracks = 0; iTracks < fAOD->GetNumberOfTracks(); iTracks++) 
  {
   	 AliVTrack* track =dynamic_cast<AliVTrack*>(fAOD->GetTrack(iTracks));
   /* if(fAODEvent==AliSpectraBothTrackCuts::kESDobject)
		track=dynamic_cast<AliVTrack*>(esdevent->GetTrack(iTracks));
     else if (fAODEvent==AliSpectraBothTrackCuts::kAODobject)
		track=dynamic_cast<AliVTrack*>(aodevent->GetTrack(iTracks));
     else return false;*/
     
   	 if (!fTrackCuts->IsSelected(track,kFALSE)) 
		continue;
    	fHistoEtaBefSel->Fill(track->Eta());
   	 if(fIsSelected)
	{
      		fHistoEtaAftSel->Fill(track->Eta());
      		Nch++;
    	}
  }
  if(fIsSelected)
  {	
  	fHistoNChAftSel->Fill(Nch);
	fHistoCuts->Fill(kAcceptedEvents);
	if(managerhisteventcuts)
		managerhisteventcuts->Fill(2);

  }	
  return fIsSelected;
}

//______________________________________________________
Bool_t AliSpectraBothEventCuts::CheckVtx()
{
  // reject events outside of range
  const AliVVertex * vertex = fAOD->GetPrimaryVertex();
  //when moving to 2011 wìone has to add a cut using SPD vertex.
  //The point is that for events with |z|>20 the vertexer tracks is not working (only 2011!). One has to put a safety cut using SPD vertex large e.g. 15cm
  if (!vertex)
    {
      fHistoCuts->Fill(kVtxNoEvent);
      return kFALSE;
    }
    if(vertex->GetNContributors()<1)
   {

      fHistoCuts->Fill(kZeroCont);
      return kFALSE;

   }
	
   TString tmp(vertex->GetTitle());
   if(tmp.Contains("NoConstraint"))
   {
        fHistoCuts->Fill(kTPCasPV);
        return kFALSE;
   }


 // if (vertex->GetZ() > fVertexCutMin && vertex->GetZ() < fVertexCutMax)
   // {
    //  return kTRUE;
   // }
   if(!CheckVtxChi2perNDF())	  
	return kFALSE;
		
 fHistoCuts->Fill(kGoodVtx);
  //return kFALSE;
   return kTRUE;
}

//______________________________________________________
Bool_t AliSpectraBothEventCuts::CheckCentralityCut()
{
  // Check centrality cut
 if ( fCentralityCutMax<0.0  &&  fCentralityCutMin<0.0 )  
	return kTRUE;
  Double_t cent=0;	
  if(fUseAliPPVsMultUtils)
  {
	if(!fAliPPVsMultUtils)
		fAliPPVsMultUtils=new AliPPVsMultUtils();
	cent=fAliPPVsMultUtils->GetMultiplicityPercentile(fAOD,fCentEstimator.Data());
  }	
  else
  {
  	if(!fUseCentPatchAOD049)
		cent=fAOD->GetCentrality()->GetCentralityPercentile(fCentEstimator.Data());
  	else 
		cent=ApplyCentralityPatchAOD049();
  }	
  fHistoCentrality->Fill(0.5,cent);	
  if ( (cent < fCentralityCutMax)  &&  (cent >= fCentralityCutMin) )  
  {
	 fHistoCentrality->Fill(1.5,cent);	
  	return kTRUE;
  }	   
  fHistoCuts->Fill(kVtxCentral);

  return kFALSE;
}

//______________________________________________________
Bool_t AliSpectraBothEventCuts::CheckMultiplicityCut()
{
  // Check multiplicity cut
	if(fMultiplicityCutMin<0 && fMultiplicityCutMax<0)
		return kTRUE;
	Int_t Ncharged=-1;
	if(fAODEvent==AliSpectraBothTrackCuts::kESDobject)
	{	
		  AliESDEvent* esdevent=dynamic_cast<AliESDEvent*>(fAOD);
		 AliESDtrackCuts::MultEstTrackType estType = esdevent->GetPrimaryVertexTracks()->GetStatus() ? AliESDtrackCuts::kTrackletsITSTPC : AliESDtrackCuts::kTracklets;
		Ncharged=AliESDtrackCuts::GetReferenceMultiplicity(esdevent,estType,fetarangeofmultiplicitycut);
	}
	else if(fAODEvent==AliSpectraBothTrackCuts::kAODobject)
	{
		AliAODEvent* aodevent=0x0;
		aodevent=dynamic_cast<AliAODEvent*>(fAOD);
                AliAODHeader * header = dynamic_cast<AliAODHeader*>(aodevent->GetHeader());
                if(!header) AliFatal("Not a standard AOD");

		if(TMath::Abs(0.8-fetarangeofmultiplicitycut)<0.1)
			Ncharged=header->GetRefMultiplicityComb08();
		else if (TMath::Abs(0.5-fetarangeofmultiplicitycut)<0.1)
			Ncharged=header->GetRefMultiplicityComb05();
		else 
			Ncharged=-1;
	}
	else
		return kFALSE;	 

   fHistoMultiplicty->Fill(0.5,Ncharged);
   if(Ncharged>=fMultiplicityCutMin && Ncharged<fMultiplicityCutMax)
   { 
	fHistoMultiplicty->Fill(1.5,Ncharged);
  	return kTRUE;
   }
  fHistoCuts->Fill(kVtxCentral);
  return kFALSE;
}

//______________________________________________________
Bool_t AliSpectraBothEventCuts::CheckQVectorCut()
{
	 if(fQVectorCutMin<0.0 && fQVectorCutMax<0.0)return kTRUE;
  // Check qvector cut
  /// FIXME: Q vector
  // //Selection on QVector, before ANY other selection on the event
  // //Spectra MUST be normalized wrt events AFTER the selection on Qvector
  // Double_t Qx2EtaPos = 0, Qy2EtaPos = 0;
  // Double_t Qx2EtaNeg = 0, Qy2EtaNeg = 0;
 
  // Int_t multPos = 0;
  // Int_t multNeg = 0;
  // for(Int_t iT = 0; iT < fAOD->GetNumberOfTracks(); iT++) {
  //   AliAODTrack* aodTrack = fAOD->GetTrack(iT);
  //   if (!aodTrack->TestFilterBit(fTrackBits)) continue;
  //   if (aodTrack->Eta() >= 0){
  //     multPos++;
  //     Qx2EtaPos += TMath::Cos(2*aodTrack->Phi()); 
  //     Qy2EtaPos += TMath::Sin(2*aodTrack->Phi());
  //   } else {
  //     multNeg++;
  //     Qx2EtaNeg += TMath::Cos(2*aodTrack->Phi()); 
  //     Qy2EtaNeg += TMath::Sin(2*aodTrack->Phi());
  //   }
  // } 
  // Double_t qPos=-999;
  // if(multPos!=0)qPos= TMath::Sqrt((Qx2EtaPos*Qx2EtaPos + Qy2EtaPos*Qy2EtaPos)/multPos);
  // Double_t qNeg=-999;
  // if(multNeg!=0)qNeg= TMath::Sqrt((Qx2EtaNeg*Qx2EtaNeg + Qy2EtaNeg*Qy2EtaNeg)/multNeg);
  //if(qPos<fQVectorPosCutMin || qPos>fQVectorPosCutMax || qNeg<fQVectorNegCutMin || qNeg>fQVectorNegCutMax)return kFALSE;
  
  Double_t qxEPVZERO = 0, qyEPVZERO = 0;
  Double_t qVZERO = -999;
  Double_t psi=fAOD->GetEventplane()->CalculateVZEROEventPlane(fAOD,10,2,qxEPVZERO,qyEPVZERO);
  
  qVZERO= TMath::Sqrt(qxEPVZERO*qxEPVZERO + qyEPVZERO*qyEPVZERO);
  if(qVZERO<fQVectorCutMin || qVZERO>fQVectorCutMax)return kFALSE;
  fHistoQVector->Fill(qVZERO);
  fHistoEP->Fill(psi);
  
  fHistoCuts->Fill(kQVector);
  // fHistoQVectorPos->Fill(qPos);
  // fHistoQVectorNeg->Fill(qNeg);
  return kTRUE;
}
//____________________________________________________________
 Bool_t AliSpectraBothEventCuts::CheckVtxChi2perNDF()
 {
	if(fMaxChi2perNDFforVertex<0)
		return kTRUE;
	 const AliVVertex * vertex = fAOD->GetPrimaryVertex();
	if(TMath::Abs(vertex->GetChi2perNDF())>fMaxChi2perNDFforVertex) 
		return kFALSE;
	return kTRUE;
 }



//______________________________________________________
void AliSpectraBothEventCuts::PrintCuts()
{
  // print info about event cuts
  cout << "Event Stats" << endl;
  if(fHistoCuts)
  {		
 	 cout << " > Number of accepted events: " << fHistoCuts->GetBinContent(kAcceptedEvents + 1) << endl;
 	 cout << " > Number of processed events: " << fHistoCuts->GetBinContent(kProcessedEvents + 1) << endl;
 	 cout << " > Number of PhysSel events: " << fHistoCuts->GetBinContent(kPhysSelEvents + 1) << endl;
 	 cout << " > With good veretx: " << fHistoCuts->GetBinContent(kGoodVtx + 1) << endl;
 	 cout << " > Events cut by centrality: " << fHistoCuts->GetBinContent(kVtxCentral + 1) << endl;
 	 cout << " > Events without vertex: " << fHistoCuts->GetBinContent(kVtxNoEvent + 1) << endl;
	  cout << " > QVector cut: " << fHistoCuts->GetBinContent(kQVector + 1) << endl;
  }	
  cout << " > Track type used for the QVector calculation: " << fTrackBits << endl;
  // cout << " > QPosRange: [" << fQVectorPosCutMin <<"," <<fQVectorPosCutMax<<"]"<< endl;
  // cout << " > QNegRange: [" << fQVectorNegCutMin <<"," <<fQVectorNegCutMax<<"]"<< endl;
  cout << " > QRange: [" << fQVectorCutMin <<"," <<fQVectorCutMax<<"]"<< endl;
  cout << " > Vertex: [" << fVertexCutMin <<"," <<fVertexCutMax<<"]"<< endl;
  cout << " > Multiplicity: [" << fMultiplicityCutMin <<"," <<fMultiplicityCutMax<<"]"<< endl;
  cout << " > Centrality: [" << fCentralityCutMin <<"," <<fCentralityCutMax<<"]"<< endl;
}
//______________________________________________________

Double_t AliSpectraBothEventCuts::ApplyCentralityPatchAOD049()
{
   //
   //Apply centrality patch for AOD049 outliers
   //
  // if (fCentralityType!="V0M") {
  //   AliWarning("Requested patch forAOD049 for wrong value (not centrality from V0).");
  //   return -999.0;
  // }
  AliCentrality *centrality = fAOD->GetCentrality();
   if (!centrality) {
     AliWarning("Cannot get centrality from AOD event.");
     return -999.0;
   }
   
   Float_t cent = (Float_t)(centrality->GetCentralityPercentile("V0M"));
   /*
     Bool_t isSelRun = kFALSE;
     Int_t selRun[5] = {138364, 138826, 138828, 138836, 138871};
     if(cent<0){
     Int_t quality = centrality->GetQuality();
     if(quality<=1){
     cent=(Float_t)centrality->GetCentralityPercentileUnchecked("V0M");
     } else {
     Int_t runnum=aodEvent->GetRunNumber();
     for(Int_t ir=0;ir<5;ir++){
     if(runnum==selRun[ir]){
     isSelRun=kTRUE;
     break;
     }
     }
     if((quality==8||quality==9)&&isSelRun) cent=(Float_t)centrality->GetCentralityPercentileUnchecked("V0M");
     }
     }
   */
   if(cent>=0.0) {
     Float_t v0 = 0.0;
     AliAODEvent *aodEvent = (AliAODEvent *)fAOD;
     AliAODVZERO *aodV0 = (AliAODVZERO *) aodEvent->GetVZEROData();
     v0+=aodV0->GetMTotV0A();
     v0+=aodV0->GetMTotV0C();
     if ( (cent==0) && (v0<19500) ) {
       AliDebug(3, Form("Filtering issue in centrality -> cent = %5.2f",cent));
       return -999.0;
     }
     Float_t tkl = (Float_t)(aodEvent->GetTracklets()->GetNumberOfTracklets());
     Float_t val = 1.30552 +  0.147931 * v0;
     
     Float_t tklSigma[101] = {176.644, 156.401, 153.789, 153.015, 142.476, 137.951, 136.127, 129.852, 127.436, 124.86,
			      120.788, 115.611, 113.172, 110.496, 109.127, 104.421, 102.479, 99.9766, 97.5152, 94.0654,
			      92.4602, 89.3364, 87.1342, 83.3497, 82.6216, 81.1084, 78.0793, 76.1234, 72.9434, 72.1334,
			      68.0056, 68.2755, 66.0376, 62.9666, 62.4274, 59.65, 58.3776, 56.6361, 54.5184, 53.4224,
			      51.932, 50.8922, 48.2848, 47.912, 46.5717, 43.4114, 43.2083, 41.3065, 40.1863, 38.5255,
			      37.2851, 37.5396, 34.4949, 33.8366, 31.8043, 31.7412, 30.8392, 30.0274, 28.8793, 27.6398,
			      26.6488, 25.0183, 25.1489, 24.4185, 22.9107, 21.2002, 21.6977, 20.1242, 20.4963, 19.0235,
			      19.298, 17.4103, 16.868, 15.2939, 15.2939, 16.0295, 14.186, 14.186, 15.2173, 12.9504, 12.9504,
			      12.9504, 15.264, 12.3674, 12.3674, 12.3674, 12.3674, 12.3674, 18.3811, 13.7544, 13.7544,
			      13.7544, 13.7544, 13.7544, 13.7544, 13.7544, 13.7544, 13.7544, 13.7544, 13.7544, 13.7544
     };
     
     if ( TMath::Abs(tkl-val) > 6.*tklSigma[(Int_t)cent] )  {
       AliDebug(3, Form("Outlier event in centrality -> cent = %5.2f",cent));
       return -999.0;
     }
   } else {
     //force it to be -999. whatever the negative value was
     cent = -999.;
   }
   return cent;
}

//______________________________________________________


Long64_t AliSpectraBothEventCuts::Merge(TCollection* list)
{
  // Merge a list of AliSpectraBothEventCuts 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 use only 1 collection
  TList collections_histoVtxBefSel;
  TList collections_histoVtxAftSel;
  TList collections_histoEtaBefSel;
  TList collections_histoEtaAftSel;
  TList collections_histoNChAftSel;
  // TList collections_histoQVectorPos;
  // TList collections_histoQVectorNeg;
  TList collections_histoQVector;
  TList collections_histoEP;
  TList collections_histoVtxAftSelwithoutZvertexCut;
  TList collections_histoVtxalltriggerEventswithMCz;
  TList collections_histoVtxAftSelwithoutZvertexCutusingMCz;			
  TList collections_histoRunNumbers;
  TList collections_histoCentrality;			
  TList collections_histoMultiplicty;

  Int_t count = 0;

  while ((obj = iter->Next())) {
    AliSpectraBothEventCuts* entry = dynamic_cast<AliSpectraBothEventCuts*> (obj);
    if (entry == 0) 
      continue;

    TH1I * histo = entry->GetHistoCuts(); 
    if(histo)    
    	collections.Add(histo);
    TH1F * histo_histoVtxBefSel = entry->GetHistoVtxBefSel();      
    if(histo_histoVtxBefSel)
    	collections_histoVtxBefSel.Add(histo_histoVtxBefSel);
    TH1F * histo_histoVtxAftSel = entry->GetHistoVtxAftSel();      
    if(histo_histoVtxAftSel)
    	collections_histoVtxAftSel.Add(histo_histoVtxAftSel);
    TH1F * histo_histoEtaBefSel = entry->GetHistoEtaBefSel(); 
    if(histo_histoEtaBefSel)	     
    	collections_histoEtaBefSel.Add(histo_histoEtaBefSel);
    TH1F * histo_histoEtaAftSel = entry->GetHistoEtaAftSel();
    if(histo_histoEtaAftSel)	      
    	collections_histoEtaAftSel.Add(histo_histoEtaAftSel);
    TH1F * histo_histoNChAftSel = entry->GetHistoNChAftSel();
    if(histo_histoNChAftSel)	      
    	collections_histoNChAftSel.Add(histo_histoNChAftSel);
    // TH1F * histo_histoQVectorPos = entry->GetHistoQVectorPos();      
    // collections_histoQVectorPos.Add(histo_histoQVectorPos);
    // TH1F * histo_histoQVectorNeg = entry->GetHistoQVectorNeg();      
    // collections_histoQVectorNeg.Add(histo_histoQVectorNeg);	
    TH1F * histo_histoQVector = entry->GetHistoQVector();     
    if(histo_histoQVector)	 
    	collections_histoQVector.Add(histo_histoQVector);
    TH1F * histo_histoEP = entry->GetHistoEP();      
    if(histo_histoEP) 
    	collections_histoEP.Add(histo_histoEP);
    TH1F* histo_histoVtxAftSelwithoutZvertexCut=entry->GetHistoVtxAftSelwithoutZvertexCut();
     if(histo_histoVtxAftSelwithoutZvertexCut)
    	collections_histoVtxAftSelwithoutZvertexCut.Add(histo_histoVtxAftSelwithoutZvertexCut);
    TH1F* histo_histoVtxalltriggerEventswithMCz=entry->GetHistoVtxGenerated();
     if(histo_histoVtxalltriggerEventswithMCz)
    	collections_histoVtxalltriggerEventswithMCz.Add(histo_histoVtxalltriggerEventswithMCz);
    
   TH1F* histo_histoVtxAftSelwithoutZvertexCutusingMCz=entry->GetHistoVtxAftSelwithoutZvertexCutusingMCz();
     if(histo_histoVtxAftSelwithoutZvertexCutusingMCz)	
    	collections_histoVtxAftSelwithoutZvertexCutusingMCz.Add(histo_histoVtxAftSelwithoutZvertexCutusingMCz);	
    
    TH1F* histo_histoRunNumbers=entry->GetHistoRunNumbers();
    if(histo_histoRunNumbers)
	collections_histoRunNumbers.Add(histo_histoRunNumbers);
 
   TH2F* histo_histoCentrality=entry->GetHistoCentrality();
  if(histo_histoCentrality)
 	 collections_histoCentrality.Add(histo_histoCentrality);	 	

TH2F* histo_histoMultiplicty=entry->GetHistoMultiplicty();
  if(histo_histoMultiplicty)
  	collections_histoMultiplicty.Add(histo_histoMultiplicty);


    count++;
  }
  if(fHistoCuts)
  	fHistoCuts->Merge(&collections);
  if(fHistoVtxBefSel)
  	fHistoVtxBefSel->Merge(&collections_histoVtxBefSel);
  if(fHistoVtxAftSel)
  	fHistoVtxAftSel->Merge(&collections_histoVtxAftSel);
  if(fHistoEtaBefSel)
 	 fHistoEtaBefSel->Merge(&collections_histoEtaBefSel);
  if(fHistoEtaAftSel)
  	fHistoEtaAftSel->Merge(&collections_histoEtaAftSel);
  if(fHistoNChAftSel)
  	fHistoNChAftSel->Merge(&collections_histoNChAftSel);
  // fHistoQVectorPos->Merge(&collections_histoQVectorPos);
  // fHistoQVectorNeg->Merge(&collections_histoQVectorNeg);
  if(fHistoQVector)
 	 fHistoQVector->Merge(&collections_histoQVector);
  if(fHistoEP)
  	fHistoEP->Merge(&collections_histoEP);
  if(fHistoVtxAftSelwithoutZvertexCut)
  	fHistoVtxAftSelwithoutZvertexCut->Merge(&collections_histoVtxAftSelwithoutZvertexCut);
  if(fHistoVtxalltriggerEventswithMCz)
 	 fHistoVtxalltriggerEventswithMCz->Merge(&collections_histoVtxalltriggerEventswithMCz);
  if(fHistoVtxAftSelwithoutZvertexCutusingMCz)	
  	fHistoVtxAftSelwithoutZvertexCutusingMCz->Merge(&collections_histoVtxAftSelwithoutZvertexCutusingMCz);
  if(fHistoRunNumbers)
  	fHistoRunNumbers->Merge(&collections_histoRunNumbers);
  if(fHistoCentrality)
 	 fHistoCentrality->Merge(&collections_histoCentrality);
  if(fHistoMultiplicty)
  	fHistoMultiplicty->Merge(&collections_histoMultiplicty);


  delete iter;

  return count+1;
}
//__________________________________________________________________________________________________________
void AliSpectraBothEventCuts::SetRunNumberRange(Int_t min, Int_t max)
{
	if(max>min&&min>=0)
	{
		 fMinRun=min; 			 
  		 fMaxRun=max;
	}
}
//__________________________________________________________________________________________________________
Bool_t AliSpectraBothEventCuts::CheckMCProcessType(AliMCEvent* mcevent)
{
	if(fNMCProcessType<0)
		return kTRUE;
	if(!mcevent)
		return kFALSE;
	AliHeader* aHeader=mcevent->Header();
	if(!aHeader)
		return kFALSE;
	AliGenPythiaEventHeader* pythiaGenHeader = dynamic_cast<AliGenPythiaEventHeader*>(aHeader->GenEventHeader());
	if(!pythiaGenHeader)
		return kFALSE;	
	Int_t processtype=pythiaGenHeader->ProcessType();
	for(int i=0;i<fNMCProcessType;i++)
	{
		if(fEventMCProcessType[i]<0)
			continue;
		if (processtype==fEventMCProcessType[i])
			return fEventMCProcessTypeIncluded;
	}
	return !fEventMCProcessTypeIncluded;
}
//_____________________________________________________________________________________________________________
void AliSpectraBothEventCuts::SetNMCProcessType(Int_t flag) 
{
	fNMCProcessType=flag;
	if(fEventMCProcessType)
		delete [] fEventMCProcessType;
	
	fEventMCProcessType= new Int_t[fNMCProcessType];
	if(!fEventMCProcessType)
	{
		fNMCProcessType=-1;
		return;
	}
	for(int i=0;i<fNMCProcessType;i++)
		fEventMCProcessType[i]=-1.0;
	return;
}
//________________________________________________________________________________________________________________________
void AliSpectraBothEventCuts::AddMCProcessType(Int_t type,Int_t index)
{
	if(index<fNMCProcessType)
		fEventMCProcessType[index]=type;
}

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