Classes | Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
evgen::LightSource Class Reference

A module for optical MC testing and library building. More...

Inheritance diagram for evgen::LightSource:
art::EDProducer art::detail::Producer art::detail::LegacyModule art::Modifier art::ModuleBase art::ProductRegistryHelper

Classes

class  MaterialPointFilter
 Filters a point according to the material at that point. More...
 

Public Member Functions

 LightSource (fhicl::ParameterSet const &pset)
 
void produce (art::Event &evt)
 
void beginRun (art::Run &run)
 
- Public Member Functions inherited from art::EDProducer
 EDProducer (fhicl::ParameterSet const &pset)
 
template<typename Config >
 EDProducer (Table< Config > const &config)
 
std::string workerType () const
 
- Public Member Functions inherited from art::detail::Producer
virtual ~Producer () noexcept
 
 Producer (fhicl::ParameterSet const &)
 
 Producer (Producer const &)=delete
 
 Producer (Producer &&)=delete
 
Produceroperator= (Producer const &)=delete
 
Produceroperator= (Producer &&)=delete
 
void doBeginJob (SharedResources const &resources)
 
void doEndJob ()
 
void doRespondToOpenInputFile (FileBlock const &fb)
 
void doRespondToCloseInputFile (FileBlock const &fb)
 
void doRespondToOpenOutputFiles (FileBlock const &fb)
 
void doRespondToCloseOutputFiles (FileBlock const &fb)
 
bool doBeginRun (RunPrincipal &rp, ModuleContext const &mc)
 
bool doEndRun (RunPrincipal &rp, ModuleContext const &mc)
 
bool doBeginSubRun (SubRunPrincipal &srp, ModuleContext const &mc)
 
bool doEndSubRun (SubRunPrincipal &srp, ModuleContext const &mc)
 
bool doEvent (EventPrincipal &ep, ModuleContext const &mc, std::atomic< std::size_t > &counts_run, std::atomic< std::size_t > &counts_passed, std::atomic< std::size_t > &counts_failed)
 
- Public Member Functions inherited from art::Modifier
 ~Modifier () noexcept
 
 Modifier ()
 
 Modifier (Modifier const &)=delete
 
 Modifier (Modifier &&)=delete
 
Modifieroperator= (Modifier const &)=delete
 
Modifieroperator= (Modifier &&)=delete
 
- Public Member Functions inherited from art::ModuleBase
virtual ~ModuleBase () noexcept
 
 ModuleBase ()
 
ModuleDescription const & moduleDescription () const
 
void setModuleDescription (ModuleDescription const &)
 
std::array< std::vector< ProductInfo >, NumBranchTypes > const & getConsumables () const
 
void sortConsumables (std::string const &current_process_name)
 
template<typename T , BranchType BT>
ViewToken< T > consumesView (InputTag const &tag)
 
template<typename T , BranchType BT>
ViewToken< T > mayConsumeView (InputTag const &tag)
 

Private Member Functions

simb::MCTruth Sample ()
 
void checkMaterials () const
 Throws an exception if any of the configured materials is not present. More...
 
bool readParametersFromInputFile ()
 

Private Attributes

std::string fVersion
 
std::ifstream fInputFile
 
std::string fFileName
 
char fDummyString [256]
 
TTree * fPhotonsGenerated
 
TLorentzVector fShotPos
 
TLorentzVector fShotMom
 
Int_t fEvID
 
int fSourceMode
 
bool fFillTree
 
int fPosDist
 
int fTDist
 
int fPDist
 
std::set< std::string > const fSelectedMaterials
 Names of materials to consider scintillation from. More...
 
int fXSteps
 
int fYSteps
 
int fZSteps
 
sim::PhotonVoxelDef fThePhotonVoxelDef
 
int fVoxelCount
 
int fCurrentVoxel
 
geo::Vector_t fTPCCenter
 
std::vector< double > fRegionMin
 
std::vector< double > fRegionMax
 
bool fUseCustomRegion
 
geo::Point_t fCenter
 Central position of source [cm]. More...
 
bool fPointSource
 
double fT
 
double fSigmaX
 
double fSigmaY
 
double fSigmaZ
 
double fSigmaT
 
double fP
 
double fSigmaP
 
int fN
 
