Public Member Functions | Private Attributes | List of all members
evgen::NuEScatterGen Class Reference
Inheritance diagram for evgen::NuEScatterGen:
art::EDProducer art::EDProducer art::detail::Producer art::detail::LegacyModule art::detail::Producer art::detail::LegacyModule art::Modifier art::Modifier art::ModuleBase art::ProductRegistryHelper art::ModuleBase art::ProductRegistryHelper

Public Member Functions

 NuEScatterGen (fhicl::ParameterSet const &p)
 
virtual ~NuEScatterGen ()
 
void produce (art::Event &e) override
 
void beginJob () override
 
void beginRun (art::Run &run) override
 
void reconfigure (fhicl::ParameterSet const &p)
 
std::vector< simb::MCParticleGenerateEventKinematics (bool isNewNu)
 
 NuEScatterGen (fhicl::ParameterSet const &p)
 
virtual ~NuEScatterGen ()
 
void produce (art::Event &e) override
 
void beginJob () override
 
void beginRun (art::Run &run) override
 
void reconfigure (fhicl::ParameterSet const &p)
 
std::vector< simb::MCParticleGenerateEventKinematics ()
 
- Public Member Functions inherited from art::EDProducer
 EDProducer (fhicl::ParameterSet const &pset)
 
template<typename Config >
 EDProducer (Table< Config > const &config)
 
std::string workerType () const
 
- Public Member Functions inherited from art::detail::Producer
virtual ~Producer () noexcept
 
 Producer (fhicl::ParameterSet const &)
 
 Producer (Producer const &)=delete
 
 Producer (Producer &&)=delete
 
Produceroperator= (Producer const &)=delete
 
Produceroperator= (Producer &&)=delete
 
void doBeginJob (SharedResources const &resources)
 
void doEndJob ()
 
void doRespondToOpenInputFile (FileBlock const &fb)
 
void doRespondToCloseInputFile (FileBlock const &fb)
 
void doRespondToOpenOutputFiles (FileBlock const &fb)
 
void doRespondToCloseOutputFiles (FileBlock const &fb)
 
bool doBeginRun (RunPrincipal &rp, ModuleContext const &mc)
 
bool doEndRun (RunPrincipal &rp, ModuleContext const &mc)
 
bool doBeginSubRun (SubRunPrincipal &srp, ModuleContext const &mc)
 
bool doEndSubRun (SubRunPrincipal &srp, ModuleContext const &mc)
 
bool doEvent (EventPrincipal &ep, ModuleContext const &mc, std::atomic< std::size_t > &counts_run, std::atomic< std::size_t > &counts_passed, std::atomic< std::size_t > &counts_failed)
 
- Public Member Functions inherited from art::Modifier
 ~Modifier () noexcept
 
 Modifier ()
 
 Modifier (Modifier const &)=delete
 
 Modifier (Modifier &&)=delete
 
Modifieroperator= (Modifier const &)=delete
 
Modifieroperator= (Modifier &&)=delete
 
- Public Member Functions inherited from art::ModuleBase
virtual ~ModuleBase () noexcept
 
 ModuleBase ()
 
ModuleDescription const & moduleDescription () const
 
void setModuleDescription (ModuleDescription const &)
 
std::array< std::vector< ProductInfo >, NumBranchTypes > const & getConsumables () const
 
void sortConsumables (std::string const &current_process_name)
 
template<typename T , BranchType BT>
ViewToken< T > consumesView (InputTag const &tag)
 
template<typename T , BranchType BT>
ViewToken< T > mayConsumeView (InputTag const &tag)
 

Private Attributes

double fMinEnu
 
double fMaxEnu
 
double fWMA
 
double fMinX
 
double fMaxX
 
double fMinY
 
double fMaxY
 
double fMinZ
 
double fMaxZ
 
double fMinT
 
double fMaxT
 
std::string fEventRateFileName
 
bool fIsSupernova
 
int fNNu
 
TF1 * fNueE
 
TF1 * fNumuE
 
TF1 * fNutauE
 
TF1 * fNuebarE
 
TF1 * fNumubarE
 
TF1 * fNutaubarE
 
TVector3 fNuDir
 
TF1 * fdsigdT
 
TRandom3 * fRand
 
double fGF
 
double fNueFluxFrac
 

Additional Inherited Members

- Public Types inherited from art::EDProducer
using ModuleType = EDProducer
 
using WorkerType = WorkerT< EDProducer >
 
