/////////////////////////////////////////////////////////////////// // // 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