double const fNMaxF
 Maximum number of attempted samplings (factor on top of fN). More...
 
int fFirstVoxel
 
int fLastVoxel
 
CLHEP::HepRandomEngine & fEngine
 
geo::GeometryCore const & fGeom
 Geometry service provider (cached). More...
 

Static Private Attributes

static const int kUNIF = 0
 
static const int kGAUS = 1
 
static const int kFILE = 0
 
static const int kSCAN = 1
 

Additional Inherited Members

- Public Types inherited from art::EDProducer
using ModuleType = EDProducer
 
using WorkerType = WorkerT< EDProducer >
 
- Public Types inherited from art::detail::Producer
template<typename UserConfig , typename KeysToIgnore = void>
using Table = Modifier::Table< UserConfig, KeysToIgnore >
 
- Public Types inherited from art::Modifier
template<typename UserConfig , typename UserKeysToIgnore = void>
using Table = ProducerTable< UserConfig, detail::ModuleConfig, UserKeysToIgnore >
 
- Static Public Member Functions inherited from art::EDProducer
static void commitEvent (EventPrincipal &ep, Event &e)
 
- Protected Member Functions inherited from art::ModuleBase
ConsumesCollectorconsumesCollector ()
 
template<typename T , BranchType = InEvent>
ProductToken< T > consumes (InputTag const &)
 
template<typename Element , BranchType = InEvent>
ViewToken< Element > consumesView (InputTag const &)
 
template<typename T , BranchType = InEvent>
void consumesMany ()
 
template<typename T , BranchType = InEvent>
ProductToken< T > mayConsume (InputTag const &)
 
template<typename Element , BranchType = InEvent>
ViewToken< Element > mayConsumeView (InputTag const &)
 
template<typename T , BranchType = InEvent>
void mayConsumeMany ()
 

Detailed Description

A module for optical MC testing and library building.

Light source event generator which simulate an extended isotropic photon source.

The light source can be run in two modes, file mode or scan mode. Each requires the specification of a different set of parameters.

File mode

Light source position, intensity and shape are supplied on an event by event basis in a text file. See the example provided for the format. Pararmeters required:

int32   SourceMode = 0      - sets light source to file mode
string  FileName            - file of per event light source specifications
int32   PosDist             - how to distribute production points sampled in momentum, position
int32   PDist                   and time ranges specified.  For all of these :
int32   TDist                   0 = uniform and 1 = gauss
bool    FillTree            - whether to write a tree of photon production points to fileservice

Upon reaching the end of the file, the light source will loop back to the first point. hence a one line text file will give a constant light source size, position and intensity.

Scan mode

Divide volume into cuboidal regions and produce an isotropic light source in each, using one region per event. User can specify either to use the full detector volume or some custom specified volume.

This mode is used when building a fast photon sim library, and performing volume scan sensitivity studies.

int32   SourceMode = 1      - sets light source to scan mode
int32   N                   - number of photons to shoot from each point
double  P                   - peak photon momentum (or energy) in eV
double  SigmaP              - momentum distribution width
double  XSteps              - Number of regions to divide volume into in each direction
double  YSteps
double  ZSteps
double  T0                  - Peak time of photon production
double  SigmaT              - time distribution width
int32   PosDist             - how to distribute production points sampled in momentum, position
int32   PDist                 and time ranges specified.  For all of these :
int32   TDist                   0 = uniform and 1 = gaussian
bool    FillTree            - whether to write a tree of photon production points to fileservice
bool    UseCustomRegion     - supply our own volume specification or use the full detector volume?
vdouble[3]  RegionMin       - bounding corners of the custom volume specification
vdouble[3]  RegionMax           (only used if UseCustomRegion=true)

Configuration parameters

This is a partial list of the supported configuration parameters:

Definition at line 129 of file LightSource_module.cc.

Constructor & Destructor Documentation

evgen::LightSource::LightSource ( fhicl::ParameterSet const &  pset)
explicit

Definition at line 268 of file LightSource_module.cc.

