GFluxExposureI.h
Go to the documentation of this file.
1 ////////////////////////////////////////////////////////////////////////
2 /// \file GFluxExposureI.h
3 /// \class genie::flux::GFluxExposureI
4 /// \brief GENIE interface for uniform flux exposure iterface
5 ///
6 /// Unified flux exposure interface to be used by flux drivers
7 /// that can support such.
8 ///
9 /// \author Robert Hatcher <rhatcher \at fnal.gov>
10 /// Fermi National Accelerator Laboratory
11 ///
12 /// \created 2015-03-17 initial version
13 /// \version $Id: $
14 ////////////////////////////////////////////////////////////////////////
15 
16 #ifndef GENIE_FLUX_GFLUXEXPOSUREI_H
17 #define GENIE_FLUX_GFLUXEXPOSUREI_H
18 
19 #include <string>
20 #include <ctype.h>
21 
22 namespace genie {
23 namespace flux {
24 
25  typedef enum EExposure {
26  kUnknown = 0,
27  kPOTs = 1, // particles (protons) on target
28  kSeconds = 2, // exposure duration
30  } Exposure_t;
31 
33 
34  public:
35 
37  virtual ~GFluxExposureI();
38 
39  /// what units are returned by GetTotalExposure?
40  const char* GetExposureUnits() const;
42 
43  //
44  // define the GFluxExposureI interface:
45  //
46  virtual double GetTotalExposure() const = 0;
47 
48  /// # of rays generated
49  virtual long int NFluxNeutrinos() const = 0;
50 
51 
52  // string conversions for the associated enum
53  static const char* AsString(genie::flux::Exposure_t etype);
54  static genie::flux::Exposure_t StringToEnum(const char* chars, int maxChar=0);
55 
56  private:
58 
59  };
60 
61 } // namespace flux
62 } // namespace genie
63 
64 #endif //GENIE_FLUX_GFLUXEXPOSUREI_H
const char * GetExposureUnits() const
what units are returned by GetTotalExposure?
static const char * AsString(genie::flux::Exposure_t etype)
THE MAIN GENIE PROJECT NAMESPACE
Definition: GeneratorBase.h:8
virtual long int NFluxNeutrinos() const =0
of rays generated
Loaders::FluxType flux
genie::flux::Exposure_t GetExposureType() const
static genie::flux::Exposure_t StringToEnum(const char *chars, int maxChar=0)
GENIE interface for uniform flux exposure iterface.
enum genie::flux::EExposure Exposure_t
genie::flux::Exposure_t fEType
virtual double GetTotalExposure() const =0
GFluxExposureI(genie::flux::Exposure_t etype)