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

//_________________________________________________________________________
// Class for track/cluster acceptance selection
// Selection in Central barrel, EMCAL and PHOS
//  
// Several selection regions possible for the different
// detectors
//
//*-- Author: Gustavo Conesa (LNF-INFN) 
//////////////////////////////////////////////////////////////////////////////


// --- ROOT system ---
#include <TMath.h>
//#include <TLorentzVector.h>
#include <TString.h>

//---- ANALYSIS system ----
#include "AliFiducialCut.h"
#include <AliLog.h>

ClassImp(AliFiducialCut)


//________________________________
AliFiducialCut::AliFiducialCut() : 
TObject(),
fEMCALFiducialCut(0),   fDCALFiducialCut(0),    fPHOSFiducialCut(0),     fCTSFiducialCut(0),
fCTSFidCutMinEta(0x0),  fCTSFidCutMinPhi(0x0),  fCTSFidCutMaxEta(0x0),   fCTSFidCutMaxPhi(0x0),
fEMCALFidCutMinEta(0x0),fEMCALFidCutMinPhi(0x0),fEMCALFidCutMaxEta(0x0), fEMCALFidCutMaxPhi(0x0),
fPHOSFidCutMinEta(0x0), fPHOSFidCutMinPhi(0x0), fPHOSFidCutMaxEta(0x0),  fPHOSFidCutMaxPhi(0x0),
fDCALFidCutMinEta(0x0), fDCALFidCutMinPhi(0x0), fDCALFidCutMaxEta(0x0),  fDCALFidCutMaxPhi(0x0)
{
  //Ctor
  
  //Initialize parameters
  InitParameters();
  
}

//_______________________________
AliFiducialCut::~AliFiducialCut()
{
  //Dtor
  
  if(fCTSFidCutMinEta)   delete fCTSFidCutMinEta ;
  if(fCTSFidCutMinPhi)   delete fCTSFidCutMinPhi ;
  if(fCTSFidCutMaxEta)   delete fCTSFidCutMaxEta ;
  if(fCTSFidCutMaxPhi)   delete fCTSFidCutMaxPhi ;
  
  if(fEMCALFidCutMinEta) delete fEMCALFidCutMinEta ;
  if(fEMCALFidCutMinPhi) delete fEMCALFidCutMinPhi ;
  if(fEMCALFidCutMaxEta) delete fEMCALFidCutMaxEta ; 
  if(fEMCALFidCutMaxPhi) delete fEMCALFidCutMaxPhi ;
  
  if(fPHOSFidCutMinEta)  delete fPHOSFidCutMinEta ; 
  if(fPHOSFidCutMinPhi)  delete fPHOSFidCutMinPhi ; 
  if(fPHOSFidCutMaxEta)  delete fPHOSFidCutMaxEta ;
  if(fPHOSFidCutMaxPhi)  delete fPHOSFidCutMaxPhi ;
  
  if(fDCALFidCutMinEta)  delete fDCALFidCutMinEta ;
  if(fDCALFidCutMinPhi)  delete fDCALFidCutMinPhi ;
  if(fDCALFidCutMaxEta)  delete fDCALFidCutMaxEta ;
  if(fDCALFidCutMaxPhi)  delete fDCALFidCutMaxPhi ;
}


////________________________________________________________________________________
//Bool_t AliFiducialCut::IsInFiducialCut(TLorentzVector momentum, TString det) const
//{
//  // Selects EMCAL or PHOS cluster or CTS track if it is inside eta-phi defined regions
//  Int_t idet = -1;
//  if     (det=="EMCAL") idet = kEMCAL;
//  else if(det=="PHOS" ) idet = kPHOS;
//  else if(det=="CTS")   idet = kCTS;
//  else if(det=="DCAL")  idet = kDCAL;
//  else if(det.Contains("DCAL") && det.Contains("PHOS")) idet = kDCALPHOS;
//  else
//  {
//    AliFatal(Form("Detector < %s > not known!", det.Data()));
//    return kFALSE;
//  }
//  
//  return IsInFiducialCut(momentum.Eta(), momentum.Phi(), idet);
//}