269  : art::EDProducer{pset}
270  , fSourceMode{pset.get<int>("SourceMode")}
271  , fFillTree{pset.get<bool>("FillTree")}
272  , fPosDist{pset.get<int>("PosDist")}
273  , fTDist{pset.get<int>("TDist")}
274  , fPDist{pset.get<int>("PDist")}
275  , fSelectedMaterials{makeSet(pset.get<std::vector<std::string>>("SelectMaterials", {}))}
276  , fNMaxF{pset.get<double>("NMaxFactor", 100.0)}
277  // create a default random engine; obtain the random seed from NuRandomService,
278  // unless overridden in configuration with key "Seed"
279  , fEngine(art::ServiceHandle<rndm::NuRandomService> {}->createEngine(*this, pset, "Seed"))
280  , fGeom(*lar::providerFrom<geo::Geometry const>())
281  {
282 
283  checkMaterials();
284 
285  // load optional parameters in function
286  produces<sumdata::RunData, art::InRun>();
287  produces<std::vector<simb::MCTruth>>();
288 
289  if (fSourceMode == kFILE) {
290  fFileName = pset.get<std::string>("SteeringFile");
291  fInputFile.open(fFileName.c_str());
292  fInputFile.getline(fDummyString, 256);
293  }
294  else if (fSourceMode == kSCAN) {
295  fT = pset.get<double>("T0");
296  fSigmaT = pset.get<double>("SigmaT");
297  fN = pset.get<int>("N");
298 
299  fFirstVoxel = pset.get<int>("FirstVoxel");
300  fLastVoxel = pset.get<int>("LastVoxel");
301 
302  fP = pset.get<double>("P");
303  fSigmaP = pset.get<double>("SigmaP");
304 
305  fUseCustomRegion = pset.get<bool>("UseCustomRegion");
306  fPointSource = pset.get<bool>("PointSource", false);
307 
308  if (fUseCustomRegion) {
309  fRegionMin = pset.get<std::vector<double>>("RegionMin");
310  fRegionMax = pset.get<std::vector<double>>("RegionMax");
311  fXSteps = pset.get<int>("XSteps");
312  fYSteps = pset.get<int>("YSteps");
313  fZSteps = pset.get<int>("ZSteps");
314  }
315 
316  // get TPC dimensions removed. -TA
317 
318  fCurrentVoxel = 0;
319 
320  // define voxelization based on parameters read from config.
321  // There are two modes - either read the dimensions of the TPC from
322  // the geometry, or use values specified by the user.
323  if (!fUseCustomRegion) {
326  }
327  else {
329  fRegionMax[0],
330  fXSteps,
331  fRegionMin[1],
332  fRegionMax[1],
333  fYSteps,
334  fRegionMin[2],
335  fRegionMax[2],
336  fZSteps);
337  }
338 
339  // Set distribution widths to voxel size
340 
344 
345  // Get number of voxels we will step through
346 
348 
349  if (fLastVoxel < 0) fLastVoxel = fVoxelCount;
350 
351  mf::LogVerbatim("LightSource") << "Light Source : Determining voxel params : " << fVoxelCount
352  << " " << fSigmaX << " " << fSigmaY << " " << fSigmaZ;
353  }
354  else {
355  throw cet::exception("LightSource")
356  << "EVGEN Light Source : Unrecognised light source mode\n";
357  }
358 
359  if (fFillTree) {
361  fPhotonsGenerated = tfs->make<TTree>("PhotonsGenerated", "PhotonsGenerated");
362  fPhotonsGenerated->Branch("X", &(fShotPos[0]), "X/D");
363  fPhotonsGenerated->Branch("Y", &(fShotPos[1]), "Y/D");
364  fPhotonsGenerated->Branch("Z", &(fShotPos[2]), "Z/D");
365  fPhotonsGenerated->Branch("T", &(fShotPos[3]), "T/D");
366  fPhotonsGenerated->Branch("PX", &(fShotMom[0]), "PX/D");
367  fPhotonsGenerated->Branch("PY", &(fShotMom[1]), "PY/D");
368  fPhotonsGenerated->Branch("PZ", &(fShotMom[2]), "PZ/D");
369  fPhotonsGenerated->Branch("PT", &(fShotMom[3]), "PT/D");
370  fPhotonsGenerated->Branch("EventID", &fEvID, "EventID/I");
371  }
372  }
std::vector< double > fRegionMin
MaybeLogger_< ELseverityLevel::ELsev_info, true > LogVerbatim
geo::GeometryCore const & fGeom
Geometry service provider (cached).
std::string string
Definition: nybbler.cc:12
Vector GetVoxelSize() const
Returns a vector describing the span of a single voxel in x, y an z [cm].
Definition: PhotonVoxels.h:224
static const int kSCAN
Representation of a region of space diced into voxels.
Definition: PhotonVoxels.h:58
std::vector< double > fRegionMax
double const fNMaxF
Maximum number of attempted samplings (factor on top of fN).
void checkMaterials() const
Throws an exception if any of the configured materials is not present.
CLHEP::HepRandomEngine & fEngine
sim::PhotonVoxelDef fThePhotonVoxelDef
const sim::PhotonVoxelDef & GetVoxelDef() const
static const int kFILE
unsigned int GetNVoxels() const
Returns the total number of voxels in the volume.
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
std::set< std::string > const fSelectedMaterials
Names of materials to consider scintillation from.