- Public Types inherited from art::detail::Producer
template<typename UserConfig , typename KeysToIgnore = void>
using Table = Modifier::Table< UserConfig, KeysToIgnore >
 
- Public Types inherited from art::Modifier
template<typename UserConfig , typename UserKeysToIgnore = void>
using Table = ProducerTable< UserConfig, detail::ModuleConfig, UserKeysToIgnore >
 
- Static Public Member Functions inherited from art::EDProducer
static void commitEvent (EventPrincipal &ep, Event &e)
 
- Protected Member Functions inherited from art::ModuleBase
ConsumesCollectorconsumesCollector ()
 
template<typename T , BranchType = InEvent>
ProductToken< T > consumes (InputTag const &)
 
template<typename Element , BranchType = InEvent>
ViewToken< Element > consumesView (InputTag const &)
 
template<typename T , BranchType = InEvent>
void consumesMany ()
 
template<typename T , BranchType = InEvent>
ProductToken< T > mayConsume (InputTag const &)
 
template<typename Element , BranchType = InEvent>
ViewToken< Element > mayConsumeView (InputTag const &)
 
template<typename T , BranchType = InEvent>
void mayConsumeMany ()
 

Detailed Description

Definition at line 28 of file NuEScatterGen_module.cc.

Constructor & Destructor Documentation

evgen::NuEScatterGen::NuEScatterGen ( fhicl::ParameterSet const &  p)
explicit

Definition at line 83 of file NuEScatterGen_module.cc.

83  : EDProducer{p}
84 {
85  this->reconfigure(p);
86 
87  produces< std::vector<simb::MCTruth> >();
88  produces< sumdata::RunData, art::InRun >();
89 
90  // There's a prefactor, too, ignoring since I'll just be pulling from dist
91  // [0] = gv [1] = ga [2] = Enu [3] = eMass
92  // ga and gv depend on neutrino flavor
93  fdsigdT = new TF1("xsecform","TMath::Power([0] + [1],2) + TMath::Power([0] - [1],2) * TMath::Power(1-x/[2],2) - ([1]*[1] - [0]*[0] * TMath::Power([3]/[2],2))*x");
94 }
EDProducer(fhicl::ParameterSet const &pset)
Definition: EDProducer.h:20
void reconfigure(fhicl::ParameterSet const &p)
p
Definition: test.py:223
evgen::NuEScatterGen::~NuEScatterGen ( )
virtual

Definition at line 97 of file NuEScatterGen_module.cc.

98 {
99 }
evgen::NuEScatterGen::NuEScatterGen ( fhicl::ParameterSet const &  p)
explicit
virtual evgen::NuEScatterGen::~NuEScatterGen ( )
virtual

Member Function Documentation

void evgen::NuEScatterGen::beginJob ( )
overridevirtual

Reimplemented from art::EDProducer.

void evgen::NuEScatterGen::beginJob ( )
overridevirtual

Reimplemented from art::EDProducer.

Definition at line 102 of file NuEScatterGen_module.cc.

103 {
104  TFile* eventrates = TFile::Open(fEventRateFileName.c_str());
105  eventrates->cd();
106 
107  fNueE = (TF1*)eventrates->Get("NueE");
108  fNumuE = (TF1*)eventrates->Get("NumuE");
109  fNutauE = (TF1*)eventrates->Get("NutauE");
110  fNuebarE = (TF1*)eventrates->Get("NuebarE");
111  fNumubarE = (TF1*)eventrates->Get("NumubarE");
112  fNutaubarE = (TF1*)eventrates->Get("NutaubarE");
113 
114  fRand = new TRandom3(0);
115 }
void evgen::NuEScatterGen::beginRun ( art::Run run)
overridevirtual

Reimplemented from art::EDProducer.

void evgen::NuEScatterGen::beginRun ( art::Run run)
overridevirtual

Reimplemented from art::EDProducer.

Definition at line 118 of file NuEScatterGen_module.cc.

119 {
120  // grab the geometry object to see what geometry we are using
122  std::unique_ptr<sumdata::RunData> runcol(new sumdata::RunData(geo->DetectorName()));
123 
124  run.put(std::move(runcol));
125 
126  return;
127  }
std::string DetectorName() const
Returns a string with the name of the detector, as configured.
def move(depos, offset)
Definition: depos.py:107
ProductID put(std::unique_ptr< PROD > &&edp, std::string const &instance={})
Definition: DataViewImpl.h:686
LArSoft geometry interface.
Definition: ChannelGeo.h:16
std::vector< simb::MCParticle > evgen::NuEScatterGen::GenerateEventKinematics ( )

