19 #include <TLorentzVector.h> 21 #include "GENIE/Tools/Flux/GAtmoFlux.h" 22 #include "GENIE/Framework/ParticleData/PDGCodeList.h" 37 double Weight(
void)
override;
38 const TLorentzVector&
Momentum(
void)
override;
39 const TLorentzVector&
Position(
void)
override;
40 bool End(
void)
override;
41 long int Index(
void)
override;
42 void Clear(Option_t *opt)
override;
48 void SetRadii(
double Rlongitudinal,
double Rtransverse);
54 void AddFluxFile(
int neutrino_pdg,
string filename);
58 double ComputeWeight(
int flavour,
double energy,
double costh,
double phi);
long int fNNeutrinos
number of flux neutrinos thrown so far
long int Index(void) override
returns corresponding index for current flux neutrino (e.g. for a flux ntuple returns the current ent...
double fAgen
current generation area
GENIE neutrino interaction simulation objects.
map< int, TH3D * > fRawFluxHistoMap
flux = f(Ev,cos8,phi) for each neutrino species
void SetUserCoordSystem(TRotation &rotation)
TLorentzVector fgP4
current generated nu 4-momentum
const TLorentzVector & Position(void) override
returns the flux neutrino 4-position (note: expect SI rather than physical units) ...
const PDGCodeList & FluxParticles(void) override
declare list of flux neutrinos that can be generated (for init. purposes)
void GenerateWeighted(bool gen_weighted) override
set whether to generate weighted or unweighted neutrinos
A driver for a power spectrum atmospheric neutrino flux. Elements extensively reused from GAtmoFlux...
void ResetNFluxNeutrinos(void)
int PdgCode(void) override
returns the flux neutrino pdg code
double fSpectralIndex
power law function
bool GenerateNext(void) override
generate the next flux neutrino (return false in err)
double fRl
defining flux neutrino generation surface: longitudinal radius
void SetSpectralIndex(double index)
double fRt
defining flux neutrino generation surface: transverse radius
bool FillFluxHisto(int nu_pdg, string filename)
void SetFlavors(std::vector< int > flavors)
void SetMaxEnergy(double Emax)
void AddFluxFile(int neutrino_pdg, string filename)
long int NFluxNeutrinos(void) const
TRotation fRotTHz2User
coord. system rotation: THZ -> Topocentric user-defined
double ComputeWeight(int flavour, double energy, double costh, double phi)
double fGlobalGenWeight
global generation weight to apply to all events
void Clear(Option_t *opt) override
reset state variables based on opt
double fMinEvCut
user-defined cut: minimum energy
void SetMinEnergy(double Emin)
double Weight(void) override
returns the flux neutrino weight (if any)
vector< int > fFluxFlavour
input flux file for each neutrino species
int fgPdgC
current generated nu pdg-code
bool End(void) override
true if no more flux nu's can be thrown (eg reaching end of beam sim ntuples)
double fWeight
current generated nu weight
map< int, TH2D * > fRawFluxHistoMap2D
flux = f(Ev,cos8) for each neutrino species
TLorentzVector fgX4
current generated nu 4-position
~GPowerSpectrumAtmoFlux()
double MaxEnergy(void) override
declare the max flux neutrino energy that can be generated (for init. purposes)
PDGCodeList * fPdgCList
input list of neutrino pdg-codes
void SetRadii(double Rlongitudinal, double Rtransverse)
double fMaxEvCut
user-defined cut: maximum energy
vector< string > fFluxFile
input flux file for each neutrino species
void ResetSelection(void)
const TLorentzVector & Momentum(void) override
returns the flux neutrino 4-momentum
double GetFlux(int flavour, double energy, double costh, double phi)
TH3D * CreateNormalisedFluxHisto(TH3D *hist)