Member Function Documentation

void evgen::LightSource::beginRun ( art::Run run)
virtual

Reimplemented from art::EDProducer.

Definition at line 376 of file LightSource_module.cc.

377  {
378  run.put(std::make_unique<sumdata::RunData>(fGeom.DetectorName()));
379 
381  }
geo::GeometryCore const & fGeom
Geometry service provider (cached).
std::string DetectorName() const
Returns a string with the name of the detector, as configured.
ProductID put(std::unique_ptr< PROD > &&edp, std::string const &instance={})
Definition: DataViewImpl.h:686
void evgen::LightSource::checkMaterials ( ) const
private

Throws an exception if any of the configured materials is not present.

Definition at line 548 of file LightSource_module.cc.

549  {
550 
551  TGeoManager const& manager = *(fGeom.ROOTGeoManager());
552 
553  { // start scope
554  mf::LogDebug log("LightSource");
555  auto const& matList = *(manager.GetListOfMaterials());
556  log << matList.GetSize() << " elements/materials in the geometry:";
557  for (auto const* obj : matList) {
558  auto const mat = dynamic_cast<TGeoMaterial const*>(obj);
559  log << "\n '" << mat->GetName() << "' (Z=" << mat->GetZ() << " A=" << mat->GetA() << ")";
560  } // for
561  } // end scope
562 
563  std::set<std::string> missingMaterials;
564  for (auto const& matName : fSelectedMaterials) {
565  if (!manager.GetMaterial(matName.c_str())) missingMaterials.insert(matName);
566  }
567  if (missingMaterials.empty()) return;
568 
570  e << "Requested filtering on " << missingMaterials.size()
571  << " materials which are not present in the geometry:";
572  for (auto const& matName : missingMaterials)
573  e << "\n '" << matName << "'";
574  throw e << "\n";
575 
576  } // LightSource::checkMaterials()
geo::GeometryCore const & fGeom
Geometry service provider (cached).
TGeoManager * ROOTGeoManager() const
Access to the ROOT geometry description manager.
const double e
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
std::set< std::string > const fSelectedMaterials
Names of materials to consider scintillation from.
void evgen::LightSource::produce ( art::Event evt)
virtual

Implements art::EDProducer.

Definition at line 385 of file LightSource_module.cc.