Definition at line 146 of file NuEScatterGen_module.cc.

147 {
148  double Enu = fRand->Uniform(fMinEnu,fMaxEnu);
149 
150  int ePDG = 11;
151  static TDatabasePDG pdg;
152  TParticlePDG* pdgp = pdg.GetParticle(ePDG);
153  double eMass = 0;
154  if (pdgp) eMass = pdgp->Mass();
155 
156  // The total cross section for nue-e is A(1-2*ssWMA+4/3*ssWMA*ssWMA)
157  // The total cross section for nue-mu is A(0.25-ssWMA+4/3*ssWMA*ssWMA)
158  // The average nue flux is ~1/3 that of the total flux
159  // Wrap these into a random number pull that decides the type of neutrino
160  assert(fNueFluxFrac >= 0 && fNueFluxFrac <=1);
161  double fracE = fNueFluxFrac * (1-2*fWMA+4./3*fWMA*fWMA) / (fNueFluxFrac * (1-2*fWMA+4./3*fWMA*fWMA) + (1-fNueFluxFrac) * (0.5-fWMA+4./3*fWMA*fWMA));
162  // xsec is same for nutau and numu, for convenience make all neutrinos numu
163  int nuPDG = gRandom->Uniform(0,1) < fracE ? 12 : 14;
164 
165  // ga, gv depend on whether we're scattering nue-e or numu/nutau-e
166  double ga = nuPDG==12 ? 0.5 : -0.5;
167  double gv = nuPDG==12 ? 2*fWMA+0.5 : 2*fWMA-0.5;
168  fdsigdT->SetParameter(0,gv);
169  fdsigdT->SetParameter(1,ga);
170  fdsigdT->SetParameter(2,Enu);
171  fdsigdT->SetParameter(3,eMass);
172  fdsigdT->SetMinimum(0);
173 
174  double tmax = 2*eMass / (TMath::Power(1+eMass/Enu,2) - 1);
175  double eKE = fdsigdT->GetRandom(0,tmax);
176  double eMom = sqrt(eKE*eKE+2*eMass*eKE);
177  std::cout << "Throwing a neutrino of energy " << Enu << " with a maximum electron energy " << tmax << " from cross section " << fdsigdT->GetExpFormula() << ", and got " << eKE << std::endl;
178 
179  // Throw a random neutrino direction
180  double nuCos = fRand->Uniform(-1,1);
181  double nuPhi = gRandom->Uniform(0,2*TMath::Pi());
182  TVector3 nu(sqrt(1-nuCos*nuCos)*sin(nuPhi),
183  sqrt(1-nuCos*nuCos)*cos(nuPhi),
184  nuCos);
185 
186  // It's a bit tricky translating between the electron momentum in the nu
187  // and detector frame. Do it by making a Gram-schmidt basis around the nu
188  // direction, and applying projecting onto it
189  TVector3 zprime = nu.Unit();
190  TVector3 xprime(0,0,0);
191  xprime.SetX(1-nu[0]*nu[0]);
192  xprime.SetY( -nu[0]*nu[1]);
193  xprime.SetZ( -nu[0]*nu[2]);
194  xprime = xprime.Unit();
195  TVector3 yprime(0,0,0);
196  yprime.SetX( -nu[1]*nu[0]-xprime[1]*xprime[0]);
197  yprime.SetY(1-nu[1]*nu[1]-xprime[1]*xprime[1]);
198  yprime.SetZ( -nu[1]*nu[2]-xprime[1]*xprime[2]);
199  yprime = yprime.Unit();
200 
201  double eCos =
202  TMath::Sqrt( (eKE*TMath::Power(1+(eMass/Enu),2) ) / ( 2*eMass + eKE));
203  double ePhi = fRand->Uniform(0,2*TMath::Pi());
204 
205  double eSin = sqrt(1-eCos*eCos);
206  TVector3 e(0,0,0);
207  e.SetX(eCos*zprime[0]+eSin*sin(ePhi)*xprime[0]+eSin*cos(ePhi)*yprime[0]);
208  e.SetY(eCos*zprime[1]+eSin*sin(ePhi)*xprime[1]+eSin*cos(ePhi)*yprime[1]);
209  e.SetZ(eCos*zprime[2]+eSin*sin(ePhi)*xprime[2]+eSin*cos(ePhi)*yprime[2]);
210 
211  e *= eMom;
212  nu *= Enu;
213 
214  TLorentzVector e4d(e,eMass+eKE);
215  TLorentzVector nu4d(nu,Enu);
216 
217  double vtxx = fRand->Uniform(fMinX,fMaxX);
218  double vtxy = fRand->Uniform(fMinY,fMaxY);
219  double vtxz = fRand->Uniform(fMinZ,fMaxZ);
220  double vtxt = fRand->Uniform(fMinT,fMaxT);
221  TLorentzVector vtx(vtxx,vtxy,vtxz,vtxt);
222 
223  // arguments are particle#, pdg code, process, mother, mass, status
224  // status must be 1 to tel GEANT to propogate
225  simb::MCParticle mcNu(0, nuPDG, "primary", 0, 0, 1);
226  mcNu.AddTrajectoryPoint(vtx, e4d);
227  simb::MCParticle mcE(1, 11, "primary", 0, eMass, 1);
228  mcE.AddTrajectoryPoint(vtx, nu4d);
229 
230  std::vector<simb::MCParticle> ret;
231  ret.push_back(mcNu);
232  ret.push_back(mcE);
233 
234  return ret;
235 }
const double e
QTextStream & endl(QTextStream &s)
std::vector< simb::MCParticle > evgen::NuEScatterGen::GenerateEventKinematics ( bool  isNewNu)

