GENIEGenerator
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
XSecLinearCombinations.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::XSecLinearCombinations
5 
6 \brief Computes the xsec as a linear combination of different XSecSlgorithmI
7  See GENIE docdb 252
8 
9 \author Code contributed by J.Tena Vidal and M.Roda
10 
11 \created Mar 12, 2020
12 
13 \cpright Copyright (c) 2003-2024, The GENIE Collaboration
14  For the full text of the license visit http://copyright.genie-mc.org
15 */
16 //____________________________________________________________________________
17 
18 #ifndef _XSEC_LINEAR_COMBINATIONS_H_
19 #define _XSEC_LINEAR_COMBINATIONS_H_
20 
22 
23 namespace genie {
24 
25 class XSecIntegratorI;
26 
28 
29 public:
31  XSecLinearCombinations(string config);
32  virtual ~XSecLinearCombinations();
33 
34  // XSecAlgorithmI interface implementation
35  double XSec (const Interaction * i, KinePhaseSpace_t k) const;
36  double Integral (const Interaction * i) const;
37  bool ValidProcess (const Interaction * i) const;
38 
39  // override the Algorithm::Configure methods to load configuration
40  // data to private data members
41  void Configure (const Registry & config);
42  void Configure (string config);
43 
44  protected:
45 
46  // Load algorithm configuration
47  void LoadConfig (void);
48 
49  private:
50 
51  std::vector<const XSecAlgorithmI*> fXSections ;
52  std::vector<double> fLinearCoefficients ;
53 
54 };
55 
56 } // genie namespace
57 #endif // _XSEC_LINEAR_COMBINATIONS_H_
Cross Section Calculation Interface.
double XSec(const Interaction *i, KinePhaseSpace_t k) const
Compute the cross section for the input interaction.
enum genie::EKinePhaseSpace KinePhaseSpace_t
double Integral(const Interaction *i) const
bool ValidProcess(const Interaction *i) const
Can this cross section algorithm handle the input process?
std::vector< double > fLinearCoefficients
void Configure(const Registry &config)
Summary information for an interaction.
Definition: Interaction.h:56
std::vector< const XSecAlgorithmI * > fXSections
Computes the xsec as a linear combination of different XSecSlgorithmI See GENIE docdb 252...
A registry. Provides the container for algorithm configuration parameters.
Definition: Registry.h:65