LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
evgen::PhotonGen Class Reference
Inheritance diagram for evgen::PhotonGen:
art::EDProducer art::detail::Producer art::detail::LegacyModule art::Modifier art::ModuleBase art::ProductRegistryHelper

Public Types

using ModuleType = EDProducer
 
template<typename UserConfig , typename KeysToIgnore = void>
using Table = Modifier::Table< UserConfig, KeysToIgnore >
 

Public Member Functions

 PhotonGen (fhicl::ParameterSet const &pset)
 
void produce (art::Event &evt)
 
void beginRun (art::Run &run)
 
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)
 
void fillProductDescriptions ()
 
void registerProducts (ProductDescriptions &productsToRegister)
 
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)
 
std::unique_ptr< Worker > makeWorker (WorkerParams const &wp)
 
template<typename T , BranchType BT>
ViewToken< T > consumesView (InputTag const &tag)
 
template<typename T , BranchType BT>
ViewToken< T > mayConsumeView (InputTag const &tag)
 

Protected Member Functions

ConsumesCollector & consumesCollector ()
 
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 ()
 

Private Member Functions

void Sample (simb::MCTruth &truth)
 

Private Attributes

bool fFillTree
 
TTree * fPhotonGen
 
TLorentzVector fShotPos
 
TLorentzVector fShotMom
 
Int_t fEvID
 
bool fScan
 
double fPx
 
double fPy
 
double fPz
 
int fPosDist
 
int fTDist
 
int fPDist
 
double fX
 
double fY
 
double fZ
 
double fT
 
double fSigmaT
 
double fP
 
double fSigmaP
 
int fN
 
CLHEP::HepRandomEngine & fEngine
 
double fXmin
 
double fXmax
 
double fYmin
 
double fYmax
 
double fZmin
 
double fZmax
 

Static Private Attributes

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

Detailed Description

Definition at line 48 of file PhotonGen_module.cc.

Member Typedef Documentation

Definition at line 17 of file EDProducer.h.

template<typename UserConfig , typename KeysToIgnore = void>
using art::detail::Producer::Table = Modifier::Table<UserConfig, KeysToIgnore>
inherited

Definition at line 26 of file Producer.h.

Constructor & Destructor Documentation

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

Definition at line 101 of file PhotonGen_module.cc.

References art::detail::EngineCreator::createEngine(), fEngine, fEvID, fFillTree, fN, fP, fPDist, fPhotonGen, fPosDist, fPx, fPy, fPz, fScan, fShotMom, fShotPos, fSigmaP, fSigmaT, fT, and fTDist.

102  : art::EDProducer{pset}
103  , fFillTree{pset.get<bool>("FillTree")}
104  , fScan{pset.get<bool>("Scan")}
105  , fPosDist{pset.get<int>("PosDist")}
106  , fTDist{pset.get<int>("TDist")}
107  , fPDist{pset.get<int>("PDist")}
108  , fT{pset.get<double>("T0")}
109  , fSigmaT{pset.get<double>("SigmaT")}
110  , fP{pset.get<double>("P")}
111  , fSigmaP{pset.get<double>("SigmaP")}
112  , fN{pset.get<int>("N")}
113  , fEngine(art::ServiceHandle<rndm::NuRandomService>()->registerAndSeedEngine(createEngine(0),
114  pset,
115  "Seed"))
116  {
117  produces<sumdata::RunData, art::InRun>();
118  produces<std::vector<simb::MCTruth>>();
119 
120  if (fFillTree) {
122  fPhotonGen = tfs->make<TTree>("PhGen", "PhGen");
123  fPhotonGen->Branch("X", &(fShotPos[0]), "X/D");
124  fPhotonGen->Branch("Y", &(fShotPos[1]), "Y/D");
125  fPhotonGen->Branch("Z", &(fShotPos[2]), "Z/D");
126  fPhotonGen->Branch("T", &(fShotPos[3]), "T/D");
127  fPhotonGen->Branch("PX", &(fShotMom[0]), "PX/D");
128  fPhotonGen->Branch("PY", &(fShotMom[1]), "PY/D");
129  fPhotonGen->Branch("PZ", &(fShotMom[2]), "PZ/D");
130  fPhotonGen->Branch("PT", &(fShotMom[3]), "PT/D");
131  fPhotonGen->Branch("EventID", &fEvID, "EventID/I");
132  }
133 
134  if (fScan) {
135  fPx = pset.get<double>("X");
136  fPy = pset.get<double>("Y");
137  fPz = pset.get<double>("Z");
138  std::cout << "Will generate photons from 3 points." << std::endl;
139  }
140  }
base_engine_t & createEngine(seed_t seed)
TLorentzVector fShotMom
CLHEP::HepRandomEngine & fEngine
TLorentzVector fShotPos