//________________________________________________________________________________
Bool_t AliFiducialCut::IsInFiducialCut(Float_t eta, Float_t phi, Int_t det) const
{
  // Selects EMCAL or PHOS cluster or CTS track if it is inside eta-phi defined regions
  
  if(det == kCTS)
  {
	  if(!fCTSFiducialCut)  
      return kTRUE; //Fiducial cut not requested, accept all tracks  
	  else 
      return CheckFiducialRegion(eta,phi, fCTSFidCutMinPhi  , fCTSFidCutMaxPhi , fCTSFidCutMinEta  , fCTSFidCutMaxEta  );
  }
  else   if(det == kEMCAL)
  {
	  if(!fEMCALFiducialCut) 
      return kTRUE; //Fiducial cut not requested, accept all clusters  
	  else                   
      return CheckFiducialRegion(eta,phi, fEMCALFidCutMinPhi, fEMCALFidCutMaxPhi, fEMCALFidCutMinEta, fEMCALFidCutMaxEta);
  }
  else   if(det == kPHOS)
  {
    if(!fPHOSFiducialCut)
      return kTRUE; //Fiducial cut not requested, accept all clusters
    else
      return CheckFiducialRegion(eta,phi, fPHOSFidCutMinPhi , fPHOSFidCutMaxPhi , fPHOSFidCutMinEta , fPHOSFidCutMaxEta );
  }
  else   if(det == kDCAL || det == kDCALPHOS)
  {
    if(!fDCALFiducialCut)
      return kTRUE; //Fiducial cut not requested, accept all clusters
    else
      return CheckFiducialRegion(eta,phi, fDCALFidCutMinPhi , fDCALFidCutMaxPhi , fDCALFidCutMinEta , fDCALFidCutMaxEta );
  }
  else
  {
    return kFALSE;
    AliFatal(Form("Detector < %d > not known!", det));
  }
  
}

//___________________________________________________________________________________________
Bool_t AliFiducialCut::CheckFiducialRegion(Float_t eta, Float_t phiOrg,
                                           const TArrayF* minphi, const TArrayF* maxphi, 
                                           const TArrayF* mineta, const TArrayF* maxeta) const 
{
  //Given the selection regions in Eta and Phi, check if particle is in this region.
  
  Float_t phi = phiOrg;
	if(phi < 0) phi+=TMath::TwoPi() ;
  
	//printf("IsInFiducialCut::Det: %s, phi = %f, eta = %f\n", det.Data(),phi*TMath::RadToDeg(), eta);
  
  Int_t netaregions = maxeta->GetSize();
  Int_t nphiregions = maxphi->GetSize();
  if(netaregions !=  mineta->GetSize() || nphiregions !=  minphi->GetSize())
		printf("AliFiducialCut::IsInFiducialCut() - Wrong number of fiducial cut regions: nmaxeta %d != nmineta %d; nmaxphi %d != nminphi %d\n",
           netaregions, mineta->GetSize(),  nphiregions, minphi->GetSize());
	
	//Eta fiducial cut
	Bool_t bInEtaFidCut = kFALSE;
	for(Int_t ieta = 0; ieta < netaregions; ieta++)
		if(eta > mineta->GetAt(ieta) && eta < maxeta->GetAt(ieta)) bInEtaFidCut = kTRUE;
  
	if(bInEtaFidCut){
		//printf("Eta cut passed\n");
		//Phi fiducial cut
		Bool_t bInPhiFidCut = kFALSE;
		for(Int_t iphi = 0; iphi < nphiregions; iphi++)
			if(phi > minphi->GetAt(iphi) *TMath::DegToRad()&& phi < maxphi->GetAt(iphi)*TMath::DegToRad()) bInPhiFidCut = kTRUE ;
	  
		if(bInPhiFidCut) {
			//printf("IsInFiducialCut:: %s cluster/track accepted\n",det.Data());
			return kTRUE;
		}
		else return kFALSE;
    
	}//In eta fid cut
	else
    return kFALSE;
}


