// $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 "AliTrackingActionMessenger.h"
+
#include "TG4TrackingAction.h"
#include <globals.hh>
-#include <TClonesArray.h>
-
-class AliTrackingActionMessenger;
+class AliTrackInformation;
class G4Track;
+class TClonesArray;
+
class AliTrackingAction : public TG4TrackingAction
{
public:
void PrepareNewEvent();
virtual void PreTrackingAction(const G4Track* aTrack);
virtual void PostTrackingAction(const G4Track* aTrack);
- void SaveParticle(const G4Track* track, G4String processName);
- void SaveAndDestroyTrack();
+ 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 GetNofTracks() const;
- G4int GetNofPrimaryTracks() const;
- G4int GetNofSavedTracks() const;
protected:
AliTrackingAction(const AliTrackingAction& right);
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 fTrackCounter; //tracks 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 fVerboseLevel; //verbose level
+ 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 AliTrackingAction* AliTrackingAction::Instance()
+{ return fgInstance; }
+
inline void AliTrackingAction::SetVerboseLevel(G4int level)
{ fVerboseLevel = level; }
inline G4int AliTrackingAction::GetNofTracks() const
{ return fTrackCounter; }
-inline G4int AliTrackingAction::GetNofPrimaryTracks() const
-{ return fPrimariesCounter; }
-
-inline G4int AliTrackingAction::GetNofSavedTracks() const
-{ return fParticlesCounter; }
-
#endif //ALI_TRACKING_ACTION_H