11 #ifndef CHEAT_BACKTRACKER_H 12 #define CHEAT_BACKTRACKER_H 28 class DetectorClocksData;
45 fhicl::Comment(
"The label of the LArG4 module used to produce the " 46 "art file we will be using."),
50 fhicl::Comment(
"The label of the module containing the sim::SimChannel product."),
55 fhicl::Comment(
"The label of the module used to produce the hits in the art file " 56 "we will default to when no hitlist is provided."),
61 "make to a Hit to be considered part of that hit."),
65 fhicl::Comment(
"Option when overlaying simulation on real data, to tell the " 66 "backtracker to continue even if event looks like data."),
71 "from a Hit peak time for searching IDE."),
85 template <
typename Evt>
86 void PrepEvent(
const Evt&
evt);
88 template <
typename Evt>
89 void PrepSimChannels(
const Evt&
evt);
92 template <
typename Evt>
96 return !evt.isRealData() || fOverrideRealData;
100 template <
typename Evt>
102 const Evt&
evt)
const;
105 template <
typename Evt>
108 const Evt& evt)
const;
116 return !fSimChannels.empty();
119 const std::vector<art::Ptr<sim::SimChannel>>&
130 std::vector<const sim::IDE*> TrackIdToSimIDEs_Ps(
int const&
id)
const;
131 std::vector<const sim::IDE*> TrackIdToSimIDEs_Ps(
int const&
id,
const geo::View_t view)
const;
153 const double hit_start_time,
154 const double hit_end_time)
const;
160 std::vector<sim::TrackIDE>
164 return this->HitToTrackIDEs(clockData, *hit);
174 std::vector<sim::TrackIDE>
178 return this->HitToEveTrackIDEs(clockData, *hit);
183 std::vector<art::Ptr<recob::Hit>> TrackIdToHits_Ps(
188 std::vector<std::vector<art::Ptr<recob::Hit>>> TrackIdsToHits_Ps(
190 std::vector<int>
const& tkIds,
195 std::vector<sim::IDE>
199 return this->HitToAvgSimIDEs(clockData, *hit);
204 std::vector<const sim::IDE*>
208 return this->HitToSimIDEs_Ps(clockData, *hit);
211 std::vector<double> SimIDEsToXYZ(std::vector<sim::IDE>
const& ides)
const;
212 std::vector<double> SimIDEsToXYZ(std::vector<const sim::IDE*>
const& ide_Ps)
const;
219 return this->HitToXYZ(clockData, *hit);
223 std::set<int>
const& trackIds,
226 std::set<int>
const& trackIds,
230 std::set<int>
const& trackIds,
236 std::set<int>
const& trackIds,
244 return fPartInv->GetSetOfTrackIds();
249 return fPartInv->GetSetOfEveIds();
257 std::vector<double> SpacePointHitsToWeightedXYZ(
277 #include "BackTracker.tcc" 279 #endif // CHEAT_BACKTRACKER_H
const art::InputTag fHitLabel
const geo::GeometryCore * fGeom
Reconstruction base classes.
std::vector< art::Ptr< sim::SimChannel > > fSimChannels
enum geo::_plane_proj View_t
Enumerate the possible plane projections.
Declaration of signal hit object.
const art::InputTag fSimChannelModuleLabel
const double fMinHitEnergyFraction
std::vector< double > HitToXYZ(detinfo::DetectorClocksData const &clockData, art::Ptr< recob::Hit > const &hit) const
std::vector< sim::TrackIDE > HitToTrackIDEs(detinfo::DetectorClocksData const &clockData, art::Ptr< recob::Hit > const &hit) const
bool CanRun(const Evt &evt)
bool SimChannelsReady() const
std::set< int > GetSetOfTrackIds() const
const cheat::ParticleInventory * fPartInv
General LArSoft Utilities.
Description of geometry of one entire detector.
std::vector< sim::TrackIDE > HitToEveTrackIDEs(detinfo::DetectorClocksData const &clockData, art::Ptr< recob::Hit > const &hit) const
Definition of data types for geometry description.
Detector simulation of raw signals on wires.
const std::vector< art::Ptr< sim::SimChannel > > & SimChannels() const
std::set< int > GetSetOfEveIds() const
std::vector< const sim::IDE * > HitToSimIDEs_Ps(detinfo::DetectorClocksData const &clockData, art::Ptr< recob::Hit > const &hit) const
code to link reconstructed objects back to the MC truth information
const bool fOverrideRealData
Contains all timing reference information for the detector.
object containing MC truth information necessary for making RawDigits and doing back tracking ...
Header for the ParticleInvenotry Service Provider.
const art::InputTag fG4ModuleLabel
2D representation of charge deposited in the TDC/wire plane
unsigned int ChannelID_t
Type representing the ID of a readout channel.
std::vector< sim::IDE > HitToAvgSimIDEs(detinfo::DetectorClocksData const &clockData, art::Ptr< recob::Hit > const &hit) const
Verifies that the geometry check information is available.