35 #include "Geant4/G4PhysicalVolumeStore.hh" 36 #include "Geant4/G4VPhysicalVolume.hh" 39 #include <unordered_map> 43 #ifndef OPDETPHOTONTABLE_h 44 #define OPDETPHOTONTABLE_h 1 53 class SimEnergyDeposit;
63 void AddPhoton(
size_t opchannel,
sim::OnePhoton&& photon,
bool Reflected=
false);
64 void AddLitePhoton(
int opchannel,
int time,
int nphotons,
bool Reflected=
false);
65 void AddPhoton(std::map<
int, std::map<int, int>>* StepPhotonTable,
bool Reflected=
false);
66 void AddLitePhotons(std::map<
int, std::map<int, int>>* StepPhotonTable,
bool Reflected=
false) { AddPhoton(StepPhotonTable, Reflected); }
68 std::vector<sim::SimPhotons >&
GetPhotons(
bool Reflected=
false) {
return (Reflected ? fReflectedDetectedPhotons : fDetectedPhotons); }
73 std::map<int, std::map<int, int> >
GetLitePhotons(
bool Reflected=
false) {
return (Reflected ? fReflectedLitePhotons : fLitePhotons ); }
77 void ClearTable(
size_t nch=0);
81 std::vector<sim::OpDetBacktrackerRecord> YieldOpDetBacktrackerRecords();
82 std::vector<sim::OpDetBacktrackerRecord> YieldReflectedOpDetBacktrackerRecords();
85 void ClearEnergyDeposits();
86 void AddEnergyDeposit(
int n_elec,
int n_photon,
88 float start_x,
float start_y,
float start_z,
89 float end_x,
float end_y,
float end_z,
90 double start_time,
double end_time,
91 int trackid,
int pdgcode,
92 std::string
const& vol=
"EMPTY");
93 std::unordered_map<std::string, std::vector<sim::SimEnergyDeposit> >
const& GetSimEnergyDeposits()
const;
101 void AddOpDetBacktrackerRecord(std::vector< sim::OpDetBacktrackerRecord > & RecordsCol,
102 std::map<int, int> &ChannelMap,
116 std::unordered_map<std::string, std::vector<sim::SimEnergyDeposit> >
fSimEDepCol;
std::map< int, std::map< int, int > > fLitePhotons
std::map< int, int > & GetReflectedLitePhotonsForOpChannel(int opchannel)
std::map< int, std::map< int, int > > fReflectedLitePhotons
Energy deposited on a readout Optical Detector by simulated tracks.
void AddLitePhotons(std::map< int, std::map< int, int >> *StepPhotonTable, bool Reflected=false)
std::map< int, int > & GetLitePhotonsForOpChannel(int opchannel)
std::vector< sim::SimPhotons > & GetPhotons(bool Reflected=false)
std::map< int, std::map< int, int > > GetReflectedLitePhotons()
std::vector< sim::SimPhotons > fReflectedDetectedPhotons
std::vector< sim::SimPhotons > & GetReflectedPhotons()
std::vector< sim::OpDetBacktrackerRecord > cReflectedOpDetBacktrackerRecordsCol
std::unordered_map< std::string, std::vector< sim::SimEnergyDeposit > > fSimEDepCol
std::map< int, std::map< int, int > > GetLitePhotons(bool Reflected=false)
std::vector< sim::OpDetBacktrackerRecord > cOpDetBacktrackerRecordsCol
std::vector< sim::SimPhotons > fDetectedPhotons
std::map< int, int > cOpChannelToSOCMap
std::map< int, int > cReflectedOpChannelToSOCMap