34 #ifndef OPDETPHOTONTABLE_h 
   35 #define OPDETPHOTONTABLE_h 1 
   38 #include <unordered_map> 
   54       void AddLitePhoton( 
int opchannel, 
int time, 
int nphotons, 
bool Reflected=
false);
 
   55       void AddPhoton(std::map<
int, std::map<int, int>>* StepPhotonTable, 
bool Reflected=
false);
 
   56       void AddLitePhotons(std::map<
int, std::map<int, int>>* StepPhotonTable, 
bool Reflected=
false) { 
AddPhoton(StepPhotonTable, Reflected); }
 
   78                             float start_x,
float start_y, 
float start_z,
 
   79                             float end_x,
float end_y,
float end_z,
 
   81                             int trackid,
int pdgcode,
int g4trackid,
 
   82                             std::string 
const& vol=
"EMPTY");
 
   84       std::unordered_map<std::string, std::vector<sim::SimEnergyDeposit> > 
const& 
GetSimEnergyDeposits() 
const;
 
   95                                      std::map<int, int> &ChannelMap,
 
  109       std::unordered_map<std::string, std::vector<sim::SimEnergyDeposit> > 
fSimEDepCol;
 
std::vector< sim::OpDetBacktrackerRecord > YieldReflectedOpDetBacktrackerRecords()
std::map< int, std::map< int, int > > fLitePhotons
process_name can override from command line with o or output photon
All information of a photon entering the sensitive optical detector volume. 
std::map< int, int > & GetReflectedLitePhotonsForOpChannel(int opchannel)
std::map< int, std::map< int, int > > fReflectedLitePhotons
std::unordered_map< std::string, std::vector< sim::SimEnergyDeposit > > YieldSimEnergyDeposits()
Yields the map of energy deposits by volume name, and resets the internal one. 
sim::SimPhotons & GetReflectedPhotonsForOpChannel(size_t opchannel)
Energy deposited on a readout Optical Detector by simulated tracks. 
sim::SimPhotons & GetPhotonsForOpChannel(size_t opchannel)
void AddLitePhotons(std::map< int, std::map< int, int >> *StepPhotonTable, bool Reflected=false)
std::map< int, int > & GetLitePhotonsForOpChannel(int opchannel)
Simulation objects for optical detectors. 
then echo fcl sbnd_project sbnd_project sbnd_project sbnd_project production production end_time
std::vector< sim::SimPhotons > & GetPhotons(bool Reflected=false)
std::unordered_map< std::string, std::vector< sim::SimEnergyDeposit > > const & GetSimEnergyDeposits() const 
Returns the map of energy deposits by volume name. 
void AddPhoton(size_t opchannel, sim::OnePhoton &&photon, bool Reflected=false)
std::map< int, std::map< int, int > > GetReflectedLitePhotons()
std::vector< sim::SimPhotons > fReflectedDetectedPhotons
std::vector< sim::SimPhotons > & GetReflectedPhotons()
void AddOpDetBacktrackerRecord(sim::OpDetBacktrackerRecord soc, bool Reflected=false)
void AddLitePhoton(int opchannel, int time, int nphotons, bool Reflected=false)
static OpDetPhotonTable * Instance(bool LitePhotons=false)
std::vector< sim::OpDetBacktrackerRecord > cReflectedOpDetBacktrackerRecordsCol
Collection of photons which recorded on one channel. 
then echo fcl sbnd_project sbnd_project sbnd_project sbnd_project production production start_time
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::map< int, std::map< int, int > > GetLitePhotons(bool Reflected=false)
std::vector< sim::OpDetBacktrackerRecord > cOpDetBacktrackerRecordsCol
void ClearTable(size_t nch=0)
void AddEnergyDeposit(int n_photon, int n_elec, double scint_yield, 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, int g4trackid, std::string const &vol="EMPTY")
std::vector< sim::SimPhotons > fDetectedPhotons
void ClearEnergyDeposits()
std::map< int, int > cOpChannelToSOCMap
std::map< int, int > cReflectedOpChannelToSOCMap