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

/* $Id$ */

//======================================================================
//  AliGenPHOSlib class contains parameterizations of the
//  pion, kaon, eta, omega, etaprime, phi and baryon (proton, 
//  antiproton, neutron and anti-neutron) particles for the 
//  study of the neutral background in PHOS detector. 
//  These parameterizations are used by the 
//  AliGenParam  class:
//  AliGenParam(npar, param,  AliGenPHOSlib::GetPt(param),
//                            AliGenPHOSlib::GetY(param),
//                            AliGenPHOSlib::GetIp(param) )
//  param represents the particle to be simulated : 
//  Pion, Kaon, Eta, Omega, Etaprime, Phi or Baryon    
//  Pt distributions are calculated from the transverse mass scaling 
//  with Pions, using the PtScal function taken from AliGenMUONlib 
//  version aliroot 3.01
//
//     Gines MARTINEZ. Laurent APHECETCHE and Yves SCHUTZ
//      GPS @ SUBATECH,  Nantes , France  (October 1999)
//     http://www-subatech.in2p3.fr/~photons/subatech
//     martinez@subatech.in2p3.fr
//  Additional particle species simulation options has been added: 
//  Charged Pion, Charged Kaons, KLong Proton, Anti-Proton, Neutron, 
//  Anti-Neutron --> Changes made by Gustavo Conesa in November 2004
//  Add flat Omega(782) distribution in Nov. 2010 by Renzhuo WAN
//======================================================================

#include "TMath.h"
#include "TRandom.h"

#include "AliGenPHOSlib.h"

ClassImp(AliGenPHOSlib)

//======================================================================
//    P  I  O  N  S
//    (From GetPt, GetY and GetIp as param = Pion)
//    Transverse momentum distribution" PtPion 
//    Rapidity distribution YPion
//    Particle distribution IdPion  111, 211 and -211 (pi0, pi+ and pi-)
//
 Double_t AliGenPHOSlib::PtPion(const Double_t *px, const Double_t *)
{
//     Pion transverse momentum distribtuion taken 
//     from AliGenMUONlib class, version 3.01 of aliroot
//     PT-PARAMETERIZATION CDF, PRL 61(88) 1819
//     POWER LAW FOR PT > 500 MEV
//     MT SCALING BELOW (T=160 MEV)
//
  const Double_t kp0 = 1.3;
  const Double_t kxn = 8.28;
  const Double_t kxlim=0.5;
  const Double_t kt=0.160;
  const Double_t kxmpi=0.139;
  const Double_t kb=1.;
  Double_t y, y1, kxmpi2, ynorm, a;
  Double_t x=*px;
  //
  y1=TMath::Power(kp0/(kp0+kxlim),kxn);
  kxmpi2=kxmpi*kxmpi;
  ynorm=kb*(TMath::Exp(-sqrt(kxlim*kxlim+kxmpi2)/kt));
  a=ynorm/y1;
  if (x > kxlim)
    y=a*TMath::Power(kp0/(kp0+x),kxn);
  else
    y=kb*TMath::Exp(-sqrt(x*x+kxmpi2)/kt);
  return y*x;
}
 Double_t AliGenPHOSlib::YPion( const Double_t *py, const Double_t *)
{
//
// pion y-distribution
//

  const Double_t ka    = 7000.;   
  const Double_t kdy   = 4.;

  Double_t y=TMath::Abs(*py);
  //
  Double_t ex = y*y/(2*kdy*kdy);
  return ka*TMath::Exp(-ex);
}

Int_t AliGenPHOSlib::IpPion(TRandom */*ran*/)
{
//                 particle composition pi+, pi0, pi-
//

        return 111  ;
}
 Int_t AliGenPHOSlib::IpChargedPion(TRandom *ran)
{
//                 particle composition pi+, pi0, pi-
//

     Float_t random = ran->Rndm();

     if ( (2.*random)  < 1. ) 
       {
	 return 211 ;
       } 
     else
       {  
	 return -211 ;
       }
}

//End Pions
//======================================================================
//    Pi 0 Flat Distribution
//    Transverse momentum distribution PtPi0Flat
//    Rapidity distribution YPi0Flat
//    Particle distribution IdPi0Flat  111 (pi0)
//

Double_t AliGenPHOSlib::PtPi0(const Double_t * px, const Double_t *)
{
//     Pion transverse momentum 
    const Double_t kp0 =1.35; 
    const Double_t kxn= 6.18;
    return TMath::Power(kp0 /(kp0 + px[0]), kxn);
}

Double_t AliGenPHOSlib::PtPi0Flat(const Double_t */*px*/, const Double_t *)
{
//     Pion transverse momentum flat distribution 

return 1;

}