//_______________________________________________________________
void AliFiducialCut::InitParameters()
{
  
  //Initialize the parameters of the analysis.
  
  fEMCALFiducialCut = kTRUE ;  
  fPHOSFiducialCut  = kTRUE ;
  fCTSFiducialCut   = kTRUE ;
  fDCALFiducialCut  = kTRUE ;
  
  fCTSFidCutMinEta = new TArrayF(1);
  fCTSFidCutMinEta->SetAt(-0.9,0); 
  fCTSFidCutMaxEta = new TArrayF(1);
  fCTSFidCutMaxEta->SetAt( 0.9,0); 
  
  fCTSFidCutMinPhi = new TArrayF(1);
  fCTSFidCutMinPhi->SetAt(0.  ,0); 
  fCTSFidCutMaxPhi = new TArrayF(1);
  fCTSFidCutMaxPhi->SetAt(360.,0); 
  
  fEMCALFidCutMinEta = new TArrayF(1);
  fEMCALFidCutMinEta->SetAt(-0.7,0); 
  fEMCALFidCutMaxEta = new TArrayF(1);
  fEMCALFidCutMaxEta->SetAt( 0.7,0); 
  
  fEMCALFidCutMinPhi = new TArrayF(1);
  fEMCALFidCutMinPhi->SetAt(80.,0); 
  fEMCALFidCutMaxPhi = new TArrayF(1);
  fEMCALFidCutMaxPhi->SetAt(187.,0); 
  
  fPHOSFidCutMinEta = new TArrayF(1);
  fPHOSFidCutMinEta->SetAt(-0.13,0); 
  fPHOSFidCutMaxEta = new TArrayF(1);
  fPHOSFidCutMaxEta->SetAt( 0.13,0); 
  
  fPHOSFidCutMinPhi = new TArrayF(1);
  fPHOSFidCutMinPhi->SetAt(260.,0); 
  fPHOSFidCutMaxPhi = new TArrayF(1);
  fPHOSFidCutMaxPhi->SetAt(320.,0); 
  
//  fDCALFidCutMinEta = new TArrayF(1);
//  fDCALFidCutMinEta->SetAt(-0.7,0);
//  fDCALFidCutMaxEta = new TArrayF(1);
//  fDCALFidCutMaxEta->SetAt( 0.7,0);
//  
//  fDCALFidCutMinPhi = new TArrayF(1);
//  fDCALFidCutMinPhi->SetAt(260.,0);
//  fDCALFidCutMaxPhi = new TArrayF(1);
//  fDCALFidCutMaxPhi->SetAt(327.,0);
  
  // Divide DCal in 3 regions:
  // A (C?) side : -0.70<eta<-0.15, 260<phi<320
  // C (A?) side :  0.15<eta< 0.70, 260<phi<320
  // 1/3 SM      : -0.70<eta< 0.70, 320<phi<327
  
  fDCALFidCutMinEta = new TArrayF(3);
  fDCALFidCutMinEta->SetAt(-0.7 ,0);
  fDCALFidCutMinEta->SetAt( 0.20,1);
  fDCALFidCutMinEta->SetAt(-0.7 ,2);
  fDCALFidCutMaxEta = new TArrayF(3);
  fDCALFidCutMaxEta->SetAt(-0.20,0);
  fDCALFidCutMaxEta->SetAt( 0.7 ,1);
  fDCALFidCutMaxEta->SetAt( 0.7 ,2);
  
  fDCALFidCutMinPhi = new TArrayF(3);
  fDCALFidCutMinPhi->SetAt(260.,0);
  fDCALFidCutMinPhi->SetAt(260.,1);
  fDCALFidCutMinPhi->SetAt(320.,2);
  fDCALFidCutMaxPhi = new TArrayF(3);
  fDCALFidCutMaxPhi->SetAt(320.,0);
  fDCALFidCutMaxPhi->SetAt(320.,0);
  fDCALFidCutMaxPhi->SetAt(327.,0);

}


//________________________________________________________________
void AliFiducialCut::Print(const Option_t * opt) const
{
  
  //Print some relevant parameters set for the analysis
  if(! opt)
    return;
  
  printf("***** Print: %s %s ******\n", GetName(), GetTitle() ) ;
  
  if(fCTSFiducialCut)
  {
    Int_t netaregions =  fCTSFidCutMaxEta->GetSize();
    Int_t nphiregions =  fCTSFidCutMaxPhi->GetSize();
    printf(">> CTS Fiducial regions : phi %d eta %d\n", netaregions, nphiregions) ;
    for(Int_t ieta = 0; ieta < netaregions; ieta++)
      printf(" region %d : %3.2f < eta < %3.2f\n", ieta, fCTSFidCutMinEta->GetAt(ieta), fCTSFidCutMaxEta->GetAt(ieta)) ;
    for(Int_t iphi = 0; iphi < nphiregions; iphi++)
      printf(" region %d : %3.1f < phi < %3.1f\n", iphi, fCTSFidCutMinPhi->GetAt(iphi), fCTSFidCutMaxPhi->GetAt(iphi)) ; 
  }
  else printf(">>No fiducial cuts in CTS\n");
  
  if(fEMCALFiducialCut)
  {
    Int_t netaregions =  fEMCALFidCutMaxEta->GetSize();
    Int_t nphiregions =  fEMCALFidCutMaxPhi->GetSize();
    printf(">>EMCAL Fiducial regions : phi %d eta %d\n", netaregions, nphiregions) ;
    for(Int_t ieta = 0; ieta < netaregions; ieta++)
      printf(" region %d : %3.2f < eta < %3.2f\n", ieta, fEMCALFidCutMinEta->GetAt(ieta), fEMCALFidCutMaxEta->GetAt(ieta)) ;
    for(Int_t iphi = 0; iphi < nphiregions; iphi++)
      printf(" region %d : %3.1f < phi < %3.1f\n", iphi, fEMCALFidCutMinPhi->GetAt(iphi), fEMCALFidCutMaxPhi->GetAt(iphi)) ; 
  }
  else printf(">>No fiducial cuts in EMCAL\n");
  
  if(fPHOSFiducialCut)
  {
    Int_t netaregions =  fPHOSFidCutMaxEta->GetSize();
    Int_t nphiregions =  fPHOSFidCutMaxPhi->GetSize();
    printf(">>PHOS Fiducial regions : phi %d eta %d\n", netaregions, nphiregions) ;
    for(Int_t ieta = 0; ieta < netaregions; ieta++)
      printf(" region %d : %3.2f < eta < %3.2f\n", ieta, fPHOSFidCutMinEta->GetAt(ieta), fPHOSFidCutMaxEta->GetAt(ieta)) ;
    for(Int_t iphi = 0; iphi < nphiregions; iphi++)
      printf(" region %d : %3.1f < phi < %3.1f\n", iphi, fPHOSFidCutMinPhi->GetAt(iphi), fPHOSFidCutMaxPhi->GetAt(iphi)) ; 
  }
  else printf(">>No fiducial cuts in PHOS\n");
  
  if(fDCALFiducialCut)
  {
    Int_t netaregions =  fDCALFidCutMaxEta->GetSize();
    Int_t nphiregions =  fDCALFidCutMaxPhi->GetSize();
    printf(">>DCAL Fiducial regions : phi %d eta %d\n", netaregions, nphiregions) ;
    for(Int_t ieta = 0; ieta < netaregions; ieta++)
      printf(" region %d : %3.2f < eta < %3.2f\n", ieta, fDCALFidCutMinEta->GetAt(ieta), fDCALFidCutMaxEta->GetAt(ieta)) ;
    for(Int_t iphi = 0; iphi < nphiregions; iphi++)
      printf(" region %d : %3.1f < phi < %3.1f\n", iphi, fDCALFidCutMinPhi->GetAt(iphi), fDCALFidCutMaxPhi->GetAt(iphi)) ;
  }
  else printf(">>No fiducial cuts in DCAL\n");
  
  printf("    \n") ;
  
} 

