Newer
Older
Markus Frank
committed
//==========================================================================
// AIDA Detector description implementation for LCD
Markus Frank
committed
//--------------------------------------------------------------------------
// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
Markus Frank
committed
// All rights reserved.
Markus Frank
committed
// For the licensing terms see $DD4hepINSTALL/LICENSE.
// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
Markus Frank
committed
// Author : M.Frank
//
//==========================================================================
// Framework include files
#include "DD4hep/InstanceCount.h"
#include "DDG4/Geant4TrackingPreAction.h"
Markus Frank
committed
// Geant4 include files
#include "G4TrackingManager.hh"
using namespace DD4hep::Simulation;
/// Standard constructor
Markus Frank
committed
Geant4TrackingPreAction::Geant4TrackingPreAction(Geant4Context* ctxt, const std::string& nam)
Markus Frank
committed
: Geant4TrackingAction(ctxt, nam) {
InstanceCount::increment(this);
}
/// Default destructor
Geant4TrackingPreAction::~Geant4TrackingPreAction() {
InstanceCount::decrement(this);
}
/// Begin-of-tracking callback
void Geant4TrackingPreAction::begin(const G4Track* track) {
// Is the track valid? Is tracking manager valid?
if (0 == track || 0 == trackMgr() || 0 != trackMgr()->GimmeTrajectory())
return;
trackMgr()->SetStoreTrajectory(true);
// create GaussTrajectory and inform Tracking Manager
G4VTrajectory* tr = context()->createTrajectory(track);
trackMgr()->SetTrajectory(tr);
}
/// End-of-tracking callback
void Geant4TrackingPreAction::end(const G4Track* /* track */) {