More user settings for decays.
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 20 Jan 2009 15:57:53 +0000 (15:57 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 20 Jan 2009 15:57:53 +0000 (15:57 +0000)
TDPMjet/AliGenDPMjet.cxx
TDPMjet/AliGenDPMjet.h
TDPMjet/TDPMjet.cxx
TDPMjet/TDPMjet.h

index 32624e6..a315e3d 100644 (file)
@@ -57,6 +57,7 @@ AliGenDPMjet::AliGenDPMjet()
      fNoGammas(0),
      fLHC(0),
      fPi0Decay(0),
+     fDecayAll(0),
      fGenImpPar(0.),
      fProcess(kDpmMb)
 {
@@ -83,6 +84,7 @@ AliGenDPMjet::AliGenDPMjet(Int_t npart)
      fNoGammas(0),
      fLHC(0),
      fPi0Decay(0),
+     fDecayAll(0),
      fGenImpPar(0.),
      fProcess(kDpmMb)
 {
@@ -113,6 +115,7 @@ AliGenDPMjet::AliGenDPMjet(const AliGenDPMjet &/*Dpmjet*/)
      fNoGammas(0),
      fLHC(0),
      fPi0Decay(0),
+     fDecayAll(0),
      fGenImpPar(0.),
      fProcess(kDpmMb)
 {
@@ -146,6 +149,7 @@ void AliGenDPMjet::Init()
     fDPMjet->SetfFCentr(fICentr);  
     fDPMjet->SetbRange(fMinImpactParam, fMaxImpactParam); 
     fDPMjet->SetPi0Decay(fPi0Decay);
+    fDPMjet->SetDecayAll(fDecayAll);
 //
 //  Initialize DPMjet  
 //    
index 588da78..4dc0307 100644 (file)
@@ -44,6 +44,7 @@ class AliGenDPMjet : public AliGenMC
     virtual void    SetSpectators(Int_t spects=1)     {fSpectators = spects;}
     virtual void    SetBoostLHC(Int_t flag=0)         {fLHC        = flag;}
     virtual void    SetPi0Decay(Int_t iPi0)  {fPi0Decay = iPi0;}
+    virtual void    SetDecayAll(Int_t iDec)  {fDecayAll = iDec;}
     virtual void    GetImpactParameterRange(Float_t& bmin, Float_t& bmax)
                        {bmin = fMinImpactParam; bmax = fMaxImpactParam;}
     virtual Int_t   GetSpectators()        {return fSpectators;}
@@ -74,6 +75,7 @@ class AliGenDPMjet : public AliGenMC
     Int_t         fNoGammas;       // Don't write gammas if flag "on"
     Int_t         fLHC;            // Assume LHC as lab frame
     Int_t         fPi0Decay;       // Flag for pi0 decays
+    Int_t         fDecayAll;       // Flag to switch on long-lived particle decays
     Float_t      fGenImpPar;      // GeneratedImpactParameter
     DpmProcess_t  fProcess;        // Process type
     
index aa35249..55ebdd1 100644 (file)
@@ -111,6 +111,7 @@ ClassImp(TDPMjet)
        fBmax(0.),
        fFCentr(0),
        fPi0Decay(0),
+       fDecayAll(0),
        fProcess(kDpmMb)
 {
 // Default Constructor
@@ -133,6 +134,7 @@ TDPMjet::TDPMjet(DpmProcess_t  iproc, Int_t Ip=208, Int_t Ipz=82, Int_t It=208,
       fBmax(0.),
       fFCentr(0),
       fPi0Decay(0),
+      fDecayAll(0),
       fProcess(iproc)
 {  
     printf("TDPMJet Constructor %d %d %d %d \n", Ip, Ipz, It, Itz);
@@ -272,10 +274,13 @@ void TDPMjet::Initialize()
 //  Beam energy and crossing-angle
     fprintf(out, "BEAM      %10.1f%10.1f%10.1f%10.1f%10.1f%10.1f\n",fEpn, fEpn, 0., 0., 0., 0.);
 //  Centrality
-    fprintf(out, "CENTRAL   %10.1f%10.1f%10.1f%10.1f%10.1f%10.1f\n",-1., fBmin, fBmax, 0., 0., 0.);
+    if (fIp > 1. && fIt > 1) 
+       fprintf(out, "CENTRAL   %10.1f%10.1f%10.1f%10.1f%10.1f%10.1f\n",-1., fBmin, fBmax, 0., 0., 0.);
 //  Particle decays
     if (fPi0Decay) 
-    fprintf(out, "PARDECAY  %10.1f%10.1f%10.1f%10.1f%10.1f%10.1f\n", 2., 0., 0., 0., 0., 0.);    
+       fprintf(out, "PARDECAY  %10.1f%10.1f%10.1f%10.1f%10.1f%10.1f\n", 2., 0., 0., 0., 0., 0.);    
+
+    
 //
 //  PHOJET specific
     fprintf(out, "PHOINPUT\n");
@@ -293,6 +298,26 @@ void TDPMjet::Initialize()
         fprintf(out, "PROCESS           0 0 0 0 0 0 1 0\n");
     }
     
+    Int_t iPDG[19] = 
+       {
+//          K0s   pi0  lam   sig+  sig-  tet0
+       310,  111, 3122, 3222, 3112, 3322,
+//          tet- om-    D+      D0     Ds+
+       3312, 3334,  411,  421,  431,
+//          etac lamc+ sigc++ sigc+ sigc0 Ksic+
+        441, 4122, 4222, 4212, 4112, 4232,
+//         Ksic0 sig0 
+       4132, 3212
+       };
+    
+    
+    Int_t iON = (fDecayAll) ? 1:0;
+    for (Int_t i = 0; i < 19; i++) {
+       fprintf(out, "LUND-DECAY%5d %5d\n",  iPDG[i], iON);    
+    }
+       
+    fprintf(out, "LUND-MSTJ %5d %5d\n",   22, 1);    
+
     fprintf(out, "ENDINPUT\n");
 //
 //  START card
index 867280e..209af0a 100644 (file)
@@ -70,8 +70,8 @@ public:
    virtual void  SetfFCentr(Int_t icentr)  {fFCentr = icentr;}
    virtual Int_t GetfFCentr() const        {return fFCentr;}
 
-   virtual void  SetPi0Decay(Int_t iPi0)  {fPi0Decay = iPi0;}
-
+   virtual void  SetPi0Decay(Int_t iPi0)    {fPi0Decay = iPi0;}
+   virtual void  SetDecayAll(Int_t iDecAll) {fDecayAll = iDecAll;}
    
    // Access to DPMJET common blocks:
    virtual Int_t    GetEvNum() const;            
@@ -130,6 +130,7 @@ protected:
    Float_t      fBmax;   // Maximum impact parameter
    Int_t        fFCentr;  // Flag to force central collisions
    Int_t        fPi0Decay;// Flag for pi0 decays
+   Int_t        fDecayAll;// Flag to decay also long-lived particles
    DpmProcess_t fProcess; // Process type
    
    ClassDef(TDPMjet,2)  //Interface to DPMJET Event Generator