386  {
387  if(fSourceMode==kFILE) {
388  // Each event, read coordinates of gun and number of photons to shoot from file
389 
390  // read in one line
392  // Loop file if required
393  mf::LogWarning("LightSource") << "EVGEN Light Source : Warning, reached end of file,"
394  << " looping back to beginning";
395  fInputFile.clear();
396  fInputFile.seekg(0, std::ios::beg);
397  fInputFile.getline(fDummyString, 256);
398 
400  throw cet::exception("LightSource") << "EVGEN Light Source : File error in "
401  << fFileName << "\n";
402  }
403 
404  }
405 
407  fCenter.X() + fSigmaX,
408  1,
409  fCenter.Y() - fSigmaY,
410  fCenter.Y() + fSigmaY,
411  1,
412  fCenter.Z() - fSigmaZ,
413  fCenter.Z() + fSigmaZ,
414  1);
415 
416  fCurrentVoxel=0;
417  }
418  else if (fSourceMode == kSCAN) {
419  // Step through detector using a number of steps provided in the config file
420  // firing a constant number of photons from each point
422  }
423  else {
424  // Neither file or scan mode, probably a config file error
425  throw cet::exception("LightSource") << "EVGEN : Light Source, unrecognised source mode\n";
426  }
427 
428  auto truthcol = std::make_unique<std::vector<simb::MCTruth>>();
429 
430  truthcol->push_back(Sample());
431  int const nPhotons = truthcol->back().NParticles();
432 
433  evt.put(std::move(truthcol));
434 
435  phot::PhotonVisibilityService* vis = nullptr;
436  try {
438  }
439  catch (art::Exception const& e) {
440  // if the service is not configured, then this is not a build job
441  // (it is a simple generation job instead)
442  if (e.categoryCode() != art::errors::ServiceNotFound) throw;
443  }
444 
445  if (vis && vis->IsBuildJob()) {
446  mf::LogVerbatim("LightSource") << "Light source : Stowing voxel params ";
447  vis->StoreLightProd(fCurrentVoxel, nPhotons);
448  }
449 
450  if (fCurrentVoxel != fLastVoxel) { ++fCurrentVoxel; }
451  else {
452  mf::LogVerbatim("LightSource")
453  << "EVGEN Light Source fully scanned detector. Starting over.";
455  }
456  }
MaybeLogger_< ELseverityLevel::ELsev_info, true > LogVerbatim
static const int kSCAN
Representation of a region of space diced into voxels.
Definition: PhotonVoxels.h:58
const double e
def move(depos, offset)
Definition: depos.py:107
simb::MCTruth Sample()
ProductID put(std::unique_ptr< PROD > &&edp, std::string const &instance={})
Definition: DataViewImpl.h:686
sim::PhotonVoxelDef fThePhotonVoxelDef
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
geo::Point_t fCenter
Central position of source [cm].
Point GetCenter() const
Returns the center of the voxel (type Point).
Definition: PhotonVoxels.h:199
MaybeLogger_< ELseverityLevel::ELsev_warning, false > LogWarning
static const int kFILE
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
PhotonVoxel GetPhotonVoxel(int ID) const
bool evgen::LightSource::readParametersFromInputFile ( )
private

Reads from fInputFile all other parameters in one line.

Returns
whether all reading were successful (ifstream::good()).

Definition at line 619 of file LightSource_module.cc.

619  {
620  double x, y, z;
621  fInputFile >> x >> y >> z >> fT
622  >> fSigmaX >> fSigmaY >> fSigmaZ >> fSigmaT
623  >> fP >> fSigmaP >> fN;
624  fCenter = { x, y, z };
625  if (!fInputFile.good()) return false;
626 
628  std::getline(fInputFile, dummy); // this can fail for what I care
629  return true;
630  } // LightSource::readParametersFromInputFile()
std::string string
Definition: nybbler.cc:12
geo::Point_t fCenter
Central position of source [cm].
cet::LibraryManager dummy("noplugin")
list x
Definition: train.py:276
simb::MCTruth evgen::LightSource::Sample ( )
private

Definition at line 459 of file LightSource_module.cc.