Double_t AliGenPHOSlib::YPi0Flat( const Double_t */*py*/, const Double_t *)
{

// pion y-distribution
//
  return 1.;
}

 Int_t AliGenPHOSlib::IpPi0Flat(TRandom *)
{

//                 particle composition pi0
//
        return 111 ;
}
// End Pi0Flat
//============================================================= 
//
 Double_t AliGenPHOSlib::PtScal(Double_t pt, Int_t np)
{
// Mt-scaling
// Fonction for the calculation of the Pt distribution for a 
// given particle np, from the pion Pt distribution using the 
// mt scaling. This function was taken from AliGenMUONlib 
// aliroot version 3.01, and was extended for baryons
// np = 1=>Pions 2=>Kaons 3=>Etas 4=>Omegas 5=>ETA' 6=>PHI
//      7=>BARYONS-BARYONBARS

  //    SCALING EN MASSE PAR RAPPORT A PTPI
  //    MASS                0=>PI,  1=>K, 2=>ETA, 3=>OMEGA,  4=>ETA',5=>PHI
  const Double_t khm[10] = {0.1396, 0.494,  0.547,    0.782,   0.957,   1.02, 
  //    MASS               6=>BARYON-BARYONBAR  
                                         0.938, 0. , 0., 0.};
  //     VALUE MESON/PI AT 5 GEV
  const Double_t kfmax[10]={1., 1., 1., 1., 1., 1., 1., 1., 1., 1.};
  Double_t f5=TMath::Power(((sqrt(100.018215)+2.)/(sqrt(100.+khm[np]*khm[np])+2.0)),12.3);
  Double_t kfmax2=f5/kfmax[np];
  // PIONS
  Double_t ptpion=100.*PtPion(&pt, (Double_t*) 0);
  Double_t fmtscal=TMath::Power(((sqrt(pt*pt+0.018215)+2.)/
                                 (sqrt(pt*pt+khm[np]*khm[np])+2.0)),12.3)/ kfmax2;
  return fmtscal*ptpion;

}
// End Scaling
//============================================================================
//    K  A  O  N  S
 Double_t AliGenPHOSlib::PtKaon( const Double_t *px, const Double_t *)
{
//                kaon
//                pt-distribution
//____________________________________________________________

  return PtScal(*px,1);  //  1==> Kaon in the PtScal function
}

 Double_t AliGenPHOSlib::YKaon( const Double_t *py, const Double_t *)
{
// y-distribution
//____________________________________________________________

  const Double_t ka    = 1000.;
  const Double_t kdy   = 4.;


  Double_t y=TMath::Abs(*py);
  //
  Double_t ex = y*y/(2*kdy*kdy);
  return ka*TMath::Exp(-ex);
}

 Int_t AliGenPHOSlib::IpKaon(TRandom *ran)
{
//                 particle composition
//

    Float_t random = ran->Rndm();
    Float_t random2 = ran->Rndm();
    if (random2 < 0.5) 
    {
      if (random < 0.5) {       
        return  321;   //   K+
      } else {
        return -321;   // K-
      }
    }
    else
    {  
      if (random < 0.5) {       
        return  130;   // K^0 short
      } else {  
        return  310;   // K^0 long
      }
    }
}

 Int_t AliGenPHOSlib::IpChargedKaon(TRandom *ran)
{
//                 particle composition
//
  
  Float_t random = ran->Rndm();
  
  if (random < 0.5) {       
    return  321;   //   K+
  } else {
    return -321;   // K-
  }
  
  
}
Int_t AliGenPHOSlib::IpKaon0L(TRandom *)
{
  //                 particle composition
  //
  
	return  130;   // K^0 long
}
// End Kaons
//============================================================================
//============================================================================
//   E  T  A  S
 Double_t AliGenPHOSlib::PtEta( const Double_t *px, const Double_t *)
{
//                etas
//                pt-distribution
//____________________________________________________________

  return PtScal(*px,2);  //  2==> Eta in the PtScal function
}

 Double_t AliGenPHOSlib::YEta( const Double_t *py, const Double_t *)
{
// y-distribution
//____________________________________________________________

  const Double_t ka    = 1000.;
  const Double_t kdy   = 4.;


  Double_t y=TMath::Abs(*py);
  //
  Double_t ex = y*y/(2*kdy*kdy);
  return ka*TMath::Exp(-ex);
}

 Int_t AliGenPHOSlib::IpEta(TRandom *)
{
//                 particle composition
//

        return  221;   //   eta
}
// End Etas

