11-feb-2004 NvE In script "gcclib" the option -Wno-long-long added to prevent warning...
authornick <nick@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 13 Feb 2004 11:08:16 +0000 (11:08 +0000)
committernick <nick@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 13 Feb 2004 11:08:16 +0000 (11:08 +0000)
                of type "long long" in Rtypes.h
12-feb-2004 NvE In AliCollider::MakeEvent the statement "char* name" was replaced by "char name[16]" to
                comply with TPythia6 convention. Also the hardcoded values of the p and n masses have
                been replaced by masses obtained from the Pythia system via a call to GetPMAS().
                Because of a bug in TPythia6 the function Pymass() couldn't be used directly.
13-feb-2004 NvE AliCollider::GetPyname introduced to provide a correctly stripped character string
                for the particle names. The name returned by TPythia6::Pyname contains trailing
                characters due to an incorrect stripping process.
                AliCollider::MakeEvent was updated accordingly to make use of this new memberfunction.

RALICE/AliCollider.cxx
RALICE/AliCollider.h
RALICE/history.txt
RALICE/scripts/gcclib

index 7d570706edc176cd1ebc5345b261ef6706d6dd4a..87f05f30e91a862f0c4b5b4f4288f7fd7492bf8f 100644 (file)
@@ -13,7 +13,7 @@
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
 
-// $Id: AliCollider.cxx,v 1.8 2003/12/18 09:28:06 nick Exp $
+// $Id: AliCollider.cxx,v 1.9 2004/01/12 08:23:22 nick Exp $
 
 ///////////////////////////////////////////////////////////////////////////
 // Class AliCollider
 //
 //
 //--- Author: Nick van Eijndhoven 22-nov-2002 Utrecht University
-//- Modified: NvE $Date: 2003/12/18 09:28:06 $ Utrecht University
+//- Modified: NvE $Date: 2004/01/12 08:23:22 $ Utrecht University
 ///////////////////////////////////////////////////////////////////////////
 
 #include "AliCollider.h"
@@ -573,7 +573,7 @@ void AliCollider::MakeEvent(Int_t npt,Int_t mlist,Int_t medit)
 
  Int_t kf=0;
  Float_t charge=0,mass=0;
char* name="";
TString name;
 
  Int_t ntypes=4;
 