Definition at line 176 of file NuEScatterGen_module.cc.

177 {
178  // First, need to choose a flavor and energy for our interacting neutrino
179  int flav = 0;
180  double Enu = 0;
181 
182  double totNueE = fNueE ->Integral(fMinEnu,fMaxEnu,1e-2);
183  double totNumuE = fNumuE ->Integral(fMinEnu,fMaxEnu,1e-2);
184  double totNutauE = fNutauE->Integral(fMinEnu,fMaxEnu,1e-2);
185  double totNuebarE = fNuebarE ->Integral(fMinEnu,fMaxEnu,1e-2);
186  double totNumubarE = fNumubarE ->Integral(fMinEnu,fMaxEnu,1e-2);
187  double totNutaubarE = fNutaubarE->Integral(fMinEnu,fMaxEnu,1e-2);
188  double tot = totNueE + totNumuE + totNutauE +
189  totNuebarE + totNumubarE + totNutaubarE;
190 
191  double randflav = fRand->Uniform(0,1);
192  if (randflav < totNueE/tot){
193  flav = 12;
194  Enu = fNueE->GetRandom(fMinEnu,fMaxEnu);
195  }
196  else if (randflav < (totNueE+totNumuE)/tot){
197  flav = 14;
198  Enu = fNumuE->GetRandom(fMinEnu,fMaxEnu);
199  }
200  else if (randflav < (totNueE+totNumuE+totNutauE)/tot){
201  flav = 16;
202  Enu = fNutauE->GetRandom(fMinEnu,fMaxEnu);
203  }
204  else if (randflav < (totNueE+totNumuE+totNutauE+totNuebarE)/tot){
205  flav = -12;
206  Enu = fNuebarE->GetRandom(fMinEnu,fMaxEnu);
207  }
208  else if (randflav < (totNueE+totNumuE+totNutauE+totNuebarE+totNumubarE)/tot){
209  flav = -14;
210  Enu = fNumubarE->GetRandom(fMinEnu,fMaxEnu);
211  }
212  else{
213  flav = -16;
214  Enu = fNutaubarE->GetRandom(fMinEnu,fMaxEnu);
215  }
216 
217  // Throw a random neutrino direction if we're not generating events for
218  // a supernova. Then, generate a neutrino direction only once / supernova
219  if (fNuDir.Mag() == 0 || !fIsSupernova || isNewNu){
220  double nuCos = fRand->Uniform(-1,1);
221  double nuPhi = fRand->Uniform(0,2*TMath::Pi());
222  fNuDir.SetX(sqrt(1-nuCos*nuCos)*sin(nuPhi));
223  fNuDir.SetY(sqrt(1-nuCos*nuCos)*cos(nuPhi));
224  fNuDir.SetZ(nuCos);
225  }
226 
227  // Pull out the electron mass - needed for dif xsec formulat
228  int ePDG = 11;
229  static TDatabasePDG pdg;
230  TParticlePDG* pdgp = pdg.GetParticle(ePDG);
231  double eMass = 0;
232  if (pdgp) eMass = pdgp->Mass();
233 
234  // ga, gv depend on whether we're scattering nue-e or numu/nutau-e
235  double ga = abs(flav)==12 ? 0.5 : -0.5;
236  double gv = abs(flav)==12 ? 2*fWMA+0.5 : 2*fWMA-0.5;
237  fdsigdT->SetParameter(0,gv);
238  fdsigdT->SetParameter(1,ga);
239  fdsigdT->SetParameter(2,Enu);
240  fdsigdT->SetParameter(3,eMass);
241  fdsigdT->SetMinimum(0);
242 
243  double tmax = 2*eMass / (TMath::Power(1+eMass/Enu,2) - 1);
244  double eKE = fdsigdT->GetRandom(0,tmax);
245  double eMom = sqrt(eKE*eKE+2*eMass*eKE);
246  std::cout << "Throwing a neutrino of energy " << Enu << " with a maximum electron energy " << tmax << " from cross section " << fdsigdT->GetExpFormula() << ", and got " << eKE << std::endl;
247 
248  // Now, pull a direction for your electron
249  TVector3 eDir;
250  double ECos =
251  TMath::Sqrt( (eKE*TMath::Power(1+(eMass/Enu),2) ) / ( 2*eMass + eKE));
252  double EPhi = fRand->Uniform(0,2*TMath::Pi());
253  eDir.SetX(sqrt(1-ECos*ECos)*sin(EPhi));
254  eDir.SetY(sqrt(1-ECos*ECos)*cos(EPhi));
255  eDir.SetZ(ECos);
256  // But, that's relative to the z-axis move to relative the nu direction
257  TVector3 zaxis(0,0,1);
258  TVector3 rotationAxis = zaxis.Cross(fNuDir);
259  double rotationAngle = zaxis.Angle(fNuDir);
260  eDir.Rotate(rotationAngle,rotationAxis);
261 
262  TVector3 e = eMom * eDir;;
263  TVector3 nu = Enu * fNuDir;;
264 
265  TLorentzVector e4d(e,eMass+eKE);
266  TLorentzVector nu4d(nu,Enu);
267 
268  double vtxx = fRand->Uniform(fMinX,fMaxX);
269  double vtxy = fRand->Uniform(fMinY,fMaxY);
270  double vtxz = fRand->Uniform(fMinZ,fMaxZ);
271  double vtxt = fRand->Uniform(fMinT,fMaxT);
272  TLorentzVector vtx(vtxx,vtxy,vtxz,vtxt);
273 
274  // arguments are particle#, pdg code, process, mother, mass, status
275  // status must be 1 to tel GEANT to propogate
276  simb::MCParticle mcNu(0, flav, "primary", 0, 0, 1);
277  mcNu.AddTrajectoryPoint(vtx, nu4d);
278  simb::MCParticle mcE(1, 11, "primary", 0, eMass, 1);
279  mcE.AddTrajectoryPoint(vtx, e4d);
280 
281  std::vector<simb::MCParticle> ret;
282  ret.push_back(mcNu);
283  ret.push_back(mcE);
284 
285  return ret;
286 }
T abs(T value)
const double e
QTextStream & endl(QTextStream &s)
void evgen::NuEScatterGen::produce ( art::Event e)
overridevirtual