//======================================================================
//    Eta Flat Distribution
//    Transverse momentum distribution PtEtaFlat
//    Rapidity distribution YEtaFlat
//    Particle distribution IdEtaFlat  111 (pi0)
//

Double_t AliGenPHOSlib::PtEtaFlat(const Double_t */*px*/, const Double_t *)
{
//     Eta transverse momentum flat distribution 

  return 1;

}

Double_t AliGenPHOSlib::YEtaFlat( const Double_t */*py*/, const Double_t *)
{
//
// pion y-distribution
//
  return 1.;
}

 Int_t AliGenPHOSlib::IpEtaFlat(TRandom *)
{
//
//                 particle composition eta
//
        return 221 ;
}
// End EtaFlat
//============================================================================
//============================================================================
//    O  M  E  G  A  S
 Double_t AliGenPHOSlib::PtOmega( const Double_t *px, const Double_t *)
{
// omegas
//                pt-distribution
//____________________________________________________________

  return PtScal(*px,3);  //  3==> Omega in the PtScal function
}

 Double_t AliGenPHOSlib::YOmega( const Double_t *py, const Double_t *)
{
// y-distribution
//____________________________________________________________

  const Double_t ka    = 1000.;
  const Double_t kdy   = 4.;


  Double_t y=TMath::Abs(*py);
  //
  Double_t ex = y*y/(2*kdy*kdy);
  return ka*TMath::Exp(-ex);
}

 Int_t AliGenPHOSlib::IpOmega(TRandom *)
{
//                 particle composition
//

        return  223;   // Omega
}
// End Omega
//============================================================================
//======================================================================
//    Omega(782) Flat Distribution
//    Transverse momentum distribution PtOmegaFlat
//    Rapidity distribution YOmegaFlat
//    Particle distribution IdOmegaFlat  223(0mega)
//

Double_t AliGenPHOSlib::PtOmegaFlat(const Double_t */*px*/, const Double_t *)
{
//     omega transverse momentum flat distribution 

return 1;

}

Double_t AliGenPHOSlib::YOmegaFlat( const Double_t */*py*/, const Double_t *)
{

// omega y-distribution
//
  return 1.;
}

 Int_t AliGenPHOSlib::IpOmegaFlat(TRandom *)
{

//                 particle composition omega
//
        return 223 ;
}
// End OmegaFlat


//============================================================================
//    E  T  A  P  R  I  M  E
 Double_t AliGenPHOSlib::PtEtaprime( const Double_t *px, const Double_t *)
{
// etaprime
//                pt-distribution
//____________________________________________________________

  return PtScal(*px,4);  //  4==> Etaprime in the PtScal function
}

 Double_t AliGenPHOSlib::YEtaprime( const Double_t *py, const Double_t *)
{
// y-distribution
//____________________________________________________________

  const Double_t ka    = 1000.;
  const Double_t kdy   = 4.;


  Double_t y=TMath::Abs(*py);
  //
  Double_t ex = y*y/(2*kdy*kdy);
  return ka*TMath::Exp(-ex);
}

 Int_t AliGenPHOSlib::IpEtaprime(TRandom *)
{
//                 particle composition
//

        return  331;   //   Etaprime
}
// End EtaPrime
//===================================================================
//============================================================================
//    P  H  I   S
 Double_t AliGenPHOSlib::PtPhi( const Double_t *px, const Double_t *)
{
// phi
//                pt-distribution
//____________________________________________________________

  return PtScal(*px,5);  //  5==> Phi in the PtScal function
}

 Double_t AliGenPHOSlib::YPhi( const Double_t *py, const Double_t *)
{
// y-distribution
//____________________________________________________________

  const Double_t ka    = 1000.;
  const Double_t kdy   = 4.;


  Double_t y=TMath::Abs(*py);
  //
  Double_t ex = y*y/(2*kdy*kdy);
  return ka*TMath::Exp(-ex);
}

 Int_t AliGenPHOSlib::IpPhi(TRandom *)
{
//                 particle composition
//
    
        return  333;   //   Phi      
}
// End Phis
//===================================================================
//============================================================================
//    B  A  R  Y  O  N  S  == protons, protonsbar, neutrons, and neutronsbars
 Double_t AliGenPHOSlib::PtBaryon( const Double_t *px, const Double_t *)
{
// baryons
//                pt-distribution
//____________________________________________________________

  return PtScal(*px,6);  //  6==> Baryon in the PtScal function
}

 Double_t AliGenPHOSlib::YBaryon( const Double_t *py, const Double_t *)
{
// y-distribution
//____________________________________________________________

  const Double_t ka    = 1000.;
  const Double_t kdy   = 4.;


  Double_t y=TMath::Abs(*py);
  //
  Double_t ex = y*y/(2*kdy*kdy);
  return ka*TMath::Exp(-ex);
}

 Int_t AliGenPHOSlib::IpBaryon(TRandom *ran)
{
//                 particle composition
//

    Float_t random = ran->Rndm();
    Float_t random2 = ran->Rndm();
    if (random2 < 0.5) 
    {
      if (random < 0.5) {       
        return  2212;   //   p
      } else {
        return -2212;   // pbar
      }
    }
    else
    {  
      if (random < 0.5) {       
        return  2112;   // n
      } else {  
        return -2112;   // n bar
      }
    }
}

 Int_t AliGenPHOSlib::IpProton(TRandom *)
{
//                 particle composition
//  
        return  2212;   //   p

}
 Int_t AliGenPHOSlib::IpAProton(TRandom *)
{
//                 particle composition
//  
        return  -2212;   //   p bar

}

 Int_t AliGenPHOSlib::IpNeutron(TRandom *)
{
//                 particle composition
//  
        return  2112;   //   n

}
 Int_t AliGenPHOSlib::IpANeutron(TRandom *)
{
//                 particle composition
//  
        return  -2112;   //   n

}
// End Baryons
//===================================================================

