GENIEGenerator
Loading...
Searching...
No Matches
IBDXSecMap.h
Go to the documentation of this file.
1//____________________________________________________________________________
2/*!
3
4\class genie::IBDXSecMap
5
6\brief Maps specific nuclei to appropriate cross section models.
7
8\author Corey Reed <cjreed \at nikhef.nl>
9 Nikhef
10
11\created February 4, 2010
12
13\cpright Copyright (c) 2003-2025, The GENIE Collaboration
14 For the full text of the license visit http://copyright.genie-mc.org
15*/
16//____________________________________________________________________________
17
18#ifndef _IBD_CROSSSECTION_MAP_H_
19#define _IBD_CROSSSECTION_MAP_H_
20
22
23namespace genie {
24
25class IBDXSecMap : public XSecAlgorithmI {
26
27 public:
29 IBDXSecMap(string config);
30 virtual ~IBDXSecMap();
31
32 //-- XSecAlgorithmI interface implementation
33 double XSec (const Interaction * i, KinePhaseSpace_t k) const;
34 double Integral (const Interaction * i) const;
35 bool ValidProcess (const Interaction * i) const;
36 bool ValidKinematics (const Interaction * i) const;
37
38 //-- overload the Algorithm::Configure() methods to load private data
39 // members from configuration options
40 void Configure(const Registry & config);
41 void Configure(string config);
42
43 protected:
44 const XSecAlgorithmI* SelectModel(const Target & t) const;
45
46 private:
47 void LoadConfig (void);
48
49 bool fIsotopesUseSameModel; // if true, force all nuclei with same Z to use the same cross section model
50 const XSecAlgorithmI* fDefaultModel; // the default xsec model (should "work" with any nucleus)
51 std::map<int, const XSecAlgorithmI*> fRefinedModels; // specific models for the given nucleus (int being the PDG code of the nucleus)
52
53 public:
54 ClassDef(IBDXSecMap, 1) // maps a request for the xsec on a given nucleus to the most appropriate model for that nucleus
55
56};
57
58};
59
60#endif // _IBD_CROSSSECTION_MAP_H_
double XSec(const Interaction *i, KinePhaseSpace_t k) const
Compute the cross section for the input interaction.
bool ValidKinematics(const Interaction *i) const
Is the input kinematical point a physically allowed one?
bool fIsotopesUseSameModel
Definition IBDXSecMap.h:49
const XSecAlgorithmI * fDefaultModel
Definition IBDXSecMap.h:50
void Configure(const Registry &config)
void LoadConfig(void)
const XSecAlgorithmI * SelectModel(const Target &t) const
double Integral(const Interaction *i) const
virtual ~IBDXSecMap()
std::map< int, const XSecAlgorithmI * > fRefinedModels
Definition IBDXSecMap.h:51
bool ValidProcess(const Interaction *i) const
Can this cross section algorithm handle the input process?
Summary information for an interaction.
Definition Interaction.h:56
A registry. Provides the container for algorithm configuration parameters.
Definition Registry.h:65
A Neutrino Interaction Target. Is a transparent encapsulation of quite different physical systems suc...
Definition Target.h:40
THE MAIN GENIE PROJECT NAMESPACE
Definition AlgCmp.h:25
enum genie::EKinePhaseSpace KinePhaseSpace_t