Some methods for decay parameters added.
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 10 Jan 2011 12:05:28 +0000 (12:05 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 10 Jan 2011 12:05:28 +0000 (12:05 +0000)
THijing/Hcommon.h
THijing/THijing.cxx
THijing/THijing.h

index fc1c862..9797685 100644 (file)
@@ -608,5 +608,15 @@ COMMON_BLOCK_DEF(HijglbrCommon,HIJGLBR);
 COMMON_BLOCK_DEF(Ludat1_HijingCommon,LUDAT1_HIJING);
 }
 
+//COMMON/LUDAT3_HIJING/MDCY(500, 3),MDME(2000, 2),BRAT(2000),KFDP(2000, 5)
+    typedef struct {
+      Int_t    mdcy[3][500];
+      Int_t    mdme[2][2000];
+      Float_t  brat[2000];
+      Float_t  kfdp[5][2000];
+} Ludat3_HijingCommon;
+
+#define LUDAT3_HIJING COMMON_BLOCK(LUDAT3_HIJING,ludat3_hijing)
+COMMON_BLOCK_DEF(Ludat3_HijingCommon,LUDAT3_HIJING);
 
 #endif
index c95e483..5868245 100644 (file)
@@ -55,6 +55,7 @@
 # define profile profile_
 # define rluget_hijing rluget_hijing_
 # define rluset_hijing rluset_hijing_
+# define lulist_hijing lulist_hijing_
 # define type_of_call
 #else
 # define hijset HIJSET
@@ -62,6 +63,7 @@
 # define profile PROFILE
 # define rluget_hijing RLUGET_HIJING
 # define rluset_hijing RLUSET_HIJING
+# define lulist_hijing LULIST_HIJING
 # define type_of_call _stdcall
 #endif
 
@@ -77,6 +79,7 @@ extern "C" void type_of_call hijing(const char *, Float_t  &,
 extern "C" void type_of_call rluget_hijing(Int_t & lfn, Int_t & move);
 
 extern "C" void type_of_call rluset_hijing(Int_t & lfn, Int_t & move);
+extern "C" void type_of_call lulist_hijing(Int_t &);
 
 #else
 #endif
@@ -1146,7 +1149,37 @@ void THijing::SetMSTJ(Int_t key, Int_t parm)
     }
 }
 
+void  THijing::SetMDCY(Int_t key1, Int_t key2, Int_t   parm)
+{
+  // Set value of array MDCY
+  if ( key1 < 1 || key1 > 500) {
+    printf("ERROR in THijing::SetMDCY(key1, key2, parm):\n");
+    printf("      key1=%i is out of range [1..200]\n", key1);
+  } else if ( key2 < 1 || key2 > 3) {
+    printf("ERROR in THijing::SetMDCY(key1, key2, parm):\n");
+    printf("      key2=%i is out of range [1..200]\n", key2);
+  } else {
+    LUDAT3_HIJING.mdcy[key2-1][key1-1] = parm;
+  }
+  
+}
+
+Int_t THijing::GetMDCY(Int_t key1, Int_t key2) 
+{
+  // Get value of array MDCY
+  if ( key1 < 1 || key1 > 500) {
+    printf("ERROR in THijing::GetMDCY(key1, key2, parm):\n");
+    printf("      key1=%i is out of range [1..200]\n", key1);
+    return -1;
+  } else if ( key2 < 1 || key2 > 3) {
+    printf("ERROR in THijing::GetMDCY(key1, key2, parm):\n");
+    printf("      key2=%i is out of range [1..200]\n", key2);
+    return -1;
+  } else {
+    return (LUDAT3_HIJING.mdcy[key2-1][key1-1]);
+  }
 
+}
 //====================== access to Hijing subroutines =========================
 
 
@@ -1253,3 +1286,8 @@ void  THijing::Rluset(Int_t lfn, Int_t move)
   rluset_hijing(lfn, move);
 }
 
+void  THijing::Pylist(Int_t flag)
+{
+// call lulist
+  lulist_hijing(flag);
+}
index 5cd9d9c..58420aa 100644 (file)
@@ -176,6 +176,8 @@ public:
    // common LUDAT1_HIJING common:
    virtual void        SetPARJ(Int_t key, Float_t parm);
    virtual void        SetMSTJ(Int_t key, Int_t   parm);   
+   virtual void        SetMDCY(Int_t key1, Int_t key2, Int_t   parm);   
+   virtual Int_t       GetMDCY(Int_t key1, Int_t key2);   
    
    // access to HIJING routines:
 
@@ -191,7 +193,7 @@ public:
 
    virtual void         Rluget(Int_t lfn, Int_t move=0);
    virtual void         Rluset(Int_t lfn, Int_t move=0);   
-
+   virtual void         Pylist(Int_t flag);
    protected:
 
     Float_t      fEfrm;     // Energy in the centre of mass (CMS) or lab-frame (LAB)