GENIEGenerator
|
A base class for the concrete astrophysical neutrino flux drivers. More...
#include <GAstroFlux.h>
Classes | |
class | NuGenerator |
class | NuPropagator |
Public Member Functions | |
virtual | ~GAstroFlux () |
virtual const PDGCodeList & | FluxParticles (void) |
declare list of flux neutrinos that can be generated (for init. purposes) More... | |
virtual double | MaxEnergy (void) |
declare the max flux neutrino energy that can be generated (for init. purposes) More... | |
virtual bool | GenerateNext (void) |
generate the next flux neutrino (return false in err) More... | |
virtual int | PdgCode (void) |
returns the flux neutrino pdg code More... | |
virtual double | Weight (void) |
returns the flux neutrino weight (if any) More... | |
virtual const TLorentzVector & | Momentum (void) |
returns the flux neutrino 4-momentum More... | |
virtual const TLorentzVector & | Position (void) |
returns the flux neutrino 4-position (note: expect SI rather than physical units) More... | |
virtual bool | End (void) |
true if no more flux nu's can be thrown (eg reaching end of beam sim ntuples) More... | |
virtual long int | Index (void) |
returns corresponding index for current flux neutrino (e.g. for a flux ntuple returns the current entry number) More... | |
virtual void | Clear (Option_t *opt) |
reset state variables based on opt More... | |
virtual void | GenerateWeighted (bool gen_weighted) |
set whether to generate weighted or unweighted neutrinos More... | |
void | ForceMinEnergy (double emin) |
void | ForceMaxEnergy (double emax) |
void | SetDetectorPosition (double latitude, double longitude, double depth, double size) |
void | SetRelNuPopulations (double nnue=1, double nnumu=2, double nnutau=0, double nnuebar=1, double nnumubar=2, double nnutaubar=0) |
void | SetEnergyPowLawIdx (double n) |
void | SetUserCoordSystem (TRotation &rotation) |
rotation Topocentric Horizontal -> User-defined Topocentric Coord System More... | |
Public Member Functions inherited from genie::GFluxI | |
virtual | ~GFluxI () |
Protected Member Functions | |
GAstroFlux () | |
void | Initialize (void) |
void | CleanUp (void) |
void | ResetSelection (void) |
Protected Member Functions inherited from genie::GFluxI | |
GFluxI () | |
Protected Attributes | |
PDGCodeList * | fPdgCList |
declared list of neutrino pdg-codes that can be thrown by current instance More... | |
int | fgPdgC |
(current) generated nu pdg-code More... | |
TLorentzVector | fgP4 |
(current) generated nu 4-momentum More... | |
TLorentzVector | fgX4 |
(current) generated nu 4-position More... | |
double | fgWeight |
(current) generated nu weight More... | |
double | fMaxEvCut |
(config) user-defined maximum energy cut More... | |
double | fMinEvCut |
(config) user-defined minimum energy cut More... | |
bool | fGenWeighted |
(config) generate a weighted or unweighted flux? More... | |
double | fDetGeoLatitude |
(config) detector: geographic latitude More... | |
double | fDetGeoLongitude |
(config) detector: geographic longitude More... | |
double | fDetGeoDepth |
(config) detector: depth from surface More... | |
double | fDetSize |
(config) detector: size (detector should be enclosed in sphere of this radius) More... | |
map< int, double > | fRelNuPopulations |
(config) relative neutrino populations More... | |
TRotation | fRotGEF2THz |
(config) coord. system rotation: GEF translated to detector centre -> THZ More... | |
TRotation | fRotTHz2User |
(config) coord. system rotation: THZ -> Topocentric user-defined More... | |
TVector3 | fDetCenter |
TH1D * | fEnergySpectrum |
TH2D * | fSolidAngleAcceptance |
NuGenerator * | fNuGen |
NuPropagator * | fNuPropg |
A base class for the concrete astrophysical neutrino flux drivers.
<<<< NOTE: CODE UNDER DEVELOPMENT >>>> COORDINATE SYSTEMS / NEUTRINO GENERATION & PROPAGATION : Neutrinos are generated on a sphere with radius R_{earth}. Especially, - For diffuse fluxes: Neutrinos can be generated anywhere on that surface. - For point sources: Neutrinos are generated at fixed right ascension and declination. Then time is randomized, to account for Earth's rotation, and the Equatorial Coordinates are converted to GEF. So, neutrinos from each point source are generated on circles parallel to the Earth's Equator. Initially, neutrino coordinates are generated in the Geocentric Earth- Fixed (GEF) Coordinate System (later to be converted to the appropriate detector coordinate system - See further below). Definition: Geocentric Earth-Fixed (GEF) Coordinate System +z: Points to North Pole. xy: Equatorial plane. +x: Points to the Prime Meridian. +y: As needed to make a right-handed coordinate system. Neutrinos are then propagated towards the detector. The Earth opaqueness to ultra high energy neutrinos is taken into account. The Earth density profile is modelled using the PREM (Preliminary Earth Model, The Encyclopedia of Solid Earth Geophysics, David E. James, ed., Van Nostrand Reinhold, New York, 1989, p.331). The detector position is determined in the Spherical/Geographic System by its geographic latitude (angle relative to Equator), its geographic longitude (angle relative to Prime Meridian) and its depth from the surface. The generated flux neutrinos, propagated through the Earth towards the detector) are then positioned on the surface of a sphere with radius Rd which should fully enclose the neutrino detector. The centre of that sphere is taken to be the origin of the detector coordinate system. The transverse coords are appropriately randomized so that neutrinos from any given direction bath the entire sphere enclosing the detector. The final flux neutrino coordinates are given in the detector coordinate system. The default detector coordinate system is the Topocentric Horizontal (THZ) Coordinate System. Alternative user-defined topocentric systems can be defined by specifying the appropriate rotation from THZ. Definition: Topocentric Horizontal (THZ) Coordinate System (default detector coordinate system) +z: Points towards the local zenith. +x: On same plane as local meridian, pointing south. +y: As needed to make a right-handed coordinate system. origin: detector centre WEIGHTING SCHEMES: For a detector with geometrical cross section ~ 1km^2, the solid angle acceptance changes by ~10 orders of magnitude across the surface of the Earth. The driver supports both weighted and un-weighted flux generation schemes. However, because of the enormous changes in solid angle acceptance and energy, only the weighted scheme is practical. PHYSICS: The relative neutrino population needs to be set by the user using the SetRelNuPopulations() method. If run without arguments, the following relative populations are set: nue:numu:nutau:nuebar:numubar:nutaubar = 1:2:0:1:2:0 The energy spectrum is follows a power law. The user needs to specify the power-law index by calling SetEnergyPowLawIdx().
Definition at line 126 of file GAstroFlux.h.
|
virtual |
Definition at line 37 of file GAstroFlux.cxx.
|
protected |
|
protected |
Definition at line 342 of file GAstroFlux.cxx.
|
virtual |
reset state variables based on opt
Implements genie::GFluxI.
Definition at line 150 of file GAstroFlux.cxx.
|
inlinevirtual |
true if no more flux nu's can be thrown (eg reaching end of beam sim ntuples)
Implements genie::GFluxI.
Definition at line 141 of file GAstroFlux.h.
|
inlinevirtual |
declare list of flux neutrinos that can be generated (for init. purposes)
Implements genie::GFluxI.
Definition at line 134 of file GAstroFlux.h.
References fPdgCList.
void GAstroFlux::ForceMaxEnergy | ( | double | emax | ) |
Definition at line 144 of file GAstroFlux.cxx.
References genie::units::GeV.
Referenced by main().
void GAstroFlux::ForceMinEnergy | ( | double | emin | ) |
Definition at line 138 of file GAstroFlux.cxx.
References genie::units::GeV.
Referenced by main().
|
virtual |
generate the next flux neutrino (return false in err)
Implements genie::GFluxI.
Reimplemented in genie::flux::GPointSourceAstroFlux.
Definition at line 47 of file GAstroFlux.cxx.
References genie::flux::kAstroDefMaxEv, genie::flux::kAstroDefMinEv, genie::units::km, and genie::units::m.
Referenced by main().
|
virtual |
set whether to generate weighted or unweighted neutrinos
Implements genie::GFluxI.
Definition at line 157 of file GAstroFlux.cxx.
Referenced by main().
|
inlinevirtual |
returns corresponding index for current flux neutrino (e.g. for a flux ntuple returns the current entry number)
Implements genie::GFluxI.
Definition at line 142 of file GAstroFlux.h.
|
protected |
Definition at line 286 of file GAstroFlux.cxx.
References genie::flux::kAstroDefMaxEv, genie::flux::kAstroDefMinEv, genie::units::km, LOG, and pNOTICE.
|
virtual |
declare the max flux neutrino energy that can be generated (for init. purposes)
Implements genie::GFluxI.
Definition at line 42 of file GAstroFlux.cxx.
References genie::flux::kAstroDefMaxEv.
|
inlinevirtual |
returns the flux neutrino 4-momentum
Implements genie::GFluxI.
Definition at line 139 of file GAstroFlux.h.
References fgP4.
Referenced by main().
|
inlinevirtual |
returns the flux neutrino pdg code
Implements genie::GFluxI.
Definition at line 137 of file GAstroFlux.h.
References fgPdgC.
Referenced by main().
|
inlinevirtual |
returns the flux neutrino 4-position (note: expect SI rather than physical units)
Implements genie::GFluxI.
Definition at line 140 of file GAstroFlux.h.
References fgX4.
Referenced by main().
|
protected |
Definition at line 333 of file GAstroFlux.cxx.
void GAstroFlux::SetDetectorPosition | ( | double | latitude, |
double | longitude, | ||
double | depth, | ||
double | size | ||
) |
Definition at line 162 of file GAstroFlux.cxx.
References genie::units::km, genie::constants::kPi, and genie::constants::kREarth.
Referenced by main().
void GAstroFlux::SetEnergyPowLawIdx | ( | double | n | ) |
Definition at line 258 of file GAstroFlux.cxx.
References genie::flux::kAstroDefMaxEv, genie::flux::kAstroDefMinEv, and genie::flux::kAstroNlog10EvBins.
Referenced by main().
void GAstroFlux::SetRelNuPopulations | ( | double | nnue = 1 , |
double | nnumu = 2 , |
||
double | nnutau = 0 , |
||
double | nnuebar = 1 , |
||
double | nnumubar = 2 , |
||
double | nnutaubar = 0 |
||
) |
Definition at line 208 of file GAstroFlux.cxx.
References genie::kPdgAntiNuE, genie::kPdgAntiNuMu, genie::kPdgAntiNuTau, genie::kPdgNuE, genie::kPdgNuMu, and genie::kPdgNuTau.
Referenced by main().
void GAstroFlux::SetUserCoordSystem | ( | TRotation & | rotation | ) |
rotation Topocentric Horizontal -> User-defined Topocentric Coord System
Definition at line 281 of file GAstroFlux.cxx.
|
inlinevirtual |
returns the flux neutrino weight (if any)
Implements genie::GFluxI.
Definition at line 138 of file GAstroFlux.h.
References fgWeight.
Referenced by main().
|
protected |
Definition at line 190 of file GAstroFlux.h.
|
protected |
(config) detector: depth from surface
Definition at line 184 of file GAstroFlux.h.
|
protected |
(config) detector: geographic latitude
Definition at line 182 of file GAstroFlux.h.
|
protected |
(config) detector: geographic longitude
Definition at line 183 of file GAstroFlux.h.
|
protected |
(config) detector: size (detector should be enclosed in sphere of this radius)
Definition at line 185 of file GAstroFlux.h.
|
protected |
Definition at line 191 of file GAstroFlux.h.
|
protected |
(config) generate a weighted or unweighted flux?
Definition at line 181 of file GAstroFlux.h.
Referenced by genie::flux::GPointSourceAstroFlux::SelectSource().
|
protected |
(current) generated nu 4-momentum
Definition at line 175 of file GAstroFlux.h.
Referenced by Momentum().
|
protected |
(current) generated nu pdg-code
Definition at line 174 of file GAstroFlux.h.
Referenced by PdgCode().
|
protected |
(current) generated nu weight
Definition at line 177 of file GAstroFlux.h.
Referenced by genie::flux::GPointSourceAstroFlux::SelectSource(), and Weight().
|
protected |
(current) generated nu 4-position
Definition at line 176 of file GAstroFlux.h.
Referenced by Position().
|
protected |
(config) user-defined maximum energy cut
Definition at line 179 of file GAstroFlux.h.
|
protected |
(config) user-defined minimum energy cut
Definition at line 180 of file GAstroFlux.h.
|
protected |
Definition at line 193 of file GAstroFlux.h.
|
protected |
Definition at line 194 of file GAstroFlux.h.
|
protected |
declared list of neutrino pdg-codes that can be thrown by current instance
Definition at line 173 of file GAstroFlux.h.
Referenced by FluxParticles().
|
protected |
(config) relative neutrino populations
Definition at line 186 of file GAstroFlux.h.
|
protected |
(config) coord. system rotation: GEF translated to detector centre -> THZ
Definition at line 187 of file GAstroFlux.h.
|
protected |
(config) coord. system rotation: THZ -> Topocentric user-defined
Definition at line 188 of file GAstroFlux.h.
|
protected |
Definition at line 192 of file GAstroFlux.h.