Public Member Functions | Private Member Functions | Private Attributes | List of all members
genie::flux::GFluxBlender Class Reference

#include "/cvmfs/nova.opensciencegrid.org/externals/genie/v3_00_06_p01/Linux64bit+2.6-2.12-e17-debug/GENIE-Generator/src/Tools/Flux/GFluxBlender.h"

Inheritance diagram for genie::flux::GFluxBlender:
genie::GFluxI

Public Member Functions

 GFluxBlender ()
 
 ~GFluxBlender ()
 
const PDGCodeListFluxParticles (void)
 declare list of flux neutrinos that can be generated (for init. purposes) More...
 
double MaxEnergy (void)
 declare the max flux neutrino energy that can be generated (for init. purposes) More...
 
bool GenerateNext (void)
 generate the next flux neutrino (return false in err) More...
 
int PdgCode (void)
 returns the flux neutrino pdg code More...
 
double Weight (void)
 returns the flux neutrino weight (if any) More...
 
const TLorentzVector & Momentum (void)
 returns the flux neutrino 4-momentum More...
 
const TLorentzVector & Position (void)
 returns the flux neutrino 4-position (note: expect SI rather than physical units) More...
 
bool End (void)
 true if no more flux nu's can be thrown (eg reaching end of beam sim ntuples) More...
 
long int Index (void)
 returns corresponding index for current flux neutrino (e.g. for a flux ntuple returns the current entry number) More...
 
void Clear (Option_t *opt)
 reset state variables based on opt More...
 
void GenerateWeighted (bool gen_weighted)
 set whether to generate weighted or unweighted neutrinos More...
 
int PdgCodeGenerated (void)
 returns the flux neutrino original pdg code More...
 
double Energy (void)
 
double TravelDist (void)
 returns the distance used in the flavor mixing More...
 
void SetBaselineDist (double dist)
 
double GetBaselineDist (void)
 
GFluxIAdoptFluxGenerator (GFluxI *generator)
 return previous More...
 
GFlavorMixerIAdoptFlavorMixer (GFlavorMixerI *mixer)
 return previous More...
 
GFluxIGetFluxGenerator ()
 access, not ownership More...
 
GFlavorMixerIGetFlavorMixer ()
 access, not ownership More...
 
void PrintConfig (void)
 
void PrintState (bool verbose=true)
 

Private Member Functions

int ChooseFlavor (int pdg_init, double energy, double dist)
 

Private Attributes

GFluxIfRealGFluxI
 actual flux generator More...
 
GNuMIFluxfGNuMIFlux
 ref to avoid repeat dynamic_cast More...
 
GSimpleNtpFluxfGSimpleFlux
 ref to avoid repeat dynamic_cast More...
 
GFlavorMixerIfFlavorMixer
 flavor modification schema More...
 
PDGCodeList fPDGListGenerator
 possible flavors from generator More...
 
PDGCodeList fPDGListMixed
 possible flavors after mixing More...
 
size_t fNPDGOut
 

of possible output flavors

More...
 
