Code causing warning messages during compilation corrected.
[u/mrichter/AliRoot.git] / TFluka / stuprf.cxx
index 49ab75b1c7d12bcd36260d7bf25e787afd7c715a..932486c759ee2cbab01749826a535dfefa4fee7b 100644 (file)
@@ -1,5 +1,6 @@
 #include <Riostream.h>
 #include "AliRun.h"
+#include "AliStack.h"
 #include "TFluka.h"
 #ifndef WIN32
 # define stuprf stuprf_
@@ -25,9 +26,9 @@
 #include "TVector3.h"
 
 extern "C" {
-void stuprf(Int_t& ij, Int_t& mreg,
-            Double_t& xx, Double_t& yy, Double_t& zz,
-           Int_t& numsec, Int_t& npprmr)
+    void stuprf(Int_t& /*ij*/, Int_t& /*mreg*/,
+               Double_t& xx, Double_t& yy, Double_t& zz,
+               Int_t& numsec, Int_t& npprmr)
 {
 //*----------------------------------------------------------------------*
 //*                                                                      *
@@ -47,10 +48,10 @@ void stuprf(Int_t& ij, Int_t& mreg,
 // TRACKR.spausr = user defined spare variables for the current particle
 // TRACKR.ispusr = user defined spare flags for the current particle
   Int_t ispr;
-  for (ispr=0; ispr<=mkbmx1-1; ispr++) {
+  for (ispr = 0; ispr <= mkbmx1 - 1; ispr++) {
     STACK.sparek[STACK.lstack][ispr] = TRACKR.spausr[ispr];
   }  
-  for (ispr=0; ispr<=mkbmx2-1; ispr++) {
+  for (ispr = 0; ispr <= mkbmx2 - 1; ispr++) {
     STACK.ispark[STACK.lstack][ispr] = TRACKR.ispusr[ispr];
   }  
  
@@ -61,52 +62,66 @@ void stuprf(Int_t& ij, Int_t& mreg,
   
 // EVTFLG.ntrcks = track number
 // Increment the track number and put it into the last flag
-  if (numsec-1 > npprmr) {
-// Now call the SetTrack(...)
+// was numsec -1
+// clarify with Alberto
+  if (numsec > npprmr) {
+// Now call the PushTrack(...)
     Int_t done = 0;
-    Int_t parent = TRACKR.ispusr[mkbmx2-1];
-    Int_t pdg = fluka->PDGFromId(ij);
-    
-    Double_t px = FINUC.plr[numsec-1]*FINUC.cxr[numsec-1];
-    Double_t pz = FINUC.plr[numsec-1]*FINUC.cyr[numsec-1];
-    Double_t py = FINUC.plr[numsec-1]*FINUC.czr[numsec-1];
+
+    Int_t parent =  TRACKR.ispusr[mkbmx2-1];
+
+    Int_t pdg = fluka->PDGFromId(FINUC.kpart[numsec-1]);
+    Double_t px = FINUC.plr[numsec-1] * FINUC.cxr[numsec-1];
+    Double_t pz = FINUC.plr[numsec-1] * FINUC.cyr[numsec-1];
+    Double_t py = FINUC.plr[numsec-1] * FINUC.czr[numsec-1];
     Double_t e  = FINUC.tki[numsec-1] + PAPROP.am[FINUC.kpart[numsec-1]+6];
     Double_t vx = xx;
     Double_t vy = yy;
     Double_t vz = zz;
-    Double_t tof = TRACKR.atrack;
+    
+    Double_t tof  = TRACKR.atrack;
     Double_t polx = FINUC.cxrpol[numsec-1];
     Double_t poly = FINUC.cyrpol[numsec-1];
     Double_t polz = FINUC.czrpol[numsec-1];
+    
 
     TMCProcess mech = kPHadronic;
-    if (EVTFLG.ldecay == 1) mech = kPDecay;
-    else if (EVTFLG.ldltry == 1) mech = kPDeltaRay;
-    else if (EVTFLG.lpairp == 1) mech = kPPair;
-    else if (EVTFLG.lbrmsp == 1) mech = kPBrem;
+    
+    if (EVTFLG.ldecay == 1) {
+       mech = kPDecay;
+       cout << endl << "Decay" << endl;
+       
+    } else if (EVTFLG.ldltry == 1) {
+       mech = kPDeltaRay;
+       cout << endl << "Delta Ray" << endl;
+       
+    } else if (EVTFLG.lpairp == 1) {
+       mech = kPPair;
+       cout << endl << "Pair Production" << endl;
+       
+    } else if (EVTFLG.lbrmsp == 1) {
+       mech = kPBrem;
+       cout << endl << "Bremsstrahlung" << endl;
+       
+    }
+    
+
     Double_t weight = FINUC.wei[numsec-1];
     Int_t is = 0;
     Int_t ntr;  
-
-//virtual void SetTrack(Int_t done, Int_t parent, Int_t pdg,
-//Double_t px, Double_t py, Double_t pz, Double_t e,
-//Double_t vx, Double_t vy, Double_t vz, Double_t tof,
-//Double_t polx, Double_t poly, Double_t polz,
-//TMCProcess mech, Int_t& ntr, Double_t weight,
-//Int_t is) = 0;
-
-    
-    cppstack->SetTrack(done, parent, pdg,
-                   px, py, pz, e,
-                   vx, vy, vz, tof,
-                   polx, poly, polz,
-                   mech, ntr, weight, is);
-
-cout << endl << " !!! stuprf: ntr=" << ntr << endl;
-    EVTFLG.ntrcks = ntr;
-    STACK.ispark[STACK.lstack][mkbmx2-1] = EVTFLG.ntrcks;
+    // 
+    // Save particle in VMC stack
+    cppstack->PushTrack(done, parent, pdg,
+                      px, py, pz, e,
+                      vx, vy, vz, tof,
+                      polx, poly, polz,
+                      mech, ntr, weight, is);
+    cout << endl << " !!! stuprf: ntr=" << ntr << "pdg " << pdg << " parent=" << parent << "numsec " 
+        << numsec << "npprmr " << npprmr << endl;
+//
+//  Save current track number
+    STACK.ispark[STACK.lstack][mkbmx2-1] = ntr;
   } // end of if (numsec-1 > npprmr)
-
 } // end of stuprf
 } // end of extern "C"