Skip to content
Snippets Groups Projects
Geant4UserParticleHandler.cpp 2.34 KiB
Newer Older
//==========================================================================
Markus Frank's avatar
Markus Frank committed
//  AIDA Detector description implementation 
//--------------------------------------------------------------------------
Markus Frank's avatar
Markus Frank committed
// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
Markus Frank's avatar
Markus Frank committed
//
// For the licensing terms see $DD4hepINSTALL/LICENSE.
// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
Markus Frank's avatar
Markus Frank committed
//
// Author     : M.Frank
//
//==========================================================================

Markus Frank's avatar
Markus Frank committed
// Framework include files
#include "DD4hep/Printout.h"
#include "DD4hep/InstanceCount.h"
Markus Frank's avatar
Markus Frank committed
#include "DDG4/Geant4ParticleHandler.h"
Markus Frank's avatar
Markus Frank committed
#include "DDG4/Geant4UserParticleHandler.h"
Markus Frank's avatar
Markus Frank committed
#include "CLHEP/Units/SystemOfUnits.h"
Markus Frank's avatar
Markus Frank committed
using namespace dd4hep::sim;
Markus Frank's avatar
Markus Frank committed

/// Standard constructor
Geant4UserParticleHandler::Geant4UserParticleHandler(Geant4Context* ctxt, const std::string& nam)
: Geant4Action(ctxt,nam)
Markus Frank's avatar
Markus Frank committed
{
  InstanceCount::increment(this);
Markus Frank's avatar
Markus Frank committed
  declareProperty("MinimalKineticEnergy",m_kinEnergyCut = 100e0*CLHEP::MeV);
  m_needsControl = true;
Markus Frank's avatar
Markus Frank committed
}

/// Default destructor
Geant4UserParticleHandler::~Geant4UserParticleHandler()  {
  InstanceCount::decrement(this);
}

/// Event generation action callback
void Geant4UserParticleHandler::generate(G4Event* /* event */, Geant4ParticleHandler* /* handler */)   {
  //printout(INFO,name(),"+++ Generate event");
}

/// Pre-event action callback
void Geant4UserParticleHandler::begin(const G4Event* /* event */)  {
}

/// Post-event action callback
void Geant4UserParticleHandler::end(const G4Event* /* event */)   {
  //printout(INFO,name(),"+++ End event");
}

/// User stepping callback
void Geant4UserParticleHandler::step(const G4Step* /* step */, G4SteppingManager* /* mgr */, Particle& /* particle */)  {
}

/// Pre-track action callback
void Geant4UserParticleHandler::begin(const G4Track* /* track */, Particle& /* particle */)  {
}

/// Post-track action callback
void Geant4UserParticleHandler::end(const G4Track* /* track */, Particle& /* particle */)  {
}

/// Callback when parent should be combined
void Geant4UserParticleHandler::combine(Particle& /* to_be_deleted */, Particle& /* remaining_parent */)  {
}

/// Callback to be answered if the particle MUST be kept during recombination step
Markus Frank's avatar
Markus Frank committed
bool Geant4UserParticleHandler::keepParticle(Particle& particle)   {
  return Geant4ParticleHandler::defaultKeepParticle(particle);