///////////////////////////////////////////////////////////////////
//
// Prune track steps and tracks more effectively. Allows detailed
// pruning of tracks and track steps.
//
// Author: P G Jones
// Author: S Langrock -- contact person
//
// REVISION HISTORY:
// 24 Oct 2012 : P.G.Jones - New file.
// 2016-10-19 : M Stringer - Changes to how MCTracks are accessed (PR #1508).
//
///////////////////////////////////////////////////////////////////
#ifndef __RAT_TrackPruneProc__
#define __RAT_TrackPruneProc__
#include
#include
#include
namespace RAT
{
class TrackPruneProc : public Processor
{
public:
TrackPruneProc();
virtual ~TrackPruneProc();
virtual Processor::Result DSEvent( DS::Run& run, DS::Entry& ds );
virtual void SetS( const std::string& param, const std::string& value );
protected:
std::vector fRequiredParticles; // Tracks that are one of these particles should not be pruned.
std::vector fOmitParticles; // Tracks that are one of these particles should be pruned.
std::vector fRequiredVolumes; // Steps in a volume in this should not be pruned
std::vector fOmitVolumes; // Steps in a volume in this list should be pruned
std::vector fRequiredProcesses; // Steps with a process in this list should not be pruned
std::vector fOmitProcesses; // Steps with a process in this list should be pruned
};
} // namespace RAT
#endif