10 #ifndef IMCTRUTHMATCHING_H
11 #define IMCTRUTHMATCHING_H
13 #include "fhiclcpp/ParameterSet.h"
15 #include "art/Framework/Principal/Event.h"
16 #include "canvas/Persistency/Common/Ptr.h"
17 #include "canvas/Persistency/Common/PtrVector.h"
18 #include "nusimdata/SimulationBase/MCParticle.h"
19 #include "nusimdata/SimulationBase/MCTruth.h"
20 #include "nug4/ParticleNavigation/ParticleList.h"
21 #include "nug4/ParticleNavigation/EveIdCalculator.h"
29 class DetectorClocksData;
53 virtual void reconfigure(fhicl::ParameterSet
const& pset) = 0;
58 virtual void Rebuild(
const art::Event&
evt) = 0;
63 virtual const sim::ParticleList&
ParticleList()
const = 0;
75 virtual const art::Ptr<simb::MCTruth>&
ParticleToMCTruth(
const simb::MCParticle*
p)
const = 0;
76 virtual std::vector<const simb::MCParticle*>
MCTruthToParticles(art::Ptr<simb::MCTruth>
const& mct)
const = 0;
77 virtual const std::vector< art::Ptr<simb::MCTruth> >&
MCTruthVector()
const = 0;
84 art::Ptr<recob::Hit>
const& hit)
const = 0;
89 std::vector<int>
const& tkIDs)
const = 0;
94 art::Ptr<recob::Hit>
const& hit)
const = 0;
98 art::Ptr<recob::Hit>
const& hit)
const = 0;
102 art::Ptr<recob::SpacePoint>
const& spt,
103 art::Event
const& evt,
104 std::string
const& label)
const = 0;
108 art::PtrVector<recob::Hit>
const& hits)
const = 0;
112 std::set<int>
const& trackIDs,
113 std::vector< art::Ptr<recob::Hit> >
const& hits)
const = 0;
118 std::set<int>
const& trackIDs,
120 std::vector< art::Ptr<recob::Hit> >
const& allhits,
125 std::set<int>
const& trackIDs,
126 std::vector< art::Ptr<recob::Hit> >
const& hits)
const = 0;
131 std::set<int>
const& trackIDs,
133 std::vector< art::Ptr<recob::Hit> >
const& allhits,
144 std::vector< art::Ptr<recob::Hit> >
const& hits)
const = 0;
148 std::vector< art::Ptr<recob::Hit> >
const& hits)
const = 0;
152 #endif // IMCTRUTHMATCHING_H
virtual const art::Ptr< simb::MCTruth > & ParticleToMCTruth(const simb::MCParticle *p) const =0
virtual std::set< int > GetSetOfEveIDs() const =0
virtual double HitCollectionEfficiency(detinfo::DetectorClocksData const &clockData, std::set< int > const &trackIDs, std::vector< art::Ptr< recob::Hit > > const &hits, std::vector< art::Ptr< recob::Hit > > const &allhits, geo::View_t view) const =0
virtual void reconfigure(fhicl::ParameterSet const &pset)=0
Interface for configuring the particular algorithm tool.
enum geo::_plane_proj View_t
Enumerate the possible plane projections.
virtual std::vector< const simb::MCParticle * > MCTruthToParticles(art::Ptr< simb::MCTruth > const &mct) const =0
virtual std::vector< double > SpacePointToXYZ(detinfo::DetectorClocksData const &clockData, art::Ptr< recob::SpacePoint > const &spt, art::Event const &evt, std::string const &label) const =0
Declaration of signal hit object.
virtual void Rebuild(const art::Event &evt)=0
This rebuilds the internal maps.
virtual double HitCollectionPurity(detinfo::DetectorClocksData const &clockData, std::set< int > const &trackIDs, std::vector< art::Ptr< recob::Hit > > const &hits) const =0
virtual std::vector< sim::TrackIDE > HitToTrackID(detinfo::DetectorClocksData const &clockData, recob::Hit const &hit) const =0
virtual std::vector< double > SpacePointHitsToXYZ(detinfo::DetectorClocksData const &clockData, art::PtrVector< recob::Hit > const &hits) const =0
virtual double HitChargeCollectionPurity(detinfo::DetectorClocksData const &clockData, std::set< int > const &trackIDs, std::vector< art::Ptr< recob::Hit > > const &hits) const =0
auto vector(Vector const &v)
Returns a manipulator which will print the specified array.
virtual const simb::MCParticle * TrackIDToMotherParticle(int id) const =0
virtual std::vector< sim::TrackIDE > HitToEveID(detinfo::DetectorClocksData const &clockData, art::Ptr< recob::Hit > const &hit) const =0
Definition of data types for geometry description.
virtual const simb::MCParticle * TrackIDToParticle(int id) const =0
Contains all timing reference information for the detector.
virtual std::vector< std::vector< art::Ptr< recob::Hit > > > TrackIDsToHits(detinfo::DetectorClocksData const &clockData, std::vector< art::Ptr< recob::Hit >> const &allhits, std::vector< int > const &tkIDs) const =0
virtual const art::Ptr< simb::MCTruth > & TrackIDToMCTruth(int id) const =0
object containing MC truth information necessary for making RawDigits and doing back tracking ...
virtual double HitChargeCollectionEfficiency(detinfo::DetectorClocksData const &clockData, std::set< int > const &trackIDs, std::vector< art::Ptr< recob::Hit > > const &hits, std::vector< art::Ptr< recob::Hit > > const &allhits, geo::View_t const view) const =0
2D representation of charge deposited in the TDC/wire plane
virtual const std::vector< art::Ptr< simb::MCTruth > > & MCTruthVector() const =0
virtual ~IMCTruthMatching() noexcept=default
Virtual Destructor.
virtual std::set< int > GetSetOfTrackIDs() const =0
virtual std::vector< double > HitToXYZ(detinfo::DetectorClocksData const &clockData, art::Ptr< recob::Hit > const &hit) const =0
virtual const sim::ParticleList & ParticleList() const =0
Get a reference to the ParticleList.