]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - AliGeant4/AliStackingAction.cxx
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / AliGeant4 / AliStackingAction.cxx
index 85057fbc555c6d11432f74e9d026bf0af1d63b64..ea387fe38acd3e895ce29e8d77967059be748e1f 100644 (file)
@@ -1,10 +1,13 @@
 // $Id$
 // Category: event
 //
+// Author: I. Hrivnacova
+//
+// Class AliStackingAction
+// -----------------------
 // See the class description in the header file.
 
 #include "AliStackingAction.h"
-#include "AliStackingActionMessenger.h"
 #include "AliTrackingAction.h"
 #include "AliGlobals.h"
 
 #include <G4AntiNeutrinoMu.hh>
 #include <G4AntiNeutrinoTau.hh>
 
+//_____________________________________________________________________________
 AliStackingAction::AliStackingAction()
-  : fStage(0), 
-    fVerboseLevel(0),
+  : AliVerbose("stackingAction"),
+    fStage(0), 
     fSavePrimaries(true),
-    fTrackingAction(0) 
+    fTrackingAction(0)
 {
 // 
   fPrimaryStack = new G4TrackStack();
-  fMessenger = new AliStackingActionMessenger(this);
 }
 
-AliStackingAction::AliStackingAction(const AliStackingAction& right) {
+//_____________________________________________________________________________
+AliStackingAction::AliStackingAction(const AliStackingAction& right) 
+  : AliVerbose("stackingAction") {
 //
   AliGlobals::Exception("AliStackingAction is protected from copying.");
 }
 
+//_____________________________________________________________________________
 AliStackingAction::~AliStackingAction() {
 // 
   delete fPrimaryStack;
-  delete fMessenger; 
 }
 
 // operators
 
+//_____________________________________________________________________________
 AliStackingAction& 
 AliStackingAction::operator=(const AliStackingAction &right)
 {
@@ -56,6 +62,7 @@ AliStackingAction::operator=(const AliStackingAction &right)
 
 // public methods
 
+//_____________________________________________________________________________
 G4ClassificationOfNewTrack 
 AliStackingAction::ClassifyNewTrack(const G4Track* track)
 {
@@ -74,7 +81,7 @@ AliStackingAction::ClassifyNewTrack(const G4Track* track)
     // (secondary particles are stored 
     //  by AlTrackingAction::PreUserTrackingAction() method)
     if (fSavePrimaries)
-      fTrackingAction->SaveParticle(track, "primary");
+      fTrackingAction->SaveTrack(track);
   }  
   else {
      // exclude neutrinos
@@ -88,7 +95,7 @@ AliStackingAction::ClassifyNewTrack(const G4Track* track)
 
         return fKill;   
      } 
-     
+
      G4int parentID = track->GetParentID();
      if (parentID ==0) { 
         return fUrgent; 
@@ -100,14 +107,15 @@ AliStackingAction::ClassifyNewTrack(const G4Track* track)
   return classification;
 }
 
+//_____________________________________________________________________________
 void AliStackingAction::NewStage()
 {
 // Called by G4 kernel at the new stage of stacking.
 // ---
 
   fStage++;
-  if (fVerboseLevel>0) 
-  {
+  
+  if (VerboseLevel() > 1) {
     G4cout << "AliStackingAction::NewStage " << fStage 
            << " has been started." << G4endl;
   }
@@ -128,23 +136,20 @@ void AliStackingAction::NewStage()
   }
 }
     
-void AliStackingAction::ClearPrimaryStack()
-{
-// Clears the primary stack.
-// ---
-
-  stackManager->ClearPostponeStack();
-}
-
+//_____________________________________________________________________________
 void AliStackingAction::PrepareNewEvent()
 {
 // Called by G4 kernel at the beginning of event.
 // ---
 
   fStage = 0;
-  ClearPrimaryStack();
+  //stackManager->ClearPostponeStack();
+  stackManager->ResetPostponeStack();
   fTrackingAction = AliTrackingAction::Instance();
-  fSavePrimaries = fTrackingAction->GetSavePrimaries();
+  if (fTrackingAction)
+    fSavePrimaries = fTrackingAction->GetSavePrimaries();
+  else   
+    fSavePrimaries = false;
 }