Implements art::EDProducer.

void evgen::NuEScatterGen::produce ( art::Event e)
overridevirtual

Implements art::EDProducer.

Definition at line 130 of file NuEScatterGen_module.cc.

131 {
132  // Set up a vector of ptrs to eventually put into the event
133  std::unique_ptr< std::vector<simb::MCTruth> > truthcol(new std::vector<simb::MCTruth>);
134  // And we'll fill one
135  simb::MCTruth truth;
136 
137  bool isNewNu = (e.event()%fNNu == 0);
138  std::vector<simb::MCParticle> parts = GenerateEventKinematics(isNewNu);
139 
140  assert(parts.size()==2);
141  truth.Add(parts[0]);
142  truth.Add(parts[1]);
143 
144  truthcol->push_back(truth);
145 
146  e.put(std::move(truthcol));
147 
148  return;
149 }
EventNumber_t event() const
Definition: DataViewImpl.cc:85
std::vector< simb::MCParticle > GenerateEventKinematics()
def move(depos, offset)
Definition: depos.py:107
ProductID put(std::unique_ptr< PROD > &&edp, std::string const &instance={})
Definition: DataViewImpl.h:686
void Add(simb::MCParticle const &part)
Definition: MCTruth.h:80
Event generator information.
Definition: MCTruth.h:32
void evgen::NuEScatterGen::reconfigure ( fhicl::ParameterSet const &  p)
void evgen::NuEScatterGen::reconfigure ( fhicl::ParameterSet const &  p)