double fBaselineDist
 travel dist for mixing (if flux doesn't support GetDecayDist()) More...
 
double fEnergy
 current neutrino's energy More...
 
double fDistance
 current neutrino's travel distance More...
 
int fPdgCGenerated
 current neutrino's original flavor More...
 
int fPdgCMixed
 current neutrino's new flavor More...
 
std::vector< double > fProb
 individual transition probs More...
 
std::vector< double > fSumProb
 cummulative probability More...
 
double fRndm
 random # used to make choice More...
 

Detailed Description

Definition at line 44 of file GFluxBlender.h.

Constructor & Destructor Documentation

genie::flux::GFluxBlender::GFluxBlender ( )

Definition at line 38 of file GFluxBlender.cxx.

38  :
39  GFluxI(),
40  fRealGFluxI(0),
41  fGNuMIFlux(0),
42  fGSimpleFlux(0),
43  fFlavorMixer(0),
45  fPDGListMixed(),
46  fNPDGOut(0),
47  fBaselineDist(0),
48  fEnergy(0),
49  fDistance(0),
50  fPdgCGenerated(0),
51  fPdgCMixed(0)
52 { ; }
GSimpleNtpFlux * fGSimpleFlux
ref to avoid repeat dynamic_cast
Definition: GFluxBlender.h:100
double fEnergy
current neutrino&#39;s energy
Definition: GFluxBlender.h:110
double fDistance
current neutrino&#39;s travel distance
Definition: GFluxBlender.h:111
int fPdgCMixed
current neutrino&#39;s new flavor
Definition: GFluxBlender.h:113
GFluxI * fRealGFluxI
actual flux generator
Definition: GFluxBlender.h:98
int fPdgCGenerated
current neutrino&#39;s original flavor
Definition: GFluxBlender.h:112
PDGCodeList fPDGListMixed
possible flavors after mixing
Definition: GFluxBlender.h:105
double fBaselineDist
travel dist for mixing (if flux doesn&#39;t support GetDecayDist())
Definition: GFluxBlender.h:108
size_t fNPDGOut
of possible output flavors
Definition: GFluxBlender.h:106
GNuMIFlux * fGNuMIFlux
ref to avoid repeat dynamic_cast
Definition: GFluxBlender.h:99
GFlavorMixerI * fFlavorMixer
flavor modification schema
Definition: GFluxBlender.h:102
PDGCodeList fPDGListGenerator
possible flavors from generator
Definition: GFluxBlender.h:104
genie::flux::GFluxBlender::~GFluxBlender ( )

Definition at line 54 of file GFluxBlender.cxx.

References fFlavorMixer, and fRealGFluxI.

55 {
56  if ( fRealGFluxI ) { delete fRealGFluxI; fRealGFluxI = 0; }
57  if ( fFlavorMixer ) { delete fFlavorMixer; fFlavorMixer = 0; }
58 }
GFluxI * fRealGFluxI
actual flux generator
Definition: GFluxBlender.h:98
GFlavorMixerI * fFlavorMixer
flavor modification schema
Definition: GFluxBlender.h:102

Member Function Documentation

GFlavorMixerI * genie::flux::GFluxBlender::AdoptFlavorMixer ( GFlavorMixerI mixer)

return previous

Definition at line 154 of file GFluxBlender.cxx.

References fFlavorMixer.

Referenced by GetBaselineDist().

155 {
156  GFlavorMixerI* oldmix = fFlavorMixer;
157  fFlavorMixer = mixer;
158  return oldmix;
159 }
GFlavorMixerI * fFlavorMixer
flavor modification schema
Definition: GFluxBlender.h:102
GFluxI * genie::flux::GFluxBlender::AdoptFluxGenerator ( GFluxI generator)

return previous

Definition at line 140 of file GFluxBlender.cxx.

References fGNuMIFlux, fGSimpleFlux, FluxParticles(), fRealGFluxI, and msf_helper::generator.

Referenced by GetBaselineDist().

141 {
142  GFluxI* oldgen = fRealGFluxI;
144  // avoid re-casting
145  fGNuMIFlux = dynamic_cast<GNuMIFlux*>(fRealGFluxI);
146  fGSimpleFlux = dynamic_cast<GSimpleNtpFlux*>(fRealGFluxI);
147  // force evaluation of particle lists
148  this->FluxParticles();
149 
150  return oldgen;
151 }
GSimpleNtpFlux * fGSimpleFlux
ref to avoid repeat dynamic_cast
Definition: GFluxBlender.h:100
GFluxI * fRealGFluxI
actual flux generator
Definition: GFluxBlender.h:98
GNuMIFlux * fGNuMIFlux
ref to avoid repeat dynamic_cast
Definition: GFluxBlender.h:99
const PDGCodeList & FluxParticles(void)
declare list of flux neutrinos that can be generated (for init. purposes)
int genie::flux::GFluxBlender::ChooseFlavor ( int  pdg_init,
double  energy,
double  dist 
)
private

Definition at line 162 of file GFluxBlender.cxx.

References fFlavorMixer, fNPDGOut, fPDGListMixed, fProb, fRndm, fSumProb, genie::RandomGen::Instance(), genie::flux::GFlavorMixerI::Probability(), and genie::RandomGen::RndFlux().

Referenced by GenerateNext(), and GetFlavorMixer().

163 {
164  // choose a new flavor
165  bool isset = false;
166  int pdg_out = 0;
167  double sumprob = 0;
168 
169  fRndm = RandomGen::Instance()->RndFlux().Rndm();
170  for (size_t indx = 0; indx < fNPDGOut; ++indx ) {
171  int pdg_test = fPDGListMixed[indx];
172  double prob = fFlavorMixer->Probability(pdg_init,pdg_test,energy,dist);
173  fProb[indx] = prob;
174  sumprob += fProb[indx];
175  fSumProb[indx] = sumprob;
176  if ( ! isset && fRndm < sumprob ) {
177  isset = true;
178  pdg_out = pdg_test;
179  }
180  }
181 
182  return pdg_out;
183 }
static RandomGen * Instance()
Access instance.
Definition: RandomGen.cxx:79
double dist
Definition: runWimpSim.h:113
PDGCodeList fPDGListMixed
possible flavors after mixing
Definition: GFluxBlender.h:105
std::vector< double > fProb
individual transition probs
Definition: GFluxBlender.h:115
virtual double Probability(int pdg_initial, int pdg_final, double energy, double dist)=0
double fRndm
random # used to make choice
Definition: GFluxBlender.h:117
double energy
Definition: plottest35.C:25
size_t fNPDGOut
of possible output flavors
Definition: GFluxBlender.h:106
GFlavorMixerI * fFlavorMixer
flavor modification schema
Definition: GFluxBlender.h:102
TRandom3 & RndFlux(void) const
rnd number generator used by flux drivers
Definition: RandomGen.h:72
std::vector< double > fSumProb
cummulative probability
Definition: GFluxBlender.h:116
void genie::flux::GFluxBlender::Clear ( Option_t *  opt)
virtual

reset state variables based on opt

Implements genie::GFluxI.

Definition at line 117 of file GFluxBlender.cxx.

References genie::GFluxI::Clear(), and fRealGFluxI.

Referenced by End().

118 {
119 // Clear method needed to conform to GFluxI interface
120 //
122 }
GFluxI * fRealGFluxI
actual flux generator
Definition: GFluxBlender.h:98
virtual void Clear(Option_t *opt)=0
reset state variables based on opt
bool genie::flux::GFluxBlender::End ( void  )
inlinevirtual

true if no more flux nu's can be thrown (eg reaching end of beam sim ntuples)

Implements genie::GFluxI.

Definition at line 64 of file GFluxBlender.h.

References Clear(), genie::GFluxI::End(), fRealGFluxI, GenerateWeighted(), Index(), and MECModelEnuComparisons::opt.

double genie::flux::GFluxBlender::Energy ( void  )
inline

Definition at line 73 of file GFluxBlender.h.

References fEnergy.

73 { return fEnergy; } //< returns the current neutrino's energy
double fEnergy
current neutrino&#39;s energy
Definition: GFluxBlender.h:110
const PDGCodeList & genie::flux::GFluxBlender::FluxParticles ( void  )
virtual

declare list of flux neutrinos that can be generated (for init. purposes)

Return (reference to) list of possible neutrinos after mixing. These are PDG code that might be interacted.

Implements genie::GFluxI.

Definition at line 61 of file GFluxBlender.cxx.

References fFlavorMixer, genie::GFluxI::FluxParticles(), fNPDGOut, fPDGListGenerator, fPDGListMixed, fProb, fRealGFluxI, fSumProb, genie::kPdgAntiNuE, genie::kPdgAntiNuMu, genie::kPdgAntiNuTau, genie::kPdgNuE, genie::kPdgNuMu, genie::kPdgNuTau, and genie::PDGCodeList::push_back().

Referenced by AdoptFluxGenerator().

62 {
63  /// Return (reference to) list of possible neutrinos *after* mixing.
64  /// These are PDG code that might be interacted.
65 
66  // this is only ever called by GMCJDriver::GetParticleLists()
67  // during GMCJDriver::Configure() which should happen just once
68  // so don't try to be too clever.
70 
71  // okay, really stupid at this time ...
72  fPDGListMixed.clear();
79 
80  // size the probability arrays to the same number of entries
81  fNPDGOut = fPDGListMixed.size();
82  fProb.resize(fNPDGOut);
83  fSumProb.resize(fNPDGOut);
84 
85  if ( ! fFlavorMixer ) return fRealGFluxI->FluxParticles();
86  else return fPDGListMixed;
87 }
const int kPdgNuE
Definition: PDGCodes.h:28
const int kPdgAntiNuE
Definition: PDGCodes.h:29
const int kPdgNuMu
Definition: PDGCodes.h:30
GFluxI * fRealGFluxI
actual flux generator
Definition: GFluxBlender.h:98
PDGCodeList fPDGListMixed
possible flavors after mixing
Definition: GFluxBlender.h:105
std::vector< double > fProb
individual transition probs
Definition: GFluxBlender.h:115
size_t fNPDGOut
of possible output flavors
Definition: GFluxBlender.h:106
const int kPdgAntiNuTau
Definition: PDGCodes.h:33
const int kPdgAntiNuMu
Definition: PDGCodes.h:31
virtual const PDGCodeList & FluxParticles(void)=0
declare list of flux neutrinos that can be generated (for init. purposes)
const int kPdgNuTau
Definition: PDGCodes.h:32
GFlavorMixerI * fFlavorMixer
flavor modification schema
Definition: GFluxBlender.h:102
std::vector< double > fSumProb
cummulative probability
Definition: GFluxBlender.h:116
void push_back(int pdg_code)
Definition: PDGCodeList.cxx:67
PDGCodeList fPDGListGenerator
possible flavors from generator
Definition: GFluxBlender.h:104
bool genie::flux::GFluxBlender::GenerateNext ( void  )
virtual

generate the next flux neutrino (return false in err)

Implements genie::GFluxI.

Definition at line 90 of file GFluxBlender.cxx.

References ChooseFlavor(), fBaselineDist, fDistance, fEnergy, fFlavorMixer, fGNuMIFlux, fGSimpleFlux, fPdgCGenerated, fPdgCMixed, fRealGFluxI, genie::GFluxI::GenerateNext(), genie::flux::GSimpleNtpFlux::GetDecayDist(), genie::flux::GNuMIFlux::GetDecayDist(), genie::GFluxI::Momentum(), and genie::GFluxI::PdgCode().

Referenced by MaxEnergy().

91 {
92 
93  bool gen1 = false;
94  while ( ! gen1 ) {
95  if ( ! fRealGFluxI->GenerateNext() ) return false;
96  // have a new entry
98  if ( ! fFlavorMixer ) {
99  // simple case when not configured with a mixing model
101  gen1 = true;
102  } else {
103  // now pick a new flavor
107  fEnergy = fRealGFluxI->Momentum().Energy();
109  // we may have to generate a new neutrino if it oscillates away
110  // don't pass non-particles to GENIE ... it won't like it
111  gen1 = ( fPdgCMixed != 0 );
112  }
113  }
114  return true;
115 }
GSimpleNtpFlux * fGSimpleFlux
ref to avoid repeat dynamic_cast
Definition: GFluxBlender.h:100
double fEnergy
current neutrino&#39;s energy
Definition: GFluxBlender.h:110
double fDistance
current neutrino&#39;s travel distance
Definition: GFluxBlender.h:111
int fPdgCMixed
current neutrino&#39;s new flavor
Definition: GFluxBlender.h:113
GFluxI * fRealGFluxI
actual flux generator
Definition: GFluxBlender.h:98
int fPdgCGenerated
current neutrino&#39;s original flavor
Definition: GFluxBlender.h:112
double fBaselineDist
travel dist for mixing (if flux doesn&#39;t support GetDecayDist())
Definition: GFluxBlender.h:108
GNuMIFlux * fGNuMIFlux
ref to avoid repeat dynamic_cast
Definition: GFluxBlender.h:99
virtual bool GenerateNext(void)=0
generate the next flux neutrino (return false in err)
double GetDecayDist() const
dist (user units) from dk to current pos
Definition: GNuMIFlux.cxx:551
int ChooseFlavor(int pdg_init, double energy, double dist)
virtual int PdgCode(void)=0
returns the flux neutrino pdg code
virtual const TLorentzVector & Momentum(void)=0
returns the flux neutrino 4-momentum
GFlavorMixerI * fFlavorMixer
flavor modification schema
Definition: GFluxBlender.h:102
double GetDecayDist() const
dist (user units) from dk to current pos
void genie::flux::GFluxBlender::GenerateWeighted ( bool  gen_weighted)
virtual

set whether to generate weighted or unweighted neutrinos

Implements genie::GFluxI.

Definition at line 131 of file GFluxBlender.cxx.

References LOG, and pERROR.

Referenced by End().

132 {
133 // Dummy implementation needed to conform to GFluxI interface
134 //
135  LOG("FluxBlender", pERROR) <<
136  "No GenerateWeighted(bool gen_weighted) method implemented for " <<
137  "gen_weighted: " << gen_weighted;
138 }
#define pERROR
Definition: Messenger.h:60
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
Definition: Messenger.h:97
double genie::flux::GFluxBlender::GetBaselineDist ( void  )
inline

Definition at line 82 of file GFluxBlender.h.

References AdoptFlavorMixer(), AdoptFluxGenerator(), and fBaselineDist.

82 { return fBaselineDist; }
double fBaselineDist
travel dist for mixing (if flux doesn&#39;t support GetDecayDist())
Definition: GFluxBlender.h:108
GFlavorMixerI* genie::flux::GFluxBlender::GetFlavorMixer ( )
inline

access, not ownership

Definition at line 90 of file GFluxBlender.h.

References ChooseFlavor(), dist, energy, fFlavorMixer, PrintConfig(), PrintState(), and copy_new_pkl_files::verbose.

GFluxI* genie::flux::GFluxBlender::GetFluxGenerator ( )
inline

access, not ownership

Definition at line 89 of file GFluxBlender.h.

References fRealGFluxI.

long int genie::flux::GFluxBlender::Index ( void  )
virtual

returns corresponding index for current flux neutrino (e.g. for a flux ntuple returns the current entry number)

Implements genie::GFluxI.

Definition at line 124 of file GFluxBlender.cxx.

References fRealGFluxI, and genie::GFluxI::Index().

Referenced by End().

125 {
126 // Index method needed to conform to GFluxI interface
127 //
128  return fRealGFluxI->Index();
129 }
GFluxI * fRealGFluxI
actual flux generator
Definition: GFluxBlender.h:98
virtual long int Index(void)=0
returns corresponding index for current flux neutrino (e.g. for a flux ntuple returns the current ent...
double genie::flux::GFluxBlender::MaxEnergy ( void  )
inlinevirtual

declare the max flux neutrino energy that can be generated (for init. purposes)

Implements genie::GFluxI.

Definition at line 58 of file GFluxBlender.h.

References fRealGFluxI, GenerateNext(), and genie::GFluxI::MaxEnergy().

const TLorentzVector& genie::flux::GFluxBlender::Momentum ( void  )
inlinevirtual

returns the flux neutrino 4-momentum

Implements genie::GFluxI.

Definition at line 62 of file GFluxBlender.h.

References fRealGFluxI, and genie::GFluxI::Momentum().

int genie::flux::GFluxBlender::PdgCode ( void  )
inlinevirtual

returns the flux neutrino pdg code

Implements genie::GFluxI.

Definition at line 60 of file GFluxBlender.h.

References fPdgCMixed.

int genie::flux::GFluxBlender::PdgCodeGenerated ( void  )
inline

returns the flux neutrino original pdg code

Definition at line 72 of file GFluxBlender.h.

References fPdgCGenerated.

const TLorentzVector& genie::flux::GFluxBlender::Position ( void  )
inlinevirtual

returns the flux neutrino 4-position (note: expect SI rather than physical units)

Implements genie::GFluxI.

Definition at line 63 of file GFluxBlender.h.

References fRealGFluxI, and genie::GFluxI::Position().

void genie::flux::GFluxBlender::PrintConfig ( void  )

Definition at line 186 of file GFluxBlender.cxx.

References fBaselineDist, fFlavorMixer, fNPDGOut, fPDGListGenerator, fPDGListMixed, fRealGFluxI, LOG_BEGIN, LOG_END, and pINFO.

Referenced by GetFlavorMixer().

187 {
188  LOG_BEGIN("FluxBlender", pINFO) << "GFluxBlender::PrintConfig()" << LOG_END;
189  if ( fRealGFluxI ) {
190  LOG_BEGIN("FluxBlender", pINFO)
191  << " fRealGFluxI is a \""
192  << typeid(fRealGFluxI).name() << "\""
193  << LOG_END;
194  } else {
195  LOG_BEGIN("FluxBlender", pINFO)
196  << " fRealGFluxI is not initialized" << LOG_END;
197  }
198  if ( fFlavorMixer ) {
199  LOG_BEGIN("FluxBlender", pINFO)
200  << " fFlavorMixer is a \""
201  << typeid(fFlavorMixer).name() << "\""
202  << LOG_END;
203  } else {
204  LOG_BEGIN("FluxBlender", pINFO)
205  << " fFlavorMixer is not initialized" << LOG_END;
206  }
207  LOG_BEGIN("FluxBlender", pINFO)
208  << " BaselineDist " << fBaselineDist << LOG_END;
209  LOG_BEGIN("FluxBlender", pINFO)
210  << "PDG List from Generator" << fPDGListGenerator << LOG_END;
211  LOG_BEGIN("FluxBlender", pINFO)
212  << "PDG List after mixing (n=" << fNPDGOut << ")"
213  << fPDGListMixed << LOG_END;
214 
215 }
const XML_Char * name
Definition: expat.h:151
GFluxI * fRealGFluxI
actual flux generator
Definition: GFluxBlender.h:98
PDGCodeList fPDGListMixed
possible flavors after mixing
Definition: GFluxBlender.h:105
#define LOG_BEGIN(a, b)
double fBaselineDist
travel dist for mixing (if flux doesn&#39;t support GetDecayDist())
Definition: GFluxBlender.h:108
size_t fNPDGOut
of possible output flavors
Definition: GFluxBlender.h:106
#define pINFO
Definition: Messenger.h:63
GFlavorMixerI * fFlavorMixer
flavor modification schema
Definition: GFluxBlender.h:102
PDGCodeList fPDGListGenerator
possible flavors from generator
Definition: GFluxBlender.h:104
#define LOG_END
void genie::flux::GFluxBlender::PrintState ( bool  verbose = true)

Definition at line 218 of file GFluxBlender.cxx.

References fDistance, fEnergy, fNPDGOut, fPdgCGenerated, fPdgCMixed, fPDGListMixed, fProb, fRndm, fSumProb, LOG_BEGIN, LOG_END, and pINFO.

Referenced by GetFlavorMixer().

219 {
220  LOG_BEGIN("FluxBlender", pINFO) << "GFluxBlender::PrintState()" << LOG_END;
221  LOG_BEGIN("FluxBlender", pINFO)
222  << " Flavor " << fPdgCGenerated
223  << " ==> " << fPdgCMixed
224  << " (E=" << fEnergy << ", dist=" << fDistance << ")" << LOG_END;
225  if ( verbose ) {
226  LOG_BEGIN("FluxBlender", pINFO) << " Rndm = " << fRndm << LOG_END;
227  for (size_t indx = 0; indx < fNPDGOut; ++indx ) {
228  LOG_BEGIN("FluxBlender", pINFO)
229  << " [" << indx << "] "
230  << std::setw(3) << fPdgCGenerated << " => "
231  << std::setw(3) << fPDGListMixed[indx]
232  << " p = " << std::setw(10) << fProb[indx]
233  << " sum_p = " << std::setw(10) << fSumProb[indx] << LOG_END;
234  }
235  }
236 }
double fEnergy
current neutrino&#39;s energy
Definition: GFluxBlender.h:110
double fDistance
current neutrino&#39;s travel distance
Definition: GFluxBlender.h:111
int fPdgCMixed
current neutrino&#39;s new flavor
Definition: GFluxBlender.h:113
int fPdgCGenerated
current neutrino&#39;s original flavor
Definition: GFluxBlender.h:112
PDGCodeList fPDGListMixed
possible flavors after mixing
Definition: GFluxBlender.h:105
std::vector< double > fProb
individual transition probs
Definition: GFluxBlender.h:115
double fRndm
random # used to make choice
Definition: GFluxBlender.h:117
#define LOG_BEGIN(a, b)
size_t fNPDGOut
of possible output flavors
Definition: GFluxBlender.h:106
#define pINFO
Definition: Messenger.h:63
std::vector< double > fSumProb
cummulative probability
Definition: GFluxBlender.h:116
#define LOG_END
void genie::flux::GFluxBlender::SetBaselineDist ( double  dist)
inline

Definition at line 81 of file GFluxBlender.h.

References dist, and fBaselineDist.

81 { fBaselineDist = dist; }
double dist
Definition: runWimpSim.h:113
double fBaselineDist
travel dist for mixing (if flux doesn&#39;t support GetDecayDist())
Definition: GFluxBlender.h:108
double genie::flux::GFluxBlender::TravelDist ( void  )
inline

returns the distance used in the flavor mixing

Definition at line 74 of file GFluxBlender.h.

References fDistance.

double genie::flux::GFluxBlender::Weight ( void  )
inlinevirtual

returns the flux neutrino weight (if any)

Implements genie::GFluxI.

Definition at line 61 of file GFluxBlender.h.

References fRealGFluxI, and genie::GFluxI::Weight().

Member Data Documentation

double genie::flux::GFluxBlender::fBaselineDist
private

travel dist for mixing (if flux doesn't support GetDecayDist())

Definition at line 108 of file GFluxBlender.h.

Referenced by GenerateNext(), GetBaselineDist(), PrintConfig(), and SetBaselineDist().

double genie::flux::GFluxBlender::fDistance
private

current neutrino's travel distance

Definition at line 111 of file GFluxBlender.h.

Referenced by GenerateNext(), PrintState(), and TravelDist().

double genie::flux::GFluxBlender::fEnergy
private

current neutrino's energy

Definition at line 110 of file GFluxBlender.h.

Referenced by Energy(), GenerateNext(), and PrintState().

GFlavorMixerI* genie::flux::GFluxBlender::fFlavorMixer
private

flavor modification schema

Definition at line 102 of file GFluxBlender.h.

Referenced by AdoptFlavorMixer(), ChooseFlavor(), FluxParticles(), GenerateNext(), GetFlavorMixer(), PrintConfig(), and ~GFluxBlender().

GNuMIFlux* genie::flux::GFluxBlender::fGNuMIFlux
private

ref to avoid repeat dynamic_cast

Definition at line 99 of file GFluxBlender.h.

Referenced by AdoptFluxGenerator(), and GenerateNext().

GSimpleNtpFlux* genie::flux::GFluxBlender::fGSimpleFlux
private

ref to avoid repeat dynamic_cast

Definition at line 100 of file GFluxBlender.h.

Referenced by AdoptFluxGenerator(), and GenerateNext().

size_t genie::flux::GFluxBlender::fNPDGOut
private

of possible output flavors

Definition at line 106 of file GFluxBlender.h.

Referenced by ChooseFlavor(), FluxParticles(), PrintConfig(), and PrintState().

int genie::flux::GFluxBlender::fPdgCGenerated
private

current neutrino's original flavor

Definition at line 112 of file GFluxBlender.h.

Referenced by GenerateNext(), PdgCodeGenerated(), and PrintState().

int genie::flux::GFluxBlender::fPdgCMixed
private

current neutrino's new flavor

Definition at line 113 of file GFluxBlender.h.

Referenced by GenerateNext(), PdgCode(), and PrintState().

PDGCodeList genie::flux::GFluxBlender::fPDGListGenerator
private

possible flavors from generator

Definition at line 104 of file GFluxBlender.h.

Referenced by FluxParticles(), and PrintConfig().

PDGCodeList genie::flux::GFluxBlender::fPDGListMixed
private

possible flavors after mixing

Definition at line 105 of file GFluxBlender.h.

Referenced by ChooseFlavor(), FluxParticles(), PrintConfig(), and PrintState().

std::vector<double> genie::flux::GFluxBlender::fProb
private

individual transition probs

Definition at line 115 of file GFluxBlender.h.

Referenced by ChooseFlavor(), FluxParticles(), and PrintState().

GFluxI* genie::flux::GFluxBlender::fRealGFluxI
private
double genie::flux::GFluxBlender::fRndm
private

random # used to make choice

Definition at line 117 of file GFluxBlender.h.

Referenced by ChooseFlavor(), and PrintState().

std::vector<double> genie::flux::GFluxBlender::fSumProb
private

cummulative probability

Definition at line 116 of file GFluxBlender.h.

Referenced by ChooseFlavor(), FluxParticles(), and PrintState().


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