* provided "as is" without express or implied warranty. *
**************************************************************************/
-/*
-$Log$
-Revision 1.7.10.1 2002/06/10 14:57:41 hristov
-Merged with v3-08-02
-
-Revision 1.10 2002/05/02 09:40:50 morsch
-Recover mods from Rev. 1.8
-
-Revision 1.9 2002/04/23 12:54:29 morsch
-New options kPi0Flat y kEtaFlat (Gustavo Conesa)
-
-Revision 1.7 2001/03/09 13:01:41 morsch
-- enum constants for paramterisation type (particle family) moved to AliGen*lib.h
-- use AliGenGSIlib::kUpsilon, AliGenPHOSlib::kEtaPrime to access the constants
-
-Revision 1.6 2000/11/30 07:12:50 alibrary
-Introducing new Rndm and QA classes
-
-Revision 1.5 2000/06/29 21:08:27 morsch
-All paramatrisation libraries derive from the pure virtual base class AliGenLib.
-This allows to pass a pointer to a library directly to AliGenParam and avoids the
-use of function pointers in Config.C.
-
-Revision 1.4 2000/06/14 15:21:05 morsch
-Include clean-up (IH)
-
-Revision 1.3 2000/06/09 20:32:54 morsch
-All coding rule violations except RS3 corrected
-
-Revision 1.2 1999/11/04 11:30:48 fca
-Improve comments
-
-Revision 1.1 1999/11/03 17:43:20 fca
-New version from G.Martinez & A.Morsch
-
-*/
+/* $Id$ */
//======================================================================
// AliGenPHOSlib class contains parameterizations of the
// 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
//======================================================================
#include "TMath.h"
}
}
}
+ 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
//======================================================================
// Particle distribution IdPi0Flat 111 (pi0)
//
-Double_t AliGenPHOSlib::PtPi0Flat(Double_t *px, Double_t *)
+Double_t AliGenPHOSlib::PtPi0Flat(Double_t */*px*/, Double_t *)
{
// Pion transverse momentum flat distribution
}
-Double_t AliGenPHOSlib::YPi0Flat( Double_t *py, Double_t *)
+Double_t AliGenPHOSlib::YPi0Flat( Double_t */*py*/, Double_t *)
{
// pion y-distribution
}
}
}
+
+ 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
//============================================================================
//============================================================================
// Particle distribution IdEtaFlat 111 (pi0)
//
-Double_t AliGenPHOSlib::PtEtaFlat(Double_t *px, Double_t *)
+Double_t AliGenPHOSlib::PtEtaFlat(Double_t */*px*/, Double_t *)
{
// Eta transverse momentum flat distribution
}
-Double_t AliGenPHOSlib::YEtaFlat( Double_t *py, Double_t *)
+Double_t AliGenPHOSlib::YEtaFlat( Double_t */*py*/, Double_t *)
{
//
// pion y-distribution
//
return 221 ;
}
-// End Pi0Flat
+// End EtaFlat
//============================================================================
//============================================================================
// O M E G A S
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) (Double_t*, Double_t*);
- GenFunc AliGenPHOSlib::GetPt(Int_t param, const char* tname) const
+GenFunc AliGenPHOSlib::GetPt(Int_t param, const char* /*tname*/) const
{
// Return pinter to pT parameterisation
GenFunc func;
switch (param)
- {
- case kPion:
+ {
+ case kPion:
func=PtPion;
break;
- case kPi0Flat:
+ case kPi0Flat:
func=PtPi0Flat;
break;
- case kKaon:
+ case kKaon:
func=PtKaon;
break;
- case kEta:
+ case kEta:
func=PtEta;
break;
- case kEtaFlat:
+ case kEtaFlat:
func=PtEtaFlat;
break;
- case kOmega:
+ case kOmega:
func=PtOmega;
break;
- case kEtaPrime:
+ case kEtaPrime:
func=PtEtaprime;
break;
- case kBaryon:
+ case kBaryon:
func=PtBaryon;
break;
- default:
+ default:
func=0;
printf("<AliGenPHOSlib::GetPt> unknown parametrisationn");
- }
+ }
return func;
}
- GenFunc AliGenPHOSlib::GetY(Int_t param, const char* tname) const
+GenFunc AliGenPHOSlib::GetY(Int_t param, const char* /*tname*/) const
{
-// Return pointer to Y parameterisation
- GenFunc func;
- switch (param)
+ // Return pointer to Y parameterisation
+ GenFunc func;
+ switch (param)
{
case kPion:
- func=YPion;
- break;
+ func=YPion;
+ break;
case kPi0Flat:
- func=YPi0Flat;
- break;
+ func=YPi0Flat;
+ break;
case kKaon:
- func=YKaon;
- break;
+ func=YKaon;
+ break;
case kEta:
- func=YEta;
- break;
- case kEtaFlat:
- func=YEtaFlat;
- break;
+ func=YEta;
+ break;
+ case kEtaFlat:
+ func=YEtaFlat;
+ break;
case kOmega:
- func=YOmega;
- break;
+ func=YOmega;
+ break;
case kEtaPrime:
- func=YEtaprime;
- break;
+ func=YEtaprime;
+ break;
case kPhi:
- func=YPhi;
- break;
+ func=YPhi;
+ break;
case kBaryon:
- func=YBaryon;
- break;
+ func=YBaryon;
+ break;
default:
- func=0;
- printf("<AliGenPHOSlib::GetY> unknown parametrisationn");
+ func=0;
+ printf("<AliGenPHOSlib::GetY> unknown parametrisationn");
}
- return func;
+ return func;
}
typedef Int_t (*GenFuncIp) (TRandom *);
- GenFuncIp AliGenPHOSlib::GetIp(Int_t param, const char* tname) const
+GenFuncIp AliGenPHOSlib::GetIp(Int_t param, const char* /*tname*/) const
{
-// Return pointer to particle composition
- GenFuncIp func;
- switch (param)
+ // Return pointer to particle composition
+ GenFuncIp func;
+ switch (param)
{
case kPion:
- func=IpPion;
- break;
+ func=IpPion;
+ break;
+ case kChargedPion:
+ func=IpChargedPion;
+ break;
case kPi0Flat:
- func=IpPi0Flat;
- break;
+ func=IpPi0Flat;
+ break;
case kKaon:
- func=IpKaon;
- break;
+ func=IpKaon;
+ break;
+ case kChargedKaon:
+ func=IpChargedKaon;
+ break;
+ case kKaon0L:
+ func=IpKaon0L;
+ break;
case kEta:
- func=IpEta;
- break;
+ func=IpEta;
+ break;
case kEtaFlat:
- func=IpEtaFlat;
- break;
-
+ func=IpEtaFlat;
+ break;
+
case kOmega:
- func=IpOmega;
- break;
+ func=IpOmega;
+ break;
case kEtaPrime:
- func=IpEtaprime;
- break;
+ func=IpEtaprime;
+ break;
case kPhi:
- func=IpPhi;
- break;
+ func=IpPhi;
+ break;
case kBaryon:
- func=IpBaryon;
- break;
+ 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");
+ func=0;
+ printf("<AliGenPHOSlib::GetIp> unknown parametrisationn");
}
- return func;
+ return func;
}