9 #ifndef CHEAT_BACKTRACKERSERVICESERVICE_H
10 #define CHEAT_BACKTRACKERSERVICESERVICE_H
15 class DetectorClocksData;
23 #include "art/Framework/Services/Registry/ServiceDeclarationMacros.h"
24 #include "art/Persistency/Provenance/ScheduleContext.h"
27 class ActivityRegistry;
31 #include "canvas/Persistency/Common/Ptr.h"
33 #include "fhiclcpp/types/Comment.h"
34 #include "fhiclcpp/types/Name.h"
35 #include "fhiclcpp/types/Table.h"
50 fhicl::Comment(
"This is the fhicl configuration of the BackTracker service provider.")};
67 const std::vector<art::Ptr<sim::SimChannel>>&
SimChannels()
const;
76 const double hit_start_time,
77 const double hit_end_time)
const;
82 art::Ptr<recob::Hit>
const&
hit)
const;
90 art::Ptr<recob::Hit>
const&
hit)
const;
95 std::vector<art::Ptr<recob::Hit>>
const& hitsIn)
const;
101 std::vector<int>
const& tkIds,
102 std::vector<art::Ptr<recob::Hit>>
const& hitsIn)
const;
107 art::Ptr<recob::Hit>
hit)
const;
112 art::Ptr<recob::Hit>
const&
hit)
const;
114 std::vector<double>
SimIDEsToXYZ(std::vector<sim::IDE>
const& ides)
const;
115 std::vector<double>
SimIDEsToXYZ(std::vector<const sim::IDE*>
const& ide_Ps)
const;
120 art::Ptr<recob::Hit>
const&
hit)
const;
123 std::set<int>
const& trackIds,
124 std::vector<art::Ptr<recob::Hit>>
const& hits)
const;
126 std::set<int>
const& trackIds,
127 std::vector<art::Ptr<recob::Hit>>
const& hits)
const;
130 std::set<int>
const& trackIds,
135 std::set<int>
const& trackIds,
144 std::vector<art::Ptr<recob::Hit>>
const& hits)
const;
146 std::vector<art::Ptr<recob::Hit>>
const& hits)
const;
150 std::vector<art::Ptr<recob::Hit>>
const& hits)
const;
152 art::Ptr<recob::SpacePoint>
const& spt)
const;
154 art::Ptr<recob::SpacePoint>
const& spt)
const;
157 const art::Event*
fEvt =
nullptr;
180 #endif // CHEAT_BACKTRACKERSERVICESERVICE_H
std::vector< art::Ptr< recob::Hit > > TrackIdToHits_Ps(detinfo::DetectorClocksData const &clockData, int tkId, std::vector< art::Ptr< recob::Hit >> const &hitsIn) const
std::vector< sim::TrackIDE > HitToTrackIDEs(detinfo::DetectorClocksData const &clockData, recob::Hit const &hit) const
enum geo::_plane_proj View_t
Enumerate the possible plane projections.
std::vector< art::Ptr< recob::Hit > > SpacePointToHits_Ps(art::Ptr< recob::SpacePoint > const &spt) const
double HitChargeCollectionPurity(detinfo::DetectorClocksData const &clockData, std::set< int > const &trackIds, std::vector< art::Ptr< recob::Hit >> const &hits) const
BackTracker(const fhiclConfig &config, const cheat::ParticleInventory *partInv, const geo::GeometryCore *geom)
Declaration of signal hit object.
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 const &view) const
std::vector< const sim::IDE * > TrackIdToSimIDEs_Ps(int const &id) const
std::vector< double > HitToXYZ(detinfo::DetectorClocksData const &clockData, const recob::Hit &hit) const
std::vector< int > HitToTrackIds(detinfo::DetectorClocksData const &clockData, recob::Hit const &hit) const
auto vector(Vector const &v)
Returns a manipulator which will print the specified array.
fhicl::Table< BackTracker::fhiclConfig > BackTrackerTable
art::Ptr< sim::SimChannel > FindSimChannel(raw::ChannelID_t channel) const
void Rebuild(const art::Event &evt)
std::set< int > GetSetOfTrackIds() const
BackTrackerService(const fhicl::ParameterSet &pSet, art::ActivityRegistry ®)
bool SimChannelsReady() const
double HitCollectionPurity(detinfo::DetectorClocksData const &clockData, std::set< int > const &trackIds, std::vector< art::Ptr< recob::Hit >> const &hits) const
void priv_PrepSimChannels(const art::Event &evt)
const provider_type * provider() const
BEGIN_PROLOG vertical distance to the surface Name
std::vector< std::vector< art::Ptr< recob::Hit > > > TrackIdsToHits_Ps(detinfo::DetectorClocksData const &clockData, std::vector< int > const &tkIds, std::vector< art::Ptr< recob::Hit >> const &hitsIn) const
void priv_PrepEvent(const art::Event &evt, art::ScheduleContext)
Definition of data types for geometry description.
std::set< int > GetSetOfEveIds() const
bool priv_CanRun(const art::Event &evt)
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
Contains all timing reference information for the detector.
std::vector< sim::IDE > HitToAvgSimIDEs(detinfo::DetectorClocksData const &clockData, recob::Hit const &hit) const
std::vector< double > SpacePointHitsToWeightedXYZ(detinfo::DetectorClocksData const &clockData, std::vector< art::Ptr< recob::Hit >> const &hits) const
std::vector< sim::TrackIDE > HitToEveTrackIDEs(detinfo::DetectorClocksData const &clockData, recob::Hit const &hit) const
bool priv_SimChannelsReady()
object containing MC truth information necessary for making RawDigits and doing back tracking ...
std::vector< double > SimIDEsToXYZ(std::vector< sim::IDE > const &ides) const
const std::vector< art::Ptr< sim::SimChannel > > & SimChannels() const
std::vector< const sim::IDE * > HitToSimIDEs_Ps(detinfo::DetectorClocksData const &clockData, recob::Hit const &hit) const
2D representation of charge deposited in the TDC/wire plane
unsigned int ChannelID_t
Type representing the ID of a readout channel.
std::vector< double > SpacePointToXYZ(detinfo::DetectorClocksData const &clockData, art::Ptr< recob::SpacePoint > const &spt) const
std::vector< sim::TrackIDE > ChannelToTrackIDEs(detinfo::DetectorClocksData const &clockData, raw::ChannelID_t channel, const double hit_start_time, const double hit_end_time) const