46#include <TLorentzVector.h>
73 virtual bool End (
void) {
return false; }
74 virtual long int Index (
void) {
return -1; }
75 virtual void Clear (Option_t * opt);
79 double Enu (
void) {
return fgP4.Energy(); }
89 void SetRadii (
double Rlongitudinal,
double Rtransverse);
95 void AddFluxFile (
int neutrino_pdg,
string filename);
106 double GetFlux (
int flavour,
double energy);
107 double GetFlux (
int flavour,
double energy,
double costh);
108 double GetFlux (
int flavour,
double energy,
double costh,
double phi);
TH3D * CreateNormalisedFluxHisto(TH3D *hist)
map< int, TH3D * > fRawFluxHistoMap
flux = f(Ev,cos8,phi) for each neutrino species
bool fInitialized
flag to check that initialization is run
void AddFluxFile(int neutrino_pdg, string filename)
int fgPdgC
current generated nu pdg-code
bool GenerateNext_1try(void)
double fRl
defining flux neutrino generation surface: longitudinal radius
virtual bool GenerateNext(void)
generate the next flux neutrino (return false in err)
double fWeight
current generated nu weight
TH3D * CreateFluxHisto(string name, string title)
void ForceMaxEnergy(double emax)
double GetTransverseRadius(void)
double GetTotalFlux(void)
PDGCodeList * fPdgCList
input list of neutrino pdg-codes
double fMaxEvCut
user-defined cut: maximum energy
vector< string > fFluxFile
input flux file for each neutrino species
double GetTotalFluxInEnergyRange(void)
TH3D * GetFluxHistogram(int flavour)
TH3D * fTotalFluxHisto
flux = f(Ev,cos8,phi) summed over neutrino species
virtual void Clear(Option_t *opt)
reset state variables based on opt
virtual const TLorentzVector & Momentum(void)
returns the flux neutrino 4-momentum
double GetFluxSurfaceArea(void)
unsigned int fNumEnergyBins
number of energy bins in input flux data files
virtual const TLorentzVector & Position(void)
returns the flux neutrino 4-position (note: expect SI rather than physical units)
vector< int > fFluxFlavour
input flux file for each neutrino species
void ForceMinEnergy(double emin)
long int NFluxNeutrinos(void) const
Number of flux nu's generated. Not the same as the number of nu's thrown towards the geometry (if the...
virtual void GenerateWeighted(bool gen_weighted)
set whether to generate weighted or unweighted neutrinos
void ZeroFluxHisto(TH3D *hist)
double fMaxEv
maximum energy (in input flux files)
bool fGenWeighted
generate a weighted or unweighted flux?
virtual const PDGCodeList & FluxParticles(void)
declare list of flux neutrinos that can be generated (for init. purposes)
double fMinEvCut
user-defined cut: minimum energy
void ResetSelection(void)
double fTotalFluxHistoIntg
fFluxSum2D integral
unsigned int fNumPhiBins
number of phi bins in input flux data files
void SetRadii(double Rlongitudinal, double Rtransverse)
TLorentzVector fgX4
current generated nu 4-position
void SetUserCoordSystem(TRotation &rotation)
Rotation: Topocentric Horizontal -> User-defined Topocentric Coord System.
TRotation fRotTHz2User
coord. system rotation: THZ -> Topocentric user-defined
double * fPhiBins
phi bins in input flux data files
virtual long int Index(void)
returns corresponding index for current flux neutrino (e.g. for a flux ntuple returns the current ent...
virtual bool FillFluxHisto(int nu_pdg, string filename)=0
map< int, TH3D * > fFluxHistoMap
flux = f(Ev,cos8,phi) for each neutrino species
double * fCosThetaBins
cos(theta) bins in input flux data files
unsigned int fNumCosThetaBins
number of cos(theta) bins in input flux data files
virtual bool End(void)
true if no more flux nu's can be thrown (eg reaching end of beam sim ntuples)
virtual double Weight(void)
returns the flux neutrino weight (if any)
virtual int PdgCode(void)
returns the flux neutrino pdg code
int SelectNeutrino(double Ev, double costheta, double phi)
double * fEnergyBins
energy bins in input flux data files
TLorentzVector fgP4
current generated nu 4-momentum
double GetLongitudinalRadius(void)
void SetSpectralIndex(double index)
long int fNNeutrinos
number of flux neutrinos thrown so far
double fSpectralIndex
power law function used for weighted flux
virtual double MaxEnergy(void)
declare the max flux neutrino energy that can be generated (for init. purposes)
double fRt
defining flux neutrino generation surface: transverse radius
GAtmoFlux * GetFlux(void)
THE MAIN GENIE PROJECT NAMESPACE