38 if(!TheOpDetPhotonTable){
51 std::cerr <<
"<<" << __PRETTY_FUNCTION__ <<
">>" 53 <<
"Invalid channel: " << opchannel
76 for(
auto it = StepPhotonTable->begin(); it!=StepPhotonTable->end(); it++)
78 for(
auto in_it = it->second.begin(); in_it!=it->second.end(); in_it++)
100 std::map<int, int> & ChannelMap,
104 if (channelPosition == ChannelMap.end() ){
105 ChannelMap[iChan] = RecordsCol.size();
106 RecordsCol.emplace_back(std::move(soc));
108 unsigned int idtest = channelPosition->second;
110 for(
auto const& timePDclockSDP : timePDclockSDPsMap){
111 for(
auto const& sdp : timePDclockSDP.second){
112 double xyz[3] = {sdp.x, sdp.y, sdp.z};
113 RecordsCol.at(idtest).AddScintillationPhotons(
115 timePDclockSDP.first,
132 std::vector<sim::OpDetBacktrackerRecord> result;
147 std::vector<sim::OpDetBacktrackerRecord> result;
174 (it->second).clear();
176 (it->second).clear();
185 std::cerr <<
"<<" << __PRETTY_FUNCTION__ <<
">>" 186 <<
"Invalid channel Number: " << opchannel
196 std::cerr <<
"<<" << __PRETTY_FUNCTION__ <<
">>" 197 <<
"Invalid channel Number: " << opchannel
207 float start_x,
float start_y,
float start_z,
208 float end_x,
float end_y,
float end_z,
209 double start_time,
double end_time,
210 int trackid,
int pdgcode,
211 std::string
const& vol)
std::vector< sim::OpDetBacktrackerRecord > YieldReflectedOpDetBacktrackerRecords()
std::map< int, std::map< int, int > > fLitePhotons
Encapsulate the construction of a single cyostat.
void AddEnergyDeposit(int n_elec, int n_photon, double energy, float start_x, float start_y, float start_z, float end_x, float end_y, float end_z, double start_time, double end_time, int trackid, int pdgcode, std::string const &vol="EMPTY")
OpDetPhotonTable * TheOpDetPhotonTable
std::map< int, std::map< int, int > > fReflectedLitePhotons
sim::SimPhotons & GetReflectedPhotonsForOpChannel(size_t opchannel)
Energy deposited on a readout Optical Detector by simulated tracks.
sim::SimPhotons & GetPhotonsForOpChannel(size_t opchannel)
contains objects relating to OpDet hits
int OpDetNum() const
Returns the readout Optical Detector this object describes.
std::unordered_map< std::string, std::vector< sim::SimEnergyDeposit > > const & GetSimEnergyDeposits() const
void AddPhoton(size_t opchannel, sim::OnePhoton &&photon, bool Reflected=false)
std::vector< sim::SimPhotons > fReflectedDetectedPhotons
void AddOpDetBacktrackerRecord(sim::OpDetBacktrackerRecord soc, bool Reflected=false)
void AddLitePhoton(int opchannel, int time, int nphotons, bool Reflected=false)
Encapsulate the geometry of an optical detector.
static OpDetPhotonTable * Instance(bool LitePhotons=false)
std::vector< sim::OpDetBacktrackerRecord > cReflectedOpDetBacktrackerRecordsCol
std::vector< sim::OpDetBacktrackerRecord > YieldOpDetBacktrackerRecords()
std::unordered_map< std::string, std::vector< sim::SimEnergyDeposit > > fSimEDepCol
contains information for a single step in the detector simulation
std::vector< sim::OpDetBacktrackerRecord > cOpDetBacktrackerRecordsCol
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Point_t
Type for representation of position in physical 3D space.
void ClearTable(size_t nch=0)
std::vector< sim::SimPhotons > fDetectedPhotons
timePDclockSDPs_t const & timePDclockSDPsMap() const
Returns all the deposited energy information as stored.
art framework interface to geometry description
cet::coded_exception< error, detail::translate > exception
void ClearEnergyDeposits()
std::map< int, int > cOpChannelToSOCMap
std::map< int, int > cReflectedOpChannelToSOCMap