460  {
461  mf::LogVerbatim("LightSource") << "Light source debug : Shooting at " << fCenter;
462 
463  CLHEP::RandFlat flat(fEngine, -1.0, 1.0);
464  CLHEP::RandGaussQ gauss(fEngine);
465 
466  MaterialPointFilter filter(fGeom, fSelectedMaterials);
467 
468  simb::MCTruth mct;
470 
471  unsigned long long int const nMax = static_cast<unsigned long long int>(double(fN) * fNMaxF);
472  unsigned long long int fired = 0ULL;
473  while (mct.NParticles() < fN) {
474  if (fired >= nMax) break;
475 
476  // Choose momentum (supplied in eV, convert to GeV)
477  double const p =
478  1e-9 * ((fPDist == kGAUS) ? gauss.fire(fP, fSigmaP) : fP + fSigmaP * flat.fire());
479 
480  // Choose position
481  ++fired;
482  geo::Point_t x;
483  if (fPointSource) { x = fCenter; }
484  else {
485  if (fPosDist == kGAUS) {
486  x = {gauss.fire(fCenter.X(), fSigmaX),
487  gauss.fire(fCenter.Y(), fSigmaY),
488  gauss.fire(fCenter.Z(), fSigmaZ)};
489  }
490  else {
491  x = {fCenter.X() + fSigmaX * flat.fire(),
492  fCenter.Y() + fSigmaY * flat.fire(),
493  fCenter.Z() + fSigmaZ * flat.fire()};
494  }
495 
496  if (!filter.accept(x)) continue;
497  }
498 
499  // Choose time
500  double t;
501  if (fTDist == kGAUS) { t = gauss.fire(fT, fSigmaT); }
502  else {
503  t = fT + fSigmaT * flat.fire();
504  }
505 
506  //assume the position is relative to the center of the TPC
507  //x += fTPCCenter;
508 
509  fShotPos = TLorentzVector(x.X(), x.Y(), x.Z(), t);
510 
511  // Choose angles
512  double costh = flat.fire();
513  double sinth = std::sqrt(1.0 - cet::square(costh));
514  double phi = 2 * M_PI * flat.fire();
515 
516  // Generate momentum 4-vector
517 
518  fShotMom = TLorentzVector(p * sinth * cos(phi), p * sinth * sin(phi), p * costh, p);
519 
520  int trackid = -(mct.NParticles() +
521  1); // set track id to -i as these are all primary particles and have id <= 0
522  std::string primary("primary");
523  int PDG = 0; //optical photons have PDG 0
524 
525  simb::MCParticle part(trackid, PDG, primary);
526  part.AddTrajectoryPoint(fShotPos, fShotMom);
527 
528  if (fFillTree) fPhotonsGenerated->Fill();
529 
530  mct.Add(part);
531  }
532 
533  mf::LogInfo("LightSource") << "Generated " << mct.NParticles() << " photons after " << fired
534  << " tries.";
535  if (mct.NParticles() < fN) {
536  // this may mean `NMaxFactor` is too small, or the volume is wrong;
537  // or it may be just expected
538  mf::LogWarning("LightSource")
539  << "Warning: " << mct.NParticles() << " photons generated after " << fired << " tries, but "
540  << fN << " were requested.";
541  }
542 
543  return mct;
544  } // LightSource::Sample()
MaybeLogger_< ELseverityLevel::ELsev_info, true > LogVerbatim
geo::GeometryCore const & fGeom
Geometry service provider (cached).
void SetOrigin(simb::Origin_t origin)
Definition: MCTruth.h:82
std::string string
Definition: nybbler.cc:12
MaybeLogger_< ELseverityLevel::ELsev_info, false > LogInfo
static const int kGAUS
int NParticles() const
Definition: MCTruth.h:75
constexpr T square(T x)
Definition: pow.h:21
double const fNMaxF
Maximum number of attempted samplings (factor on top of fN).
CLHEP::HepRandomEngine & fEngine
const uint PDG
Definition: qregexp.cpp:140
const double e
single particles thrown at the detector
Definition: MCTruth.h:26
p
Definition: test.py:223
#define M_PI
Definition: includeROOT.h:54
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Point_t
Type for representation of position in physical 3D space.
Definition: geo_vectors.h:184
void Add(simb::MCParticle const &part)
Definition: MCTruth.h:80
geo::Point_t fCenter
Central position of source [cm].
MaybeLogger_< ELseverityLevel::ELsev_warning, false > LogWarning
list x
Definition: train.py:276
static unsigned filter(unsigned char *out, const unsigned char *in, unsigned w, unsigned h, const LodePNG_InfoColor *info)
Definition: lodepng.cpp:3576
Event generator information.
Definition: MCTruth.h:32
std::set< std::string > const fSelectedMaterials
Names of materials to consider scintillation from.

Member Data Documentation

geo::Point_t evgen::LightSource::fCenter
private

Central position of source [cm].

Definition at line 229 of file LightSource_module.cc.

int evgen::LightSource::fCurrentVoxel
private

Definition at line 220 of file LightSource_module.cc.

char evgen::LightSource::fDummyString[256]
private

Definition at line 194 of file LightSource_module.cc.

CLHEP::HepRandomEngine& evgen::LightSource::fEngine
private

Definition at line 248 of file LightSource_module.cc.

Int_t evgen::LightSource::fEvID
private

