Public Types | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
evgen::SupernovaGen Class Reference
Inheritance diagram for evgen::SupernovaGen:
art::EDProducer art::detail::Producer art::detail::LegacyModule art::Modifier art::ModuleBase art::ProductRegistryHelper

Public Types

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

Public Member Functions

 SupernovaGen (fhicl::ParameterSet const &p)
 
virtual ~SupernovaGen ()
 
void produce (art::Event &e)
 
void reconfigure (const fhicl::ParameterSet &p)
 
void beginRun (art::Run &r)
 
void endSubRun (art::SubRun &sr)
 
std::string workerType () const
 
void doBeginJob ()
 
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)
 
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< TconsumesView (InputTag const &tag)
 
template<typename T , BranchType BT>
ViewToken< TmayConsumeView (InputTag const &tag)
 

Protected Member Functions

ConsumesCollector & consumesCollector ()
 
template<typename T , BranchType = InEvent>
ProductToken< Tconsumes (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< TmayConsume (InputTag const &)
 
template<typename Element , BranchType = InEvent>
ViewToken< Element > mayConsumeView (InputTag const &)
 
template<typename T , BranchType = InEvent>
void mayConsumeMany ()
 

Private Member Functions

void Generate (std::unique_ptr< std::vector< simb::MCTruth >> &truthcol)
 
double GetMomentum (const double &pkf, const double &m) const
 

Private Attributes

CLHEP::HepRandomEnginefEngine
 
int fPDG
 PDG code of particles to generate. More...
 
int fPMeaning
 
int fCycle
 MC production cycle. More...
 
double fXlow
 Lower x position (cm) More...
 
double fXhigh
 Upper x position (cm) More...
 
double fYlow
 Lower y position (cm) More...
 
double fYhigh
 Upper y position (cm) More...
 
double fZlow
 Lower z position (cm) More...
 
double fZhigh
 Upper z position (cm) More...
 
double fTlow
 Lower t position (ns) More...
 
double fThigh
 Upper t position (ns) More...
 
double fCosZ0
 Cosine of central angle wrt z-axis. More...
 
double fPhiXY0
 Central angle in the x-y plane (degrees) More...
 
double fSigmaCosZ
 Size of variation of cosz. More...
 
double fSigmaPhiXY
 Size of variation in phixy (degrees) More...
 
int fAngleDist
 How to distribute angles (0=uniform, 1=gaussian) More...
 
std::string fPositronPDFFile
 ROOT file name where the positron PDFs are stored. More...
 
bool fOnlyNoise
 Generate no signal. More...
 
double fDistanceScaling
 Scaling factor to PDF values. More...
 
art::EventNumber_t fEventPadding
 Number of empty events to place at beginning of file. More...
 
TH2F * fPositronPDF
 
int fNtimePoints
 
int fNenergyBins
 
double fMinPositronEnergy = 0.0007488
 
double fMaxPositronEnergy = 0.09975
 
double fSigmaP
 
int fTimeIndex = 0
 

Static Private Attributes

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

Detailed Description

Definition at line 45 of file SupernovaGen_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 25 of file Producer.h.

using art::EDProducer::WorkerType = WorkerT<EDProducer>
inherited

Definition at line 18 of file EDProducer.h.

Constructor & Destructor Documentation

evgen::SupernovaGen::SupernovaGen ( fhicl::ParameterSet const &  p)
explicit

Definition at line 111 of file SupernovaGen_module.cc.

References reconfigure().

112  : EDProducer(p)
113  , fEngine(createEngine(p.get<unsigned int>("Seed", evgb::GetRandomNumberSeed())))
114  , fPMeaning(0)
115  , fCycle (p.get<int>("Cycle", 0))
116  {
117  this->reconfigure(p);
118 
119  produces<std::vector<simb::MCTruth>>();
120  produces<sumdata::SubRunData, art::InSubRun>();
121  produces<sumdata::RunData, art::InRun >();
122  }
const char * p
Definition: xmltok.h:285
EDProducer(fhicl::ParameterSet const &pset)
Definition: EDProducer.h:20
unsigned int GetRandomNumberSeed()
Definition: evgenbase.h:22
void reconfigure(const fhicl::ParameterSet &p)
base_engine_t & createEngine(seed_t seed)
int fCycle
MC production cycle.
CLHEP::HepRandomEngine & fEngine
evgen::SupernovaGen::~SupernovaGen ( )
virtual

Definition at line 125 of file SupernovaGen_module.cc.

125 { }

Member Function Documentation

void evgen::SupernovaGen::beginRun ( art::Run r)
virtual

Reimplemented from art::EDProducer.

Definition at line 173 of file SupernovaGen_module.cc.

References geo::GeometryBase::DetId(), geo::GeometryBase::ExtractGDML(), geo::GeometryBase::FileBaseName(), and art::DataViewImpl::put().

174  {
175  // Get the detector information and push it into the event as RunData
177  std::unique_ptr<sumdata::RunData> runcol(new sumdata::RunData(geo->DetId(),
178  geo->FileBaseName(),
179  geo->ExtractGDML()));
180  r.put(std::move(runcol));
181  return;
182  }
novadaq::cnv::DetId DetId() const
Prefer ds::DetectorService::DetId() instead.
Definition: GeometryBase.h:243
std::string ExtractGDML() const
Extract contents from fGDMLFile and return as a string.
ProductID put(std::unique_ptr< PROD > &&edp, FullSemantic< Level::Run > const semantic)
Definition: DataViewImpl.h:730
Helper for AttenCurve.
Definition: Path.h:10
std::string FileBaseName() const
template<typename T , BranchType BT>
ProductToken< T > art::ModuleBase::consumes ( InputTag const &  tag)
protectedinherited

Definition at line 55 of file ModuleBase.h.

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

56  {
57  return collector_.consumes<T, BT>(tag);
58  }
ConsumesCollector collector_
Definition: ModuleBase.h:50
ProductToken< T > consumes(InputTag const &)
double T
Definition: Xdiff_gwt.C:5
ConsumesCollector& art::ModuleBase::consumesCollector ( )
protectedinherited
template<typename T , BranchType BT>
void art::ModuleBase::consumesMany ( )
protectedinherited

Definition at line 69 of file ModuleBase.h.

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

70  {
71  collector_.consumesMany<T, BT>();
72  }
ConsumesCollector collector_
Definition: ModuleBase.h:50
double T
Definition: Xdiff_gwt.C:5
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 62 of file ModuleBase.h.

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

63  {
64  return collector_.consumesView<T, BT>(tag);
65  }
ConsumesCollector collector_
Definition: ModuleBase.h:50
ViewToken< Element > consumesView(InputTag const &)
double T
Definition: Xdiff_gwt.C:5
void art::detail::Producer::doBeginJob ( )
inherited
bool art::detail::Producer::doBeginRun ( RunPrincipal rp,
ModuleContext const &  mc 
)
inherited
bool art::detail::Producer::doBeginSubRun ( SubRunPrincipal srp,
ModuleContext const &  mc 
)
inherited
void art::detail::Producer::doEndJob ( )
inherited
bool art::detail::Producer::doEndRun ( RunPrincipal rp,
ModuleContext const &  mc 
)
inherited
bool art::detail::Producer::doEndSubRun ( SubRunPrincipal srp,
ModuleContext const &  mc 
)
inherited
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
void art::detail::Producer::doRespondToCloseInputFile ( FileBlock const &  fb)
inherited
void art::detail::Producer::doRespondToCloseOutputFiles ( FileBlock const &  fb)
inherited
void art::detail::Producer::doRespondToOpenInputFile ( FileBlock const &  fb)
inherited
void art::detail::Producer::doRespondToOpenOutputFiles ( FileBlock const &  fb)
inherited
void evgen::SupernovaGen::endSubRun ( art::SubRun sr)
virtual

Reimplemented from art::EDProducer.

Definition at line 185 of file SupernovaGen_module.cc.

References fCycle, art::DataViewImpl::put(), and make_associated_cosmic_defs::sd.

186  {
187  // store the cycle information
189  std::unique_ptr< sumdata::SubRunData > sd(new sumdata::SubRunData(fCycle));
190  sr.put(std::move(sd));
191  }
int fCycle
MC production cycle.
ProductID put(std::unique_ptr< PROD > &&edp, FullSemantic< Level::Run > const semantic)
Definition: DataViewImpl.h:730
Helper for AttenCurve.
Definition: Path.h:10
void evgen::SupernovaGen::Generate ( std::unique_ptr< std::vector< simb::MCTruth >> &  truthcol)
private

Definition at line 214 of file SupernovaGen_module.cc.

References simb::MCTruth::Add(), simb::MCParticle::AddTrajectoryPoint(), std::cos(), om::cout, allTimeWatchdog::endl, fAngleDist, fCosZ0, fDistanceScaling, fEngine, CLHEP::RandGaussQ::fire(), CLHEP::RandFlat::fire(), fMinPositronEnergy, fNenergyBins, fOnlyNoise, fPDG, fPhiXY0, fPositronPDF, fSigmaCosZ, fSigmaP, fSigmaPhiXY, fThigh, fTimeIndex, fTlow, fXhigh, fXlow, fYhigh, fYlow, fZhigh, fZlow, Munits::gauss, GetMomentum(), kGAUS, simb::kSingleParticle, m, M_PI, part, elec2geo::pos, generate_hists::rnd, simb::MCTruth::SetOrigin(), std::sin(), std::sqrt(), string, and submit_syst::x.

Referenced by produce().

215  {
216  // Set up the generators
219 
220  //
221  // every event will have the positron distribution from the fPositronPDF array
222  //
223  int generatedPositrons = 0;
224 
225  for (int energyBin = 0; energyBin < fNenergyBins; ++energyBin) {
226  // the central momentum is given by the bin centre
227  double P0 = fMinPositronEnergy + (double(energyBin + 1) * 2. * fSigmaP);
228  double positronPDF = 0.;
229 
230  if (!fOnlyNoise)
231  positronPDF = fPositronPDF->GetBinContent(fTimeIndex, energyBin + 1);
232 
233  TRandom3 rnd(0); // zero seeds randomly
234 
235  int nPositrons = rnd.Poisson(positronPDF * fDistanceScaling);
236 
237  // Silence this output if no positrons produced
238  if (nPositrons > 0) {
239  std::cout << "\tEnergy bin[" << energyBin
240  << "] (" << P0
241  << " GeV), positron PDF: " << positronPDF
242  << std::endl;
243 
244  // Generate a Poisson-fluctated number of positrons based on this
245  std::cout << "\tGenerating " << nPositrons
246  << " positrons" << std::endl;
247  }
248 
249  for (int positronIdx = 0; positronIdx < nPositrons; ++positronIdx) {
250  generatedPositrons++;
251  simb::MCTruth mct;
253 
254  // Momentum, kinetic energy or full energy
255  double pkf = 0.0;
256  pkf = flat.fire(P0 - fSigmaP, P0 + fSigmaP);
257 
258  const TDatabasePDG* pdgt = TDatabasePDG::Instance();
259  const TParticlePDG* pdgp = pdgt->GetParticle(fPDG);
260 
261  // Mass in GeV
262  double m = 0.0;
263  if (pdgp) m = pdgp->Mass();
264 
265  // Momentum in GeV/c
266  const double p = GetMomentum(pkf, m);
267 
268  // Choose position
269  double x[4];
270  x[0] = flat.fire(fXlow, fXhigh);
271  x[1] = flat.fire(fYlow, fYhigh);
272  x[2] = flat.fire(fZlow, fZhigh);
273  x[3] = flat.fire(fTlow, fThigh);
274 
275  std::cout << "\t\tpositron[ " << generatedPositrons-1
276  << "]: p: " << p
277  << " GeV, x: " << x[0]
278  << " cm, y: " << x[1]
279  << " cm, z: " << x[2]
280  << " cm, t: " << x[3]
281  << " ns" << std::endl;
282 
283  const TLorentzVector pos(x[0], x[1], x[2], x[3]);
284 
285  // Choose angles
286  double cosz, phi;
287  unsigned int tryIdx;
288  for (tryIdx = 0; tryIdx < 1000000; ++tryIdx) {
289  if (fAngleDist == kGAUS) {
290  cosz = gauss.fire(fCosZ0, fSigmaCosZ);
291  phi = gauss.fire(fPhiXY0, fSigmaPhiXY);
292  } else {
293  cosz = flat.fire(fCosZ0 - fSigmaCosZ,
294  fCosZ0 + fSigmaCosZ);
295 
296  phi = flat.fire(fPhiXY0 - fSigmaPhiXY,
297  fPhiXY0 + fSigmaPhiXY);
298  }
299  if (cosz >= -1.0 && cosz <= 1.0) break;
300  }
301  if (cosz < -1.0 || cosz > 1.0) {
302  mf::LogError("SupernovaGen") << __FILE__ << ":" << __LINE__
303  << " Failed to find an acceptable cos(theta_z)"
304  << " after many tries.\n"
305  << " Please adjust CosZ0 and SigmaCosZ0 in your"
306  << " SupernovaGen.fcl file and rerun";
307  abort();
308  }
309 
310  const double sinz = sqrt(1.0 - cosz * cosz);
311  const double sinphi = sin(phi * M_PI / 180.0);
312  const double cosphi = cos(phi * M_PI / 180.0);
313 
314  // Set track id to -i as these are all primary particles and have id <= 0
315  const int trackid = -1 * (generatedPositrons + 1);
316 
317  const std::string primary("primary");
318  simb::MCParticle part(trackid, fPDG, primary);
319 
320  const TLorentzVector pvec(cosphi * sinz * p,
321  sinphi * sinz * p,
322  cosz * p,
323  sqrt(p * p + m * m));
324 
325  part.AddTrajectoryPoint(pos, pvec);
326 
327  mct.Add(part);
328  truthcol->push_back(mct);
329  } // end of loop over positrons
330  } // end loop over energy bins particles
331 
332  std::cout << "Generated a total of " << generatedPositrons
333  << " positrons for event " << fTimeIndex << std::endl;
334  }
double fYlow
Lower y position (cm)
int fAngleDist
How to distribute angles (0=uniform, 1=gaussian)
void SetOrigin(simb::Origin_t origin)
Definition: MCTruth.h:82
const char * p
Definition: xmltok.h:285
T sqrt(T number)
Definition: d0nt_math.hpp:156
double fYhigh
Upper y position (cm)
int fPDG
PDG code of particles to generate.
MaybeLogger_< ELseverityLevel::ELsev_error, false > LogError
#define M_PI
Definition: SbMath.h:34
static const int kGAUS
double fPhiXY0
Central angle in the x-y plane (degrees)
TString part[npart]
Definition: Style.C:32
double fSigmaCosZ
Size of variation of cosz.
double fXhigh
Upper x position (cm)
single particles thrown at the detector
Definition: MCTruth.h:26
double fZhigh
Upper z position (cm)
double fXlow
Lower x position (cm)
static constexpr Double_t gauss
Definition: Munits.h:360
double GetMomentum(const double &pkf, const double &m) const
double fCosZ0
Cosine of central angle wrt z-axis.
OStream cout
Definition: OStream.cxx:6
double fDistanceScaling
Scaling factor to PDF values.
void Add(simb::MCParticle const &part)
Definition: MCTruth.h:80
T sin(T number)
Definition: d0nt_math.hpp:132
bool fOnlyNoise
Generate no signal.
double fTlow
Lower t position (ns)
double fZlow
Lower z position (cm)
double fSigmaPhiXY
Size of variation in phixy (degrees)
T cos(T number)
Definition: d0nt_math.hpp:78
double fThigh
Upper t position (ns)
Event generator information.
Definition: MCTruth.h:32
CLHEP::HepRandomEngine & fEngine
enum BeamMode string
std::array<std::vector<ProductInfo>, NumBranchTypes> const& art::ModuleBase::getConsumables ( ) const
inherited
double evgen::SupernovaGen::GetMomentum ( const double &  pkf,
const double &  m 
) const
private

Depending on configuration of fPMeaning calculate the momentum of the particle

Definition at line 337 of file SupernovaGen_module.cc.

References DEFINE_ART_MODULE(), fPMeaning, m, and std::sqrt().

Referenced by Generate().

337  {
338 
339  if (fPMeaning == 0) return pkf;
340 
341  double total_energy = 0.0;
342  if (fPMeaning == 1){
343  total_energy = pkf + m;
344  }
345  else if(fPMeaning == 2){
346  total_energy = pkf;
347  }
348  else{
349  total_energy = sqrt(pkf * pkf + m * m);
350  }
351 
352  return sqrt(total_energy * total_energy - m * m);
353  }
T sqrt(T number)
Definition: d0nt_math.hpp:156
template<typename T , BranchType BT>
ProductToken< T > art::ModuleBase::mayConsume ( InputTag const &  tag)
protectedinherited

Definition at line 76 of file ModuleBase.h.

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

77  {
78  return collector_.mayConsume<T, BT>(tag);
79  }
ProductToken< T > mayConsume(InputTag const &)
ConsumesCollector collector_
Definition: ModuleBase.h:50
double T
Definition: Xdiff_gwt.C:5
template<typename T , BranchType BT>
void art::ModuleBase::mayConsumeMany ( )
protectedinherited

Definition at line 90 of file ModuleBase.h.

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

91  {
93  }
ConsumesCollector collector_
Definition: ModuleBase.h:50
double T
Definition: Xdiff_gwt.C:5
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 83 of file ModuleBase.h.

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

84  {
85  return collector_.mayConsumeView<T, BT>(tag);
86  }
ConsumesCollector collector_
Definition: ModuleBase.h:50
ViewToken< Element > mayConsumeView(InputTag const &)
double T
Definition: Xdiff_gwt.C:5
ModuleDescription const& art::ModuleBase::moduleDescription ( ) const
inherited
void evgen::SupernovaGen::produce ( art::Event e)
virtual

Implements art::EDProducer.

Definition at line 194 of file SupernovaGen_module.cc.

References art::DataViewImpl::event(), fEventPadding, fNtimePoints, fTimeIndex, Generate(), and art::DataViewImpl::put().

195  {
196  std::unique_ptr<std::vector<simb::MCTruth>> truthcol(new std::vector<simb::MCTruth>);
197 
198  // Only generate particles if we're done padding with empty events
199  if (e.event() > fEventPadding){
200  fTimeIndex++;
201 
202  // check that time index is within the available bounds
203  // TODO exit gracefully rather than crashing
204  if (fTimeIndex > fNtimePoints) return;
205 
206  Generate(truthcol);
207  }
208 
209  e.put(std::move(truthcol));
210  return;
211  }
EventNumber_t event() const
void Generate(std::unique_ptr< std::vector< simb::MCTruth >> &truthcol)
ProductID put(std::unique_ptr< PROD > &&edp, FullSemantic< Level::Run > const semantic)
Definition: DataViewImpl.h:730
art::EventNumber_t fEventPadding
Number of empty events to place at beginning of file.
void evgen::SupernovaGen::reconfigure ( const fhicl::ParameterSet p)

Definition at line 128 of file SupernovaGen_module.cc.

References om::cout, allTimeWatchdog::endl, fAngleDist, fCosZ0, fDistanceScaling, fEventPadding, fMaxPositronEnergy, fMinPositronEnergy, fNenergyBins, fNtimePoints, fOnlyNoise, fPDG, fPhiXY0, fPMeaning, fPositronPDF, fPositronPDFFile, fSigmaCosZ, fSigmaP, fSigmaPhiXY, fThigh, fTlow, fXhigh, fXlow, fYhigh, fYlow, fZhigh, fZlow, fhicl::ParameterSet::get(), ParseFluxesFile::root_file, and string.

Referenced by SupernovaGen().

129  {
130  fPDG = p.get<int>("PDG");
131  try{
132  fPMeaning = p.get<int>("PMeaning");
133  if (fPMeaning == 1) {
134  std::cout << "SupernovaGen: Using Kinetic energy for the meaning of P0, SigmaP and PDist" << std::endl;
135  }
136  else if(fPMeaning == 2) {
137  std::cout << "SupernovaGen: Using Total energy for the meaning of P0, SigmaP and PDist" << std::endl;
138  }
139  }
140  catch(...){
141  fPMeaning = 0;
142  }
143 
144  fXlow = p.get<double> ("Xlow");
145  fYlow = p.get<double> ("Ylow");
146  fZlow = p.get<double> ("Zlow");
147  fXhigh = p.get<double> ("Xhigh");
148  fYhigh = p.get<double> ("Yhigh");
149  fZhigh = p.get<double> ("Zhigh");
150  fTlow = p.get<double> ("Tlow");
151  fThigh = p.get<double> ("Thigh");
152  fCosZ0 = p.get<double> ("CosZ0");
153  fPhiXY0 = p.get<double> ("PhiXY0");
154  fSigmaPhiXY = p.get<double> ("SigmaPhiXY");
155  fSigmaCosZ = p.get<double> ("SigmaCosZ");
156  fAngleDist = p.get<int> ("AngleDist");
157  fPositronPDFFile = p.get<std::string> ("PositronPDFFile");
158  fOnlyNoise = p.get<bool> ("OnlyNoise");
159  fDistanceScaling = p.get<double> ("DistanceScaling");
160 
161  fEventPadding = p.get<art::EventNumber_t>("EventPadding");
162 
163  TFile *root_file = new TFile(fPositronPDFFile.c_str());
164  root_file->GetObject("ibd", fPositronPDF);
165 
166  fNtimePoints = fPositronPDF->GetNbinsX();
167  fNenergyBins = fPositronPDF->GetNbinsY();
168 
170  }
double fYlow
Lower y position (cm)
int fAngleDist
How to distribute angles (0=uniform, 1=gaussian)
double fYhigh
Upper y position (cm)
int fPDG
PDG code of particles to generate.
double fPhiXY0
Central angle in the x-y plane (degrees)
double fSigmaCosZ
Size of variation of cosz.
double fXhigh
Upper x position (cm)
T get(std::string const &key) const
Definition: ParameterSet.h:231
double fZhigh
Upper z position (cm)
double fXlow
Lower x position (cm)
std::string fPositronPDFFile
ROOT file name where the positron PDFs are stored.
double fCosZ0
Cosine of central angle wrt z-axis.
OStream cout
Definition: OStream.cxx:6
double fDistanceScaling
Scaling factor to PDF values.
bool fOnlyNoise
Generate no signal.
double fTlow
Lower t position (ns)
double fZlow
Lower z position (cm)
double fSigmaPhiXY
Size of variation in phixy (degrees)
IDNumber_t< Level::Event > EventNumber_t
Definition: IDNumber.h:118
double fThigh
Upper t position (ns)
art::EventNumber_t fEventPadding
Number of empty events to place at beginning of file.
enum BeamMode string
void art::ModuleBase::setModuleDescription ( ModuleDescription const &  )
inherited
void art::ModuleBase::sortConsumables ( std::string const &  current_process_name)
inherited
std::string art::EDProducer::workerType ( ) const
inherited

Member Data Documentation

int evgen::SupernovaGen::fAngleDist
private

How to distribute angles (0=uniform, 1=gaussian)

Definition at line 86 of file SupernovaGen_module.cc.

Referenced by Generate(), and reconfigure().

double evgen::SupernovaGen::fCosZ0
private

Cosine of central angle wrt z-axis.

Definition at line 82 of file SupernovaGen_module.cc.

Referenced by Generate(), and reconfigure().

int evgen::SupernovaGen::fCycle
private

MC production cycle.

Definition at line 73 of file SupernovaGen_module.cc.

Referenced by endSubRun().

double evgen::SupernovaGen::fDistanceScaling
private

Scaling factor to PDF values.

Definition at line 91 of file SupernovaGen_module.cc.

Referenced by Generate(), and reconfigure().

CLHEP::HepRandomEngine& evgen::SupernovaGen::fEngine
private

Definition at line 63 of file SupernovaGen_module.cc.

Referenced by Generate().

art::EventNumber_t evgen::SupernovaGen::fEventPadding
private

Number of empty events to place at beginning of file.

Definition at line 92 of file SupernovaGen_module.cc.

Referenced by produce(), and reconfigure().

double evgen::SupernovaGen::fMaxPositronEnergy = 0.09975
private

Definition at line 99 of file SupernovaGen_module.cc.

Referenced by reconfigure().

double evgen::SupernovaGen::fMinPositronEnergy = 0.0007488
private

Definition at line 98 of file SupernovaGen_module.cc.

Referenced by Generate(), and reconfigure().

int evgen::SupernovaGen::fNenergyBins
private

Definition at line 97 of file SupernovaGen_module.cc.

Referenced by Generate(), and reconfigure().

int evgen::SupernovaGen::fNtimePoints
private

Definition at line 97 of file SupernovaGen_module.cc.

Referenced by produce(), and reconfigure().

bool evgen::SupernovaGen::fOnlyNoise
private

Generate no signal.

Definition at line 88 of file SupernovaGen_module.cc.

Referenced by Generate(), and reconfigure().

int evgen::SupernovaGen::fPDG
private

PDG code of particles to generate.

Definition at line 68 of file SupernovaGen_module.cc.

Referenced by Generate(), and reconfigure().

double evgen::SupernovaGen::fPhiXY0
private

Central angle in the x-y plane (degrees)

Definition at line 83 of file SupernovaGen_module.cc.

Referenced by Generate(), and reconfigure().

int evgen::SupernovaGen::fPMeaning
private

Meaning of P0, fSigmaP and fPDist. By default (fP0Meaning=0), P0 and sigmaP is momentum If fPMeaning=1, then P0 and sigmaP is kinetic energy in GeV If fPMeaning=2, then P0and sigmaP is total energy in GeV

Definition at line 69 of file SupernovaGen_module.cc.

Referenced by GetMomentum(), and reconfigure().

TH2F* evgen::SupernovaGen::fPositronPDF
private

Definition at line 95 of file SupernovaGen_module.cc.

Referenced by Generate(), and reconfigure().

std::string evgen::SupernovaGen::fPositronPDFFile
private

ROOT file name where the positron PDFs are stored.

Definition at line 87 of file SupernovaGen_module.cc.

Referenced by reconfigure().

double evgen::SupernovaGen::fSigmaCosZ
private

Size of variation of cosz.

Definition at line 84 of file SupernovaGen_module.cc.

Referenced by Generate(), and reconfigure().

double evgen::SupernovaGen::fSigmaP
private

Definition at line 101 of file SupernovaGen_module.cc.

Referenced by Generate(), and reconfigure().

double evgen::SupernovaGen::fSigmaPhiXY
private

Size of variation in phixy (degrees)

Definition at line 85 of file SupernovaGen_module.cc.

Referenced by Generate(), and reconfigure().

double evgen::SupernovaGen::fThigh
private

Upper t position (ns)

Definition at line 81 of file SupernovaGen_module.cc.

Referenced by Generate(), and reconfigure().

int evgen::SupernovaGen::fTimeIndex = 0
private

Definition at line 102 of file SupernovaGen_module.cc.

Referenced by Generate(), and produce().

double evgen::SupernovaGen::fTlow
private

Lower t position (ns)

Definition at line 80 of file SupernovaGen_module.cc.

Referenced by Generate(), and reconfigure().

double evgen::SupernovaGen::fXhigh
private

Upper x position (cm)

Definition at line 75 of file SupernovaGen_module.cc.

Referenced by Generate(), and reconfigure().

double evgen::SupernovaGen::fXlow
private

Lower x position (cm)

Definition at line 74 of file SupernovaGen_module.cc.

Referenced by Generate(), and reconfigure().

double evgen::SupernovaGen::fYhigh
private

Upper y position (cm)

Definition at line 77 of file SupernovaGen_module.cc.

Referenced by Generate(), and reconfigure().

double evgen::SupernovaGen::fYlow
private

Lower y position (cm)

Definition at line 76 of file SupernovaGen_module.cc.

Referenced by Generate(), and reconfigure().

double evgen::SupernovaGen::fZhigh
private

Upper z position (cm)

Definition at line 79 of file SupernovaGen_module.cc.

Referenced by Generate(), and reconfigure().

double evgen::SupernovaGen::fZlow
private

Lower z position (cm)

Definition at line 78 of file SupernovaGen_module.cc.

Referenced by Generate(), and reconfigure().

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

Definition at line 66 of file SupernovaGen_module.cc.

Referenced by Generate().

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

Definition at line 65 of file SupernovaGen_module.cc.


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