//_______________________________________________________________________________________
void AliFiducialCut::SetSimpleCTSFiducialCut(Float_t eta, Float_t minphi, Float_t maxphi)
{
  
  //Method to set simple acceptance cut to CTS
  
  fCTSFidCutMinEta->Set(1);
  fCTSFidCutMaxEta->Set(1);
  fCTSFidCutMinPhi->Set(1);
  fCTSFidCutMaxPhi->Set(1);
  
  fCTSFidCutMinEta->SetAt(-eta,0);
  fCTSFidCutMaxEta->SetAt( eta,0);
  fCTSFidCutMinPhi->SetAt(minphi,0);
  fCTSFidCutMaxPhi->SetAt(maxphi,0);
  
}

//_________________________________________________________________________________________
void AliFiducialCut::SetSimpleEMCALFiducialCut(Float_t eta, Float_t minphi, Float_t maxphi)
{
  //Method to set simple acceptance cut to EMCAL
  
  fEMCALFidCutMinEta->Set(1);
  fEMCALFidCutMaxEta->Set(1);
  fEMCALFidCutMinPhi->Set(1);
  fEMCALFidCutMaxPhi->Set(1);
  
  fEMCALFidCutMinEta->SetAt(-eta,0);
  fEMCALFidCutMaxEta->SetAt( eta,0);
  fEMCALFidCutMinPhi->SetAt(minphi,0);
  fEMCALFidCutMaxPhi->SetAt(maxphi,0);
  
}

//________________________________________________________________________________________
void AliFiducialCut::SetSimplePHOSFiducialCut(Float_t eta, Float_t minphi, Float_t maxphi)
{
  //Method to set simple acceptance cut to PHOS
  
  fPHOSFidCutMinEta->Set(1);
  fPHOSFidCutMaxEta->Set(1);
  fPHOSFidCutMinPhi->Set(1);
  fPHOSFidCutMaxPhi->Set(1);
  
  fPHOSFidCutMinEta->SetAt(-eta,0);
  fPHOSFidCutMaxEta->SetAt(eta,0);
  fPHOSFidCutMinPhi->SetAt(minphi,0);
  fPHOSFidCutMaxPhi->SetAt(maxphi,0);
  
}

//_________________________________________________________________________________________
void AliFiducialCut::SetSimpleDCALFiducialCut(Float_t eta, Float_t minphi, Float_t maxphi)
{
  //Method to set simple acceptance cut to DCAL
  
  fDCALFidCutMinEta->Set(1);
  fDCALFidCutMaxEta->Set(1);
  fDCALFidCutMinPhi->Set(1);
  fDCALFidCutMaxPhi->Set(1);
  
  fDCALFidCutMinEta->SetAt(-eta,0);
  fDCALFidCutMaxEta->SetAt( eta,0);
  fDCALFidCutMinPhi->SetAt(minphi,0);
  fDCALFidCutMaxPhi->SetAt(maxphi,0);
  
}


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