@@ -651,8 +651,8 @@ void AliCollider::MakeEvent(Int_t npt,Int_t mlist,Int_t medit)
    {
     kf=GetK(jpart,2);
     charge=Pychge(kf)/3.;
-    Pyname(kf,name);
     mass=GetP(jpart,5);
+    name=GetPyname(kf);
 
     // 3-momentum in GeV/c
     v[0]=GetP(jpart,1);
@@ -671,7 +671,7 @@ void AliCollider::MakeEvent(Int_t npt,Int_t mlist,Int_t medit)
     t.Reset();
     t.SetId(ntk);
     t.SetParticleCode(kf);
-    t.SetName(name);
+    t.SetName(name.Data());
     t.SetCharge(charge);
     t.SetMass(mass);
     t.Set3Momentum(p);
@@ -750,8 +750,6 @@ void AliCollider::MakeEvent(Int_t npt,Int_t mlist,Int_t medit)
  // Include the spectator tracks in the event structure.
  if (fNucl && specmode)
  {
-  Float_t pmass=0.938272;
-  Float_t nmass=0.93956533;
   v[0]=0;
   v[1]=0;
   v[2]=0;
@@ -772,15 +770,15 @@ void AliCollider::MakeEvent(Int_t npt,Int_t mlist,Int_t medit)
   {
    kf=2212; // Projectile spectator protons
    charge=Pychge(kf)/3.;
-   mass=pmass;
-   Pyname(kf,name);
+   mass=GetPMAS(Pycomp(kf),1);
+   name=GetPyname(kf);
    for (Int_t iprojp=1; iprojp<=zp; iprojp++)
    {
     nspec++;
     t.Reset();
     t.SetId(-nspec);
     t.SetParticleCode(kf);
-    t.SetName(name);
+    t.SetName(name.Data());
     t.SetTitle("Projectile spectator proton");
     t.SetCharge(charge);
     t.SetMass(mass);
@@ -792,15 +790,15 @@ void AliCollider::MakeEvent(Int_t npt,Int_t mlist,Int_t medit)
 
    kf=2112; // Projectile spectator neutrons
    charge=Pychge(kf)/3.;
-   mass=nmass;
-   Pyname(kf,name);
+   mass=GetPMAS(Pycomp(kf),1);
+   name=GetPyname(kf);
    for (Int_t iprojn=1; iprojn<=(ap-zp); iprojn++)
    {
     nspec++;
     t.Reset();
     t.SetId(-nspec);
     t.SetParticleCode(kf);
-    t.SetName(name);
+    t.SetName(name.Data());
     t.SetTitle("Projectile spectator neutron");
     t.SetCharge(charge);
     t.SetMass(mass);
@@ -815,15 +813,15 @@ void AliCollider::MakeEvent(Int_t npt,Int_t mlist,Int_t medit)
   {
    kf=2212; // Target spectator protons
    charge=Pychge(kf)/3.;
-   mass=pmass;
-   Pyname(kf,name);
+   mass=GetPMAS(Pycomp(kf),1);
+   name=GetPyname(kf);
    for (Int_t itargp=1; itargp<=zt; itargp++)
    {
     nspec++;
     t.Reset();
     t.SetId(-nspec);
     t.SetParticleCode(kf);
-    t.SetName(name);
+    t.SetName(name.Data());
     t.SetTitle("Target spectator proton");
     t.SetCharge(charge);
     t.SetMass(mass);
@@ -835,15 +833,15 @@ void AliCollider::MakeEvent(Int_t npt,Int_t mlist,Int_t medit)
 
    kf=2112; // Target spectator neutrons
    charge=Pychge(kf)/3.;
-   mass=nmass;
-   Pyname(kf,name);
+   mass=GetPMAS(Pycomp(kf),1);
+   name=GetPyname(kf);
    for (Int_t itargn=1; itargn<=(at-zt); itargn++)
    {
     nspec++;
     t.Reset();
     t.SetId(-nspec);
     t.SetParticleCode(kf);
-    t.SetName(name);
+    t.SetName(name.Data());
     t.SetTitle("Target spectator neutron");
     t.SetCharge(charge);
     t.SetMass(mass);
@@ -1068,3 +1066,24 @@ Float_t AliCollider::GetSpectatorPmin()
  return fSpecpmin;
 }
 ///////////////////////////////////////////////////////////////////////////
+TString AliCollider::GetPyname(Int_t kf)
+{
+// Provide the correctly truncated Pythia particle name for PGD code kf
+//
+// The TPythia6::Pyname returned name is copied into a TString and truncated
+// at the first blank to prevent funny trailing characters due to incorrect
+// stripping of empty characters in TPythia6::Pyname.
+// The truncation at the first blank is allowed due to the Pythia convention
+// that particle names never contain blanks.
+ char name[16];
+ TString sname;
+ Pyname(kf,name);
+ sname=name[0];
+ for (Int_t i=1; i<16; i++)
+ {
+  if (name[i]==' ') break;
+  sname=sname+name[i];
+ }
+ return sname;
+}
+///////////////////////////////////////////////////////////////////////////
index 53bb0016d52f730de95ffcfdc77a3eba8cfbca05..a0f8856e0daed61fdf30f54998bb518d88c6cfbd 100644 (file)
@@ -3,7 +3,7 @@
 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
  * See cxx source for full Copyright notice                               */
 
-// $Id: AliCollider.h,v 1.6 2003/12/18 09:28:06 nick Exp $
+// $Id: AliCollider.h,v 1.7 2004/01/12 08:23:22 nick Exp $
 
 #include "TPythia6.h"
 #include "TString.h"
@@ -68,7 +68,8 @@ class AliCollider : public TPythia6
 
   Int_t IsSelected();   // Check whether (sub)event passed the selection criteria
   void GetFractions(Float_t zp,Float_t ap,Float_t zt,Float_t at); // Determine various N-N collision fractions
+  TString GetPyname(Int_t kf); // Provide the correctly truncated Pythia particle name for PDG code kf  
 
- ClassDef(AliCollider,6) // Pythia based universal physics event generator
+ ClassDef(AliCollider,7) // Pythia based universal physics event generator
 };
 #endif
index f225a424dc42ca18c09b4da77f829ffd20d68836..470696d6efcc2a9bb4321d2cfd9cc48bc665d91e 100644 (file)
                 via the TTimeStamp constructor. This is only possible with ROOT version 3.10/02 or later,
                 since for earlier versions the TTimeStamp::Set memberfunctions were erroneously declared
                 private. 
+11-feb-2004 NvE In script "gcclib" the option -Wno-long-long added to prevent warnings from the usage
+                of type "long long" in Rtypes.h
+12-feb-2004 NvE In AliCollider::MakeEvent the statement "char* name" was replaced by "char name[16]" to
+                comply with TPythia6 convention. Also the hardcoded values of the p and n masses have
+                been replaced by masses obtained from the Pythia system via a call to GetPMAS(). 
+                Because of a bug in TPythia6 the function Pymass() couldn't be used directly.
+13-feb-2004 NvE AliCollider::GetPyname introduced to provide a correctly stripped character string
+                for the particle names. The name returned by TPythia6::Pyname contains trailing
+                characters due to an incorrect stripping process.
+                AliCollider::MakeEvent was updated accordingly to make use of this new memberfunction.
index 1f1fbd84b1706197e27ccb5fc35a7d128bee538c..c1d707fcab7f3276c14b4e94c469dee9dd668bbd 100644 (file)
@@ -1,3 +1,4 @@
+#!/bin/sh
 ### Shell script to create a ROOT loadable GCC shared lib out of .cxx source code
 ###
 ### NvE 23-may-2000 UU-SAP Utrecht
@@ -8,7 +9,7 @@ lib=ralice.so
 ### The option string for GCC shared lib compilation and linking ***
 ### For the GCC ROOT loadable shared lib the strict requirements are ***
 ### dropped to avoid many warnings from the rootcint generated code ***
-gccroot="-shared -g0 -ansi -pedantic -Wall -I$ROOTSYS/include -o $lib"
+gccroot="-shared -g0 -ansi -pedantic -Wall -Wno-long-long -I$ROOTSYS/include -o $lib"
 #
 echo "lib = " $lib
 echo "gccroot = " $gccroot