typedef Double_t (*GenFunc) (const Double_t*,  const Double_t*);
GenFunc AliGenPHOSlib::GetPt(Int_t param, const char* /*tname*/) const
{
// Return pinter to pT parameterisation
    GenFunc func;
    
    switch (param)
      {
      case kPion:     
        func=PtPion;
        break;
      case kPi0:     
        func=PtPi0;
        break;
      case kPi0Flat:     
        func=PtPi0Flat;
        break;
      case kKaon:
        func=PtKaon;
        break;
      case kEta:
        func=PtEta;
        break;
      case kEtaFlat:
        func=PtEtaFlat;
        break;
      case kOmega:
        func=PtOmega;
        break;
      case kOmegaFlat:
        func=PtOmegaFlat;
      break;
      case kEtaPrime:
        func=PtEtaprime;
        break;
      case kBaryon:
        func=PtBaryon;
        break;
      default:
        func=0;
        printf("<AliGenPHOSlib::GetPt> unknown parametrisationn");
      }
    return func;
}

GenFunc AliGenPHOSlib::GetY(Int_t param, const char* /*tname*/) const
{
  // Return pointer to Y parameterisation
  GenFunc func;
  switch (param)
    {
    case kPion:
      func=YPion;
      break;
    case kPi0:     
    case kPi0Flat:
      func=YPi0Flat;
      break;
    case kKaon:
      func=YKaon;
      break;
    case kEta:
      func=YEta;
      break;
    case kEtaFlat:
      func=YEtaFlat;
      break;
    case kOmega:
      func=YOmega;
      break;
    case kOmegaFlat:
      func=YOmegaFlat;
      break;
    case kEtaPrime:
      func=YEtaprime;
      break;
    case kPhi:
      func=YPhi;
      break;
    case kBaryon:
      func=YBaryon;
      break;
    default:
      func=0;
      printf("<AliGenPHOSlib::GetY> unknown parametrisationn");
    }
  return func;
}
typedef Int_t (*GenFuncIp) (TRandom *);
GenFuncIp AliGenPHOSlib::GetIp(Int_t param,  const char* /*tname*/) const
{
  // Return pointer to particle composition
  GenFuncIp func;
  switch (param)
    {
    case kPion:       
      func=IpPion;
      break;
    case kChargedPion:       
      func=IpChargedPion;
      break;
    case kPi0:     
    case kPi0Flat:       
      func=IpPi0Flat;
      break;
    case kKaon:
      func=IpKaon;
      break;
    case kChargedKaon:
      func=IpChargedKaon;
      break;
    case kKaon0L:
      func=IpKaon0L;
      break;
    case kEta:
      func=IpEta;
      break;
    case kEtaFlat:
      func=IpEtaFlat;
      break;
      
    case kOmega:
      func=IpOmega;
      break;
    case kOmegaFlat:
      func=IpOmegaFlat;
      break;
    case kEtaPrime:
      func=IpEtaprime;
      break;
    case kPhi:
      func=IpPhi;
      break;
    case kBaryon:
      func=IpBaryon;
      break;
    case kProton:
      func=IpProton;
      break;
    case kAProton:
      func=IpAProton;
      break;
    case kNeutron:
      func=IpNeutron;
      break;
    case kANeutron:
      func=IpANeutron;
      break;
      
    default:
      func=0;
      printf("<AliGenPHOSlib::GetIp> unknown parametrisationn");
    }
  return func;
}

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