All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | Private Attributes | List of all members
sim::DumpSimPhotons Class Reference
Inheritance diagram for sim::DumpSimPhotons:

Public Types

using Parameters = art::EDAnalyzer::Table< Config >
 

Public Member Functions

 DumpSimPhotons (Parameters const &config)
 Configuration-checking constructor. More...
 
 DumpSimPhotons (DumpSimPhotons const &)=delete
 
 DumpSimPhotons (DumpSimPhotons &&)=delete
 
DumpSimPhotonsoperator= (DumpSimPhotons const &)=delete
 
DumpSimPhotonsoperator= (DumpSimPhotons &&)=delete
 
void analyze (art::Event const &event) override
 
template<typename Stream >
void DumpElement (Stream &&out, sim::SimPhotons const &simphotons, std::string indent="", bool bIndentFirst=true) const
 Dumps the content of the specified SimPhotons in the output stream. More...
 
template<typename Stream >
void DumpOnePhoton (Stream &&out, sim::OnePhoton const &photon) const
 Dumps a sim::OnePhoton on a single line. More...
 

Private Attributes

art::InputTag fInputPhotons
 name of SimPhotons's data product More...
 
std::string fOutputCategory
 name of the stream for output More...
 

Detailed Description

Definition at line 115 of file DumpSimPhotons_module.cc.

Member Typedef Documentation

using sim::DumpSimPhotons::Parameters = art::EDAnalyzer::Table<Config>

Definition at line 118 of file DumpSimPhotons_module.cc.

Constructor & Destructor Documentation

sim::DumpSimPhotons::DumpSimPhotons ( Parameters const &  config)
explicit

Configuration-checking constructor.

Definition at line 170 of file DumpSimPhotons_module.cc.

171  : EDAnalyzer(config)
172  , fInputPhotons(config().InputPhotons())
173  , fOutputCategory(config().OutputCategory())
174 {}
art::InputTag fInputPhotons
name of SimPhotons&#39;s data product
std::string fOutputCategory
name of the stream for output
sim::DumpSimPhotons::DumpSimPhotons ( DumpSimPhotons const &  )
delete
sim::DumpSimPhotons::DumpSimPhotons ( DumpSimPhotons &&  )
delete

Member Function Documentation

void sim::DumpSimPhotons::analyze ( art::Event const &  event)
override

Definition at line 219 of file DumpSimPhotons_module.cc.

219  {
220 
221  // get the particles from the event
222  auto const& SimPhotons
223  = *(event.getValidHandle<std::vector<sim::SimPhotons>>(fInputPhotons));
224 
225  mf::LogVerbatim(fOutputCategory) << "Event " << event.id()
226  << " : data product '" << fInputPhotons.encode() << "' contains "
227  << SimPhotons.size() << " SimPhotons";
228 
229  unsigned int iPhoton = 0;
230  for (sim::SimPhotons const& photons: SimPhotons) {
231 
232  mf::LogVerbatim log(fOutputCategory);
233  // a bit of a header
234  log << "[#" << (iPhoton++) << "] ";
235  DumpElement(log, photons, " ", false);
236 
237  } // for
238  mf::LogVerbatim(fOutputCategory) << "\n"; // just an empty line
239 
240 } // sim::DumpSimPhotons::analyze()
void DumpElement(Stream &&out, sim::SimPhotons const &simphotons, std::string indent="", bool bIndentFirst=true) const
Dumps the content of the specified SimPhotons in the output stream.
art::InputTag fInputPhotons
name of SimPhotons&#39;s data product
std::string fOutputCategory
name of the stream for output
Collection of photons which recorded on one channel.
Definition: SimPhotons.h:136
template<typename Stream >
void sim::DumpSimPhotons::DumpElement ( Stream &&  out,
sim::SimPhotons const &  simphotons,
std::string  indent = "",
bool  bIndentFirst = true 
) const

Dumps the content of the specified SimPhotons in the output stream.

Template Parameters
Streamthe type of output stream
Parameters
outthe output stream
simphotonsthe SimPhotons to be dumped
indentbase indentation string (default: none)
bIndentFirstif first output line should be indented (default: yes)

The indent string is prepended to every line of output, with the possible exception of the first one, in case bIndentFirst is true.

The output starts on the current line, and the last line is NOT broken.

Definition at line 192 of file DumpSimPhotons_module.cc.

195  {
196  if (bIndentFirst) out << indent;
197  out << "channel=" << simphotons.OpChannel() << " has ";
198  if (simphotons.empty()) {
199  out << simphotons.size() << " no photons";
200  }
201  else {
202  out << simphotons.size() << " photons:";
203 
204  auto sortedPhotonPtrs = util::makePointerVector(simphotons);
205  std::sort
206  (sortedPhotonPtrs.begin(), sortedPhotonPtrs.end(), OnePhotonSorter());
207 
208  for (auto const* onephoton: sortedPhotonPtrs) {
209  out << "\n" << indent << " ";
210  DumpOnePhoton(out, *onephoton);
211  } // for
212 
213  }
214 
215 } // sim::DumpSimPhotons::DumpSimPhotons()
auto makePointerVector(Coll &coll)
Creates a STL vector with pointers to data from another collection.
void DumpOnePhoton(Stream &&out, sim::OnePhoton const &photon) const
Dumps a sim::OnePhoton on a single line.
template<typename Stream >
void sim::DumpSimPhotons::DumpOnePhoton ( Stream &&  out,
sim::OnePhoton const &  photon 
) const

Dumps a sim::OnePhoton on a single line.

Definition at line 179 of file DumpSimPhotons_module.cc.

180 {
181  out << "E=" << onephoton.Energy << " t=" << onephoton.Time
182  << " from " << onephoton.InitialPosition << " cm"
183  << " to " << onephoton.FinalLocalPosition << " cm"
184  ;
185  if (onephoton.SetInSD) out << " [in SD]"; // in sensitive detector?
186  out << " from track ID=" << onephoton.MotherTrackID;
187 } // sim::DumpSimPhotons::DumpOnePhoton()
DumpSimPhotons& sim::DumpSimPhotons::operator= ( DumpSimPhotons const &  )
delete
DumpSimPhotons& sim::DumpSimPhotons::operator= ( DumpSimPhotons &&  )
delete

Member Data Documentation

art::InputTag sim::DumpSimPhotons::fInputPhotons
private

name of SimPhotons's data product

Definition at line 160 of file DumpSimPhotons_module.cc.

std::string sim::DumpSimPhotons::fOutputCategory
private

name of the stream for output

Definition at line 161 of file DumpSimPhotons_module.cc.


The documentation for this class was generated from the following file: