]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - AliGeant4/AliTrackingAction.h
Changes to read also Altro like data.
[u/mrichter/AliRoot.git] / AliGeant4 / AliTrackingAction.h
index bf41d492e0fcbb9901dfcf0c5849f3d57a8a0065..2dc76ab3c3d260ef2dfaabe018386d3157ba69a8 100644 (file)
@@ -1,47 +1,55 @@
 // $Id$
 // Category: event
 //
+// Author: I. Hrivnacova
+//
+// Class AliTrackingAction
+// -----------------------
 // Class that takes care of storing kinematics.
 
 #ifndef ALI_TRACKING_ACTION_H
 #define ALI_TRACKING_ACTION_H
 
-#include <G4UserTrackingAction.hh>
-#include <globals.hh>
+#include "AliVerbose.h"
+#include "AliTrackingActionMessenger.h"
 
-#include <TClonesArray.h>
+#include "TG4TrackingAction.h"
+
+#include <globals.hh>
 
-class AliTrackingActionMessenger;
+class AliTrackInformation;
 
 class G4Track;
 
-class AliTrackingAction : public G4UserTrackingAction 
+class TClonesArray;
+
+class AliTrackingAction : public TG4TrackingAction,
+                          public AliVerbose
 {
   public:
     AliTrackingAction();
     // --> protected
     // AliTrackingAction(const AliTrackingAction& right);
-    ~AliTrackingAction();
+    virtual ~AliTrackingAction();
    
     // static get method
     static AliTrackingAction* Instance();
 
     // methods
     void PrepareNewEvent();
-    virtual void PreUserTrackingAction(const G4Track* aTrack);
-    virtual void PostUserTrackingAction(const G4Track* aTrack);
-    void SaveParticle(const G4Track* track, G4String processName);
-    void SaveAndDestroyTrack();
+    virtual void PreTrackingAction(const G4Track* aTrack);
+    virtual void PostTrackingAction(const G4Track* aTrack);
+    void FinishPrimaryTrack();
+    void SaveTrack(const G4Track* track);
 
     // set methods
-    void SetVerboseLevel(G4int level);
+    void SetNewVerboseLevel(G4int level);
+    void SetNewVerboseTrackID(G4int trackID);
     void SetSavePrimaries(G4bool savePrimaries);
 
     // get methods
-    G4int GetVerboseLevel() const;
     G4bool GetSavePrimaries() const;
-    G4int GetNofPrimaryTracks() const;
-    G4int GetNofSavedTracks() const;
+    G4int GetNofTracks() const;
 
   protected:
     AliTrackingAction(const AliTrackingAction& right);
@@ -52,39 +60,34 @@ class AliTrackingAction : public G4UserTrackingAction
   private:
     // methods
     G4int GetParticleIndex(G4int trackID);
+    AliTrackInformation* GetTrackInformation(const G4Track* track,
+                                             const G4String& method) const;
   
     // static data members
-    static AliTrackingAction*    fgInstance; //this instance
+    static AliTrackingAction*   fgInstance; //this instance
 
     // data members
-    TClonesArray*  fParticles;         //AliRun::fParticles
-    G4int          fPrimaryTrackID;    //primary track ID 
-    G4bool         fSavePrimaries;     //control of saving primaries
-    G4int          fVerboseLevel;      //verbose level
-    G4int          fPrimariesCounter;  //primary particles counter
-    G4int          fParticlesCounter;  //particles counter
-    G4int          fLastParticleIndex; //index of the last particle in fParticles
-    AliTrackingActionMessenger*  fMessenger; //messenger
+    AliTrackingActionMessenger  fMessenger; //messenger
+    G4int   fPrimaryTrackID;    //current primary track ID 
+    G4bool  fSavePrimaries;     //control of saving primaries
+    G4int   fNewVerboseLevel;   //new /tracking/verbose level
+    G4int   fNewVerboseTrackID; //track ID for which new /tracking/verbose level
+                                // is applied
+    G4int   fTrackCounter;      //tracks counter
 };
 
 // inline methods
 
-inline void AliTrackingAction::SetVerboseLevel(G4int level)
-{ fVerboseLevel = level; }
+inline AliTrackingAction* AliTrackingAction::Instance() 
+{ return fgInstance; }
 
 inline void AliTrackingAction::SetSavePrimaries(G4bool savePrimaries)
 { fSavePrimaries = savePrimaries; }
 
-inline G4int AliTrackingAction::GetVerboseLevel() const
-{ return fVerboseLevel; }
-
 inline G4bool AliTrackingAction::GetSavePrimaries() const
 { return fSavePrimaries; }
 
-inline G4int AliTrackingAction::GetNofPrimaryTracks() const
-{ return fPrimariesCounter; }
-
-inline G4int AliTrackingAction::GetNofSavedTracks() const
-{ return fParticlesCounter; }
+inline G4int AliTrackingAction::GetNofTracks() const
+{ return fTrackCounter; }
 
 #endif //ALI_TRACKING_ACTION_H