Member Function Documentation

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

Reimplemented from art::EDProducer.

Definition at line 143 of file PhotonGen_module.cc.

References geo::CryostatGeo::Boundaries(), geo::GeometryCore::Cryostat(), geo::GeometryCore::DetectorName(), art::fullRun(), fXmax, fXmin, fYmax, fYmin, fZmax, fZmin, geo::CryostatGeo::NOpDet(), and art::Run::put().

144  {
146  std::cout << "Number of optical detector: " << int(geo->Cryostat().NOpDet()) << std::endl;
147 
148  auto const CryoBounds = geo->Cryostat().Boundaries();
149  fXmin = CryoBounds.MinX();
150  fXmax = CryoBounds.MaxX();
151  fYmin = CryoBounds.MinY();
152  fYmax = CryoBounds.MaxY();
153  fZmin = CryoBounds.MinZ();
154  fZmax = CryoBounds.MaxZ();
155  std::cout << "Cryo Boundaries:" << std::endl;
156  std::cout << "Xmin: " << fXmin << " Xmax: " << fXmax << " Ymin: " << fYmin << " Ymax: " << fYmax
157  << " Zmin: " << fZmin << " Zmax: " << fZmax << std::endl;
158  run.put(std::make_unique<sumdata::RunData>(geo->DetectorName()), art::fullRun());
159  }
constexpr auto fullRun()
PutHandle< PROD > put(std::unique_ptr< PROD > &&edp, std::string const &instance={})
Definition: Run.h:121
CryostatGeo const & Cryostat(CryostatID const &cryoid=cryostat_zero) const
Returns the specified cryostat.
unsigned int NOpDet() const
Number of optical detectors in this TPC.
Definition: CryostatGeo.h:321
geo::BoxBoundedGeo const & Boundaries() const
Returns boundaries of the cryostat (in centimetres).
Definition: CryostatGeo.h:114
std::string const & DetectorName() const
Returns a string with the name of the detector, as configured.
Definition: GeometryCore.h:203
Namespace collecting geometry-related classes utilities.
template<typename T , BranchType BT>
ProductToken< T > art::ModuleBase::consumes ( InputTag const &  tag)
protectedinherited

Definition at line 61 of file ModuleBase.h.

References art::ModuleBase::collector_, and art::ConsumesCollector::consumes().