Definition at line 200 of file LightSource_module.cc.

std::string evgen::LightSource::fFileName
private

Definition at line 193 of file LightSource_module.cc.

bool evgen::LightSource::fFillTree
private

Definition at line 204 of file LightSource_module.cc.

int evgen::LightSource::fFirstVoxel
private

Definition at line 245 of file LightSource_module.cc.

geo::GeometryCore const& evgen::LightSource::fGeom
private

Geometry service provider (cached).

Definition at line 249 of file LightSource_module.cc.

std::ifstream evgen::LightSource::fInputFile
private

Definition at line 192 of file LightSource_module.cc.

int evgen::LightSource::fLastVoxel
private

Definition at line 246 of file LightSource_module.cc.

int evgen::LightSource::fN
private

Definition at line 240 of file LightSource_module.cc.

double const evgen::LightSource::fNMaxF
private

Maximum number of attempted samplings (factor on top of fN).

Definition at line 243 of file LightSource_module.cc.

double evgen::LightSource::fP
private

Definition at line 236 of file LightSource_module.cc.

int evgen::LightSource::fPDist
private

Definition at line 207 of file LightSource_module.cc.

TTree* evgen::LightSource::fPhotonsGenerated
private

Definition at line 197 of file LightSource_module.cc.

bool evgen::LightSource::fPointSource
private

Definition at line 230 of file LightSource_module.cc.

int evgen::LightSource::fPosDist
private

Definition at line 205 of file LightSource_module.cc.

std::vector<double> evgen::LightSource::fRegionMax
private

Definition at line 225 of file LightSource_module.cc.

std::vector<double> evgen::LightSource::fRegionMin
private

Definition at line 224 of file LightSource_module.cc.

std::set<std::string> const evgen::LightSource::fSelectedMaterials
private

Names of materials to consider scintillation from.

Definition at line 210 of file LightSource_module.cc.

TLorentzVector evgen::LightSource::fShotMom
private

Definition at line 199 of file LightSource_module.cc.

TLorentzVector evgen::LightSource::fShotPos
private

Definition at line 198 of file LightSource_module.cc.

double evgen::LightSource::fSigmaP
private

Definition at line 237 of file LightSource_module.cc.

double evgen::LightSource::fSigmaT
private

Definition at line 235 of file LightSource_module.cc.

double evgen::LightSource::fSigmaX
private

Definition at line 232 of file LightSource_module.cc.

double evgen::LightSource::fSigmaY
private

Definition at line 233 of file LightSource_module.cc.

double evgen::LightSource::fSigmaZ
private

Definition at line 234 of file LightSource_module.cc.

int evgen::LightSource::fSourceMode
private

Definition at line 203 of file LightSource_module.cc.

double evgen::LightSource::fT
private

Definition at line 231 of file LightSource_module.cc.

int evgen::LightSource::fTDist
private

Definition at line 206 of file LightSource_module.cc.

sim::PhotonVoxelDef evgen::LightSource::fThePhotonVoxelDef
private

Definition at line 217 of file LightSource_module.cc.

geo::Vector_t evgen::LightSource::fTPCCenter
private

Definition at line 223 of file LightSource_module.cc.

bool evgen::LightSource::fUseCustomRegion
private

Definition at line 226 of file LightSource_module.cc.

std::string evgen::LightSource::fVersion
private

Definition at line 183 of file LightSource_module.cc.

int evgen::LightSource::fVoxelCount
private

Definition at line 219 of file LightSource_module.cc.

int evgen::LightSource::fXSteps
private

Definition at line 213 of file LightSource_module.cc.

int evgen::LightSource::fYSteps
private

Definition at line 214 of file LightSource_module.cc.

int evgen::LightSource::fZSteps
private

Definition at line 215 of file LightSource_module.cc.

const int evgen::LightSource::kFILE = 0
staticprivate

Definition at line 188 of file LightSource_module.cc.

const int evgen::LightSource::kGAUS = 1
staticprivate

Definition at line 187 of file LightSource_module.cc.

const int evgen::LightSource::kSCAN = 1
staticprivate

Definition at line 189 of file LightSource_module.cc.

const int evgen::LightSource::kUNIF = 0
staticprivate

Definition at line 186 of file LightSource_module.cc.


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