14 #ifndef CHEAT_PHOTONBACKTRACKER_H 15 #define CHEAT_PHOTONBACKTRACKER_H 19 #include <unordered_set> 33 namespace cheat {
class ParticleInventory; }
34 namespace fhicl {
class ParameterSet; }
35 namespace geo {
class GeometryCore; }
42 class PhotonBackTracker
47 fhicl::Atom<double> Delay{
fhicl::Name(
"Delay"),
fhicl::Comment(
"The delay time needed to correctly account for the optical simulation and optical systems simulation. (The time between when a g4partcile was made, and when the simulation write out says a signal was recorded)."), 0};
70 template<
typename Evt>
71 void PrepEvent( Evt
const&
evt);
74 template<
typename Evt>
75 const bool CanRun( Evt
const&
evt) ;
78 template<
typename Evt>
79 void PrepOpDetBTRs(Evt
const&
evt);
82 template<
typename Evt>
83 void PrepOpFlashToOpHits(Evt
const&
evt);
95 const double GetDelay();
101 const bool BTRsReady() ;
104 const bool OpFlashToOpHitsReady();
107 std::vector<art::Ptr<sim::OpDetBacktrackerRecord>>
const& OpDetBTRs() ;
110 const std::vector< const sim::SDP* > TrackIdToSimSDPs_Ps(
int const&
id) ;
113 const std::vector< const sim::SDP* > TrackIdToSimSDPs_Ps(
int const&
id,
geo::View_t const& view) ;
121 const std::vector < sim::TrackSDP > OpDetToTrackSDPs(
int const& OpDetNum,
double const& opHit_start_time,
double const& opHit_end_time)
const;
127 const std::vector< sim::TrackSDP> OpHitToTrackSDPs(
recob::OpHit const& opHit)
const ;
130 const std::vector < int > OpHitToTrackIds(
recob::OpHit const& opHit)
const;
136 const std::vector < int > OpHitToEveTrackIds(
recob::OpHit const& opHit) ;
145 const std::vector< sim::TrackSDP> OpHitToEveTrackSDPs(
recob::OpHit const& opHit)
const ;
154 const std::vector< const sim::SDP* > OpHitToSimSDPs_Ps(
recob::OpHit const& opHit)
const ;
165 const std::vector< double > SimSDPsToXYZ(std::vector<sim::SDP>
const& sdps)
const&;
168 const std::vector< double > SimSDPsToXYZ(std::vector<const sim::SDP*>
const& sdps_Ps )
const&;
174 const std::vector< double > OpHitToXYZ(
recob::OpHit const& opHit) ;
180 const std::unordered_set<const sim::SDP*> OpHitToEveSimSDPs_Ps(
recob::OpHit const& opHit);
186 const std::set< int> GetSetOfEveIds()
const ;
189 const std::set< int> GetSetOfTrackIds()
const ;
195 const std::set< int> GetSetOfEveIds(std::vector< recob::OpHit >
const& opHits)
const ;
201 const std::set< int> GetSetOfTrackIds(std::vector< recob::OpHit >
const& opHits)
const;
210 const double OpHitCollectionEfficiency(std::set<int>
const& tkIds,
215 const double OpHitCollectionEfficiency(std::set<int>
const& tkIds,
221 const double OpHitLightCollectionEfficiency(std::set<int>
const& tkIds,
226 const double OpHitLightCollectionEfficiency(std::set<int>
const& tkIds,
257 #include "PhotonBackTracker.tcc"
const double fMinOpHitEnergyFraction
const art::InputTag fG4ModuleLabel
enum geo::_plane_proj View_t
Enumerate the possible plane projections.
ChannelGroupService::Name Name
const cheat::ParticleInventory * fPartInv
std::vector< art::Ptr< sim::OpDetBacktrackerRecord > > priv_OpDetBTRs
const geo::GeometryCore * fGeom
Description of geometry of one entire detector.
Code to link reconstructed objects back to the MC truth information.
Definition of data types for geometry description.
const art::InputTag fOpFlashLabel
code to link reconstructed objects back to the MC truth information
const art::InputTag fOpHitLabel
LArSoft geometry interface.
std::map< art::Ptr< recob::OpFlash >, std::vector< art::Ptr< recob::OpHit > > > priv_OpFlashToOpHits