62  {
63  return collector_.consumes<T, BT>(tag);
64  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
ProductToken< T > consumes(InputTag const &)
ConsumesCollector & art::ModuleBase::consumesCollector ( )
protectedinherited

Definition at line 57 of file ModuleBase.cc.

References art::ModuleBase::collector_.

58  {
59  return collector_;
60  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
template<typename T , BranchType BT>
void art::ModuleBase::consumesMany ( )
protectedinherited

Definition at line 75 of file ModuleBase.h.

References art::ModuleBase::collector_, and art::ConsumesCollector::consumesMany().

76  {
77  collector_.consumesMany<T, BT>();
78  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
template<typename Element , BranchType = InEvent>
ViewToken<Element> art::ModuleBase::consumesView ( InputTag const &  )
protectedinherited
template<typename T , BranchType BT>
ViewToken<T> art::ModuleBase::consumesView ( InputTag const &  tag)
inherited

Definition at line 68 of file ModuleBase.h.

References art::ModuleBase::collector_, and art::ConsumesCollector::consumesView().

69  {
70  return collector_.consumesView<T, BT>(tag);
71  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
ViewToken< Element > consumesView(InputTag const &)
void art::detail::Producer::doBeginJob ( SharedResources const &  resources)
inherited

Definition at line 22 of file Producer.cc.

References art::detail::Producer::beginJobWithFrame(), and art::detail::Producer::setupQueues().

23  {
24  setupQueues(resources);
25  ProcessingFrame const frame{ScheduleID{}};
26  beginJobWithFrame(frame);
27  }
virtual void setupQueues(SharedResources const &)=0
virtual void beginJobWithFrame(ProcessingFrame const &)=0
bool art::detail::Producer::doBeginRun ( RunPrincipal rp,
ModuleContext const &  mc 
)
inherited

Definition at line 65 of file Producer.cc.

References art::detail::Producer::beginRunWithFrame(), art::RangeSet::forRun(), art::RunPrincipal::makeRun(), r, art::RunPrincipal::runID(), and art::ModuleContext::scheduleID().

66  {
67  auto r = rp.makeRun(mc, RangeSet::forRun(rp.runID()));
68  ProcessingFrame const frame{mc.scheduleID()};
69  beginRunWithFrame(r, frame);
70  r.commitProducts();
71  return true;
72  }
TRandom r
Definition: spectrum.C:23
virtual void beginRunWithFrame(Run &, ProcessingFrame const &)=0
static RangeSet forRun(RunID)
Definition: RangeSet.cc:51
bool art::detail::Producer::doBeginSubRun ( SubRunPrincipal srp,
ModuleContext const &  mc 
)
inherited

Definition at line 85 of file Producer.cc.

References art::detail::Producer::beginSubRunWithFrame(), art::RangeSet::forSubRun(), art::SubRunPrincipal::makeSubRun(), art::ModuleContext::scheduleID(), and art::SubRunPrincipal::subRunID().

86  {
87  auto sr = srp.makeSubRun(mc, RangeSet::forSubRun(srp.subRunID()));
88  ProcessingFrame const frame{mc.scheduleID()};
89  beginSubRunWithFrame(sr, frame);
90  sr.commitProducts();
91  return true;
92  }
virtual void beginSubRunWithFrame(SubRun &, ProcessingFrame const &)=0
static RangeSet forSubRun(SubRunID)
Definition: RangeSet.cc:57
void art::detail::Producer::doEndJob ( )
inherited

Definition at line 30 of file Producer.cc.

References art::detail::Producer::endJobWithFrame().

31  {
32  ProcessingFrame const frame{ScheduleID{}};
33  endJobWithFrame(frame);
34  }
virtual void endJobWithFrame(ProcessingFrame const &)=0
bool art::detail::Producer::doEndRun ( RunPrincipal rp,
ModuleContext const &  mc 
)
inherited

Definition at line 75 of file Producer.cc.

References art::detail::Producer::endRunWithFrame(), art::RunPrincipal::makeRun(), r, art::ModuleContext::scheduleID(), and art::Principal::seenRanges().

76  {
77  auto r = rp.makeRun(mc, rp.seenRanges());
78  ProcessingFrame const frame{mc.scheduleID()};
79  endRunWithFrame(r, frame);
80  r.commitProducts();
81  return true;
82  }
TRandom r
Definition: spectrum.C:23
virtual void endRunWithFrame(Run &, ProcessingFrame const &)=0
bool art::detail::Producer::doEndSubRun ( SubRunPrincipal srp,
ModuleContext const &  mc 
)
inherited

Definition at line 95 of file Producer.cc.

References art::detail::Producer::endSubRunWithFrame(), art::SubRunPrincipal::makeSubRun(), art::ModuleContext::scheduleID(), and art::Principal::seenRanges().

96  {
97  auto sr = srp.makeSubRun(mc, srp.seenRanges());
98  ProcessingFrame const frame{mc.scheduleID()};
99  endSubRunWithFrame(sr, frame);
100  sr.commitProducts();
101  return true;
102  }
virtual void endSubRunWithFrame(SubRun &, ProcessingFrame const &)=0
bool art::detail::Producer::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 
)
inherited

Definition at line 105 of file Producer.cc.

References art::detail::Producer::checkPutProducts_, e, art::EventPrincipal::makeEvent(), art::detail::Producer::produceWithFrame(), and art::ModuleContext::scheduleID().

110  {
111  auto e = ep.makeEvent(mc);
112  ++counts_run;
113  ProcessingFrame const frame{mc.scheduleID()};
114  produceWithFrame(e, frame);
115  e.commitProducts(checkPutProducts_, &expectedProducts<InEvent>());
116  ++counts_passed;
117  return true;
118  }
bool const checkPutProducts_
Definition: Producer.h:70
Float_t e
Definition: plot.C:35
virtual void produceWithFrame(Event &, ProcessingFrame const &)=0
void art::detail::Producer::doRespondToCloseInputFile ( FileBlock const &  fb)
inherited

Definition at line 44 of file Producer.cc.

References art::detail::Producer::respondToCloseInputFileWithFrame().

45  {
46  ProcessingFrame const frame{ScheduleID{}};
48  }
virtual void respondToCloseInputFileWithFrame(FileBlock const &, ProcessingFrame const &)=0
TFile fb("Li6.root")
void art::detail::Producer::doRespondToCloseOutputFiles ( FileBlock const &  fb)
inherited

Definition at line 58 of file Producer.cc.

References art::detail::Producer::respondToCloseOutputFilesWithFrame().

59  {
60  ProcessingFrame const frame{ScheduleID{}};
62  }
virtual void respondToCloseOutputFilesWithFrame(FileBlock const &, ProcessingFrame const &)=0
TFile fb("Li6.root")
void art::detail::Producer::doRespondToOpenInputFile ( FileBlock const &  fb)
inherited

Definition at line 37 of file Producer.cc.

References art::detail::Producer::respondToOpenInputFileWithFrame().

38  {
39  ProcessingFrame const frame{ScheduleID{}};
41  }
virtual void respondToOpenInputFileWithFrame(FileBlock const &, ProcessingFrame const &)=0
TFile fb("Li6.root")
void art::detail::Producer::doRespondToOpenOutputFiles ( FileBlock const &  fb)
inherited

Definition at line 51 of file Producer.cc.

References art::detail::Producer::respondToOpenOutputFilesWithFrame().

52  {
53  ProcessingFrame const frame{ScheduleID{}};
55  }
virtual void respondToOpenOutputFilesWithFrame(FileBlock const &, ProcessingFrame const &)=0
TFile fb("Li6.root")
void art::Modifier::fillProductDescriptions ( )
inherited

Definition at line 10 of file Modifier.cc.

References art::ProductRegistryHelper::fillDescriptions(), and art::ModuleBase::moduleDescription().

11  {
13  }
void fillDescriptions(ModuleDescription const &md)
ModuleDescription const & moduleDescription() const
Definition: ModuleBase.cc:13
std::array< std::vector< ProductInfo >, NumBranchTypes > const & art::ModuleBase::getConsumables ( ) const
inherited

Definition at line 43 of file ModuleBase.cc.

References art::ModuleBase::collector_, and art::ConsumesCollector::getConsumables().

44  {
45  return collector_.getConsumables();
46  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
std::array< std::vector< ProductInfo >, NumBranchTypes > const & getConsumables() const
std::unique_ptr< Worker > art::ModuleBase::makeWorker ( WorkerParams const &  wp)
inherited

Definition at line 37 of file ModuleBase.cc.

References art::ModuleBase::doMakeWorker(), and art::NumBranchTypes.

38  {
39  return doMakeWorker(wp);
40  }
virtual std::unique_ptr< Worker > doMakeWorker(WorkerParams const &wp)=0
template<typename T , BranchType BT>
ProductToken< T > art::ModuleBase::mayConsume ( InputTag const &  tag)
protectedinherited

Definition at line 82 of file ModuleBase.h.

References art::ModuleBase::collector_, and art::ConsumesCollector::mayConsume().

83  {
84  return collector_.mayConsume<T, BT>(tag);
85  }
ProductToken< T > mayConsume(InputTag const &)
ConsumesCollector collector_
Definition: ModuleBase.h:56
template<typename T , BranchType BT>
void art::ModuleBase::mayConsumeMany ( )
protectedinherited

Definition at line 96 of file ModuleBase.h.

References art::ModuleBase::collector_, and art::ConsumesCollector::mayConsumeMany().

97  {
98  collector_.mayConsumeMany<T, BT>();
99  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
template<typename Element , BranchType = InEvent>
ViewToken<Element> art::ModuleBase::mayConsumeView ( InputTag const &  )
protectedinherited
template<typename T , BranchType BT>
ViewToken<T> art::ModuleBase::mayConsumeView ( InputTag const &  tag)
inherited

Definition at line 89 of file ModuleBase.h.

References art::ModuleBase::collector_, and art::ConsumesCollector::mayConsumeView().

90  {
91  return collector_.mayConsumeView<T, BT>(tag);
92  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
ViewToken< Element > mayConsumeView(InputTag const &)
ModuleDescription const & art::ModuleBase::moduleDescription ( ) const
inherited

Definition at line 13 of file ModuleBase.cc.

References art::errors::LogicError.

Referenced by art::OutputModule::doRespondToOpenInputFile(), art::OutputModule::doWriteEvent(), art::Modifier::fillProductDescriptions(), art::OutputModule::makePlugins_(), art::OutputWorker::OutputWorker(), reco::shower::LArPandoraModularShowerCreation::produce(), art::Modifier::registerProducts(), and art::OutputModule::registerProducts().

14  {
15  if (md_.has_value()) {
16  return *md_;
17  }
18 
20  "There was an error while calling moduleDescription().\n"}
21  << "The moduleDescription() base-class member function cannot be called\n"
22  "during module construction. To determine which module is "
23  "responsible\n"
24  "for calling it, find the '<module type>:<module "
25  "label>@Construction'\n"
26  "tag in the message prefix above. Please contact artists@fnal.gov\n"
27  "for guidance.\n";
28  }
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
std::optional< ModuleDescription > md_
Definition: ModuleBase.h:55
void evgen::PhotonGen::produce ( art::Event evt)
virtual

Implements art::EDProducer.

Definition at line 162 of file PhotonGen_module.cc.

References fPy, fPz, fScan, fX, fXmax, fXmin, fY, fYmax, fYmin, fZ, fZmax, fZmin, simb::kSingleParticle, art::Event::put(), art::detail::EngineCreator::rng(), Sample(), and simb::MCTruth::SetOrigin().

163  {
164  std::mt19937 rng;
165  rng.seed(std::random_device()());
166  std::uniform_real_distribution<double> distX(fXmin, fXmax);
167  std::uniform_real_distribution<double> distY(fYmin, fYmax);
168  std::uniform_real_distribution<double> distZ(fZmin, fZmax);
169  std::uniform_real_distribution<double> width(-2.0, 2.0);
170 
171  std::unique_ptr<std::vector<simb::MCTruth>> truthcol(new std::vector<simb::MCTruth>);
172  simb::MCTruth truth;
174 
175  if (fScan) {
176  fX = distX(rng);
177  fY = fPy + width(rng);
178  fZ = fPz + width(rng);
179  Sample(truth);
180  }
181  else {
182  fX = distX(rng);
183  fY = distY(rng);
184  fZ = distZ(rng);
185 
186  Sample(truth);
187  }
188 
189  truthcol->push_back(truth);
190  evt.put(std::move(truthcol));
191  }
void SetOrigin(simb::Origin_t origin)
Definition: MCTruth.h:82
void Sample(simb::MCTruth &truth)
PutHandle< PROD > put(std::unique_ptr< PROD > &&edp, std::string const &instance={})
Definition: Event.h:77
single particles thrown at the detector
Definition: MCTruth.h:26
Event generator information.
Definition: MCTruth.h:32
static ServiceHandle< RandomNumberGenerator > & rng()
void art::Modifier::registerProducts ( ProductDescriptions productsToRegister)
inherited

Definition at line 16 of file Modifier.cc.

References art::ModuleBase::moduleDescription(), and art::ProductRegistryHelper::registerProducts().

17  {
18  ProductRegistryHelper::registerProducts(productsToRegister,
20  }
void registerProducts(ProductDescriptions &productsToRegister, ModuleDescription const &md)
ModuleDescription const & moduleDescription() const
Definition: ModuleBase.cc:13
void evgen::PhotonGen::Sample ( simb::MCTruth truth)
private

Definition at line 193 of file PhotonGen_module.cc.

References simb::MCTruth::Add(), simb::MCParticle::AddTrajectoryPoint(), DEFINE_ART_MODULE, fEngine, fFillTree, fN, fP, fPDist, fPhotonGen, fShotMom, fShotPos, fSigmaP, fSigmaT, fT, fTDist, fX, fY, fZ, and kGAUS.

Referenced by produce().

194  {
195  std::cout << "Photons Shooting at the Position: " << fX << " " << fY << " " << fZ << std::endl;
196 
197  CLHEP::RandFlat flat(fEngine);
198  CLHEP::RandGaussQ gauss(fEngine);
199 
200  for (int j = 0; j != fN; ++j) {
201  TVector3 pos;
202  pos[0] = fX;
203  pos[1] = fY;
204  pos[2] = fZ;
205 
206  double time;
207  if (fTDist == kGAUS) { time = gauss.fire(fT, fSigmaT); }
208  else {
209  time = fT + fSigmaT * (2.0 * flat.fire() - 1.0);
210  }
211  fShotPos = TLorentzVector(pos[0], pos[1], pos[2], time);
212 
213  //momentum (supplied in eV, convert to GeV)
214  double p = fP;
215  if (fPDist == kGAUS) { p = gauss.fire(fP, fSigmaP); }
216  else {
217  p = fP + fSigmaP * (2.0 * flat.fire() - 1.0);
218  }
219  p /= 1000000000.;
220 
221  //angles
222  double costh = 2 * flat.fire() - 1;
223  double sinth = std::sqrt(1 - costh * costh);
224  double phi = 2 * M_PI * flat.fire();
225 
226  //momentum 4-vector
227  fShotMom = TLorentzVector(p * sinth * cos(phi), p * sinth * sin(phi), p * costh, p);
228 
229  int trackid =
230  -1 *
231  (j + 1); // set track id to negative as these are all primary particles and have id <= 0
232  int PDG = 0; // optical photons have PDG 0
233  simb::MCParticle particle(trackid, PDG, "primary");
234  particle.AddTrajectoryPoint(fShotPos, fShotMom);
235 
236  if (fFillTree) { fPhotonGen->Fill(); }
237 
238  mct.Add(particle);
239  }
240  }
TLorentzVector fShotMom
CLHEP::HepRandomEngine & fEngine
TLorentzVector fShotPos
static const int kGAUS
void art::ModuleBase::setModuleDescription ( ModuleDescription const &  md)
inherited

Definition at line 31 of file ModuleBase.cc.

References art::ModuleBase::md_.

32  {
33  md_ = md;
34  }
std::optional< ModuleDescription > md_
Definition: ModuleBase.h:55
void art::ModuleBase::sortConsumables ( std::string const &  current_process_name)
inherited

Definition at line 49 of file ModuleBase.cc.

References art::ModuleBase::collector_, and art::ConsumesCollector::sortConsumables().

50  {
51  // Now that we know we have seen all the consumes declarations,
52  // sort the results for fast lookup later.
53  collector_.sortConsumables(current_process_name);
54  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
void sortConsumables(std::string const &current_process_name)

Member Data Documentation

CLHEP::HepRandomEngine& evgen::PhotonGen::fEngine
private

Definition at line 89 of file PhotonGen_module.cc.

Referenced by PhotonGen(), and Sample().

Int_t evgen::PhotonGen::fEvID
private

Definition at line 66 of file PhotonGen_module.cc.

Referenced by PhotonGen().

bool evgen::PhotonGen::fFillTree
private

Definition at line 62 of file PhotonGen_module.cc.

Referenced by PhotonGen(), and Sample().

int evgen::PhotonGen::fN
private

Definition at line 87 of file PhotonGen_module.cc.

Referenced by PhotonGen(), and Sample().

double evgen::PhotonGen::fP
private

Definition at line 83 of file PhotonGen_module.cc.

Referenced by PhotonGen(), and Sample().

int evgen::PhotonGen::fPDist
private

Definition at line 77 of file PhotonGen_module.cc.

Referenced by PhotonGen(), and Sample().

TTree* evgen::PhotonGen::fPhotonGen
private

Definition at line 63 of file PhotonGen_module.cc.

Referenced by PhotonGen(), and Sample().

int evgen::PhotonGen::fPosDist
private

Definition at line 75 of file PhotonGen_module.cc.

Referenced by PhotonGen().

double evgen::PhotonGen::fPx
private

Definition at line 70 of file PhotonGen_module.cc.

Referenced by PhotonGen().

double evgen::PhotonGen::fPy
private

Definition at line 71 of file PhotonGen_module.cc.

Referenced by PhotonGen(), and produce().

double evgen::PhotonGen::fPz
private

Definition at line 72 of file PhotonGen_module.cc.

Referenced by PhotonGen(), and produce().

bool evgen::PhotonGen::fScan
private

Definition at line 69 of file PhotonGen_module.cc.

Referenced by PhotonGen(), and produce().

TLorentzVector evgen::PhotonGen::fShotMom
private

Definition at line 65 of file PhotonGen_module.cc.

Referenced by PhotonGen(), and Sample().

TLorentzVector evgen::PhotonGen::fShotPos
private

Definition at line 64 of file PhotonGen_module.cc.

Referenced by PhotonGen(), and Sample().

double evgen::PhotonGen::fSigmaP
private

Definition at line 84 of file PhotonGen_module.cc.

Referenced by PhotonGen(), and Sample().

double evgen::PhotonGen::fSigmaT
private

Definition at line 82 of file PhotonGen_module.cc.

Referenced by PhotonGen(), and Sample().

double evgen::PhotonGen::fT
private

Definition at line 81 of file PhotonGen_module.cc.

Referenced by PhotonGen(), and Sample().

int evgen::PhotonGen::fTDist
private

Definition at line 76 of file PhotonGen_module.cc.

Referenced by PhotonGen(), and Sample().

double evgen::PhotonGen::fX
private

Definition at line 78 of file PhotonGen_module.cc.

Referenced by produce(), and Sample().

double evgen::PhotonGen::fXmax
private

Definition at line 93 of file PhotonGen_module.cc.

Referenced by beginRun(), and produce().

double evgen::PhotonGen::fXmin
private

Definition at line 92 of file PhotonGen_module.cc.

Referenced by beginRun(), and produce().

double evgen::PhotonGen::fY
private

Definition at line 79 of file PhotonGen_module.cc.

Referenced by produce(), and Sample().

double evgen::PhotonGen::fYmax
private

Definition at line 95 of file PhotonGen_module.cc.

Referenced by beginRun(), and produce().

double evgen::PhotonGen::fYmin
private

Definition at line 94 of file PhotonGen_module.cc.

Referenced by beginRun(), and produce().

double evgen::PhotonGen::fZ
private

Definition at line 80 of file PhotonGen_module.cc.

Referenced by produce(), and Sample().

double evgen::PhotonGen::fZmax
private

Definition at line 97 of file PhotonGen_module.cc.

Referenced by beginRun(), and produce().

double evgen::PhotonGen::fZmin
private

Definition at line 96 of file PhotonGen_module.cc.

Referenced by beginRun(), and produce().

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

Definition at line 59 of file PhotonGen_module.cc.

Referenced by Sample().

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

Definition at line 58 of file PhotonGen_module.cc.


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