Definition at line 152 of file NuEScatterGen_module.cc.

153 {
154  fMinEnu = p.get<double>("MinEnu");
155  fMaxEnu = p.get<double>("MaxEnu");
156 
157  fWMA = p.get<double>("WMA");
158 
159  fMinX = p.get<double>("MinX");
160  fMaxX = p.get<double>("MaxX");
161  fMinY = p.get<double>("MinY");
162  fMaxY = p.get<double>("MaxY");
163  fMinZ = p.get<double>("MinZ");
164  fMaxZ = p.get<double>("MaxZ");
165  fMinT = p.get<double>("MinT");
166  fMaxT = p.get<double>("MaxT");
167 
168  fIsSupernova = p.get<bool>("IsSupernova");
169  fNNu = p.get<int>("NNu");
170 
171  fEventRateFileName = p.get<std::string>("EventRateFileName");
172 
173  return;
174 }
std::string string
Definition: nybbler.cc:12
p
Definition: test.py:223

Member Data Documentation

TF1 * evgen::NuEScatterGen::fdsigdT
private

Definition at line 77 of file NuEScatterGen_module.cc.

std::string evgen::NuEScatterGen::fEventRateFileName
private

Definition at line 59 of file NuEScatterGen_module.cc.

double evgen::NuEScatterGen::fGF
private

Definition at line 43 of file NuEScatterGen_module.cc.

bool evgen::NuEScatterGen::fIsSupernova
private

Definition at line 61 of file NuEScatterGen_module.cc.

double evgen::NuEScatterGen::fMaxEnu
private

Definition at line 44 of file NuEScatterGen_module.cc.

double evgen::NuEScatterGen::fMaxT
private

Definition at line 57 of file NuEScatterGen_module.cc.

double evgen::NuEScatterGen::fMaxX
private

Definition at line 51 of file NuEScatterGen_module.cc.

double evgen::NuEScatterGen::fMaxY
private

Definition at line 53 of file NuEScatterGen_module.cc.

double evgen::NuEScatterGen::fMaxZ
private

Definition at line 55 of file NuEScatterGen_module.cc.

double evgen::NuEScatterGen::fMinEnu
private

Definition at line 43 of file NuEScatterGen_module.cc.

double evgen::NuEScatterGen::fMinT
private

Definition at line 56 of file NuEScatterGen_module.cc.

double evgen::NuEScatterGen::fMinX
private

Definition at line 50 of file NuEScatterGen_module.cc.

double evgen::NuEScatterGen::fMinY
private

Definition at line 52 of file NuEScatterGen_module.cc.

double evgen::NuEScatterGen::fMinZ
private

Definition at line 54 of file NuEScatterGen_module.cc.

int evgen::NuEScatterGen::fNNu
private

Definition at line 62 of file NuEScatterGen_module.cc.

TVector3 evgen::NuEScatterGen::fNuDir
private

Definition at line 73 of file NuEScatterGen_module.cc.

TF1* evgen::NuEScatterGen::fNuebarE
private

Definition at line 68 of file NuEScatterGen_module.cc.

TF1* evgen::NuEScatterGen::fNueE
private

Definition at line 65 of file NuEScatterGen_module.cc.

double evgen::NuEScatterGen::fNueFluxFrac
private

Definition at line 56 of file NuEScatterGen_module.cc.

TF1* evgen::NuEScatterGen::fNumubarE
private

Definition at line 69 of file NuEScatterGen_module.cc.

TF1* evgen::NuEScatterGen::fNumuE
private

Definition at line 66 of file NuEScatterGen_module.cc.

TF1* evgen::NuEScatterGen::fNutaubarE
private

Definition at line 70 of file NuEScatterGen_module.cc.

TF1* evgen::NuEScatterGen::fNutauE
private

Definition at line 67 of file NuEScatterGen_module.cc.

TRandom3 * evgen::NuEScatterGen::fRand
private

Definition at line 79 of file NuEScatterGen_module.cc.

double evgen::NuEScatterGen::fWMA
private

Definition at line 47 of file NuEScatterGen_module.cc.


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