GENIEGenerator
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
QELFormFactors.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::QELFormFactors
5 
6 \brief A class holding Quasi Elastic (QEL) Form Factors.
7 
8  This class is using the \b Strategy Pattern. \n
9  It can accept requests to calculate itself, for a given interaction,
10  that it then delegates to the algorithmic object, implementing the
11  QELFormFactorsModelI interface, that it finds attached to itself.
12 
13 \author Costas Andreopoulos <c.andreopoulos \at cern.ch>
14  University of Liverpool
15 
16 \created April 20, 2004
17 
18 \cpright Copyright (c) 2003-2024, The GENIE Collaboration
19  For the full text of the license visit http://copyright.genie-mc.org
20 */
21 //____________________________________________________________________________
22 
23 #ifndef _QEL_FORM_FACTORS_H_
24 #define _QEL_FORM_FACTORS_H_
25 
26 #include <iostream>
27 
30 
31 using std::ostream;
32 
33 namespace genie {
34 
35 class QELFormFactors;
36 ostream & operator << (ostream & stream, const QELFormFactors & ff);
37 
39 
40 public:
41 
43  QELFormFactors(const QELFormFactors & form_factors);
44  virtual ~QELFormFactors() { }
45 
46  //! Attach an algorithm
47  void SetModel (const QELFormFactorsModelI * model);
48 
49  //! Compute the form factors for the input interaction using the attached model
50  void Calculate (const Interaction * interaction);
51 
52  //! Get the computed form factor F1V
53  double F1V (void) const { return fF1V; }
54 
55  //! Get the computed form factor xi*F2V
56  double xiF2V (void) const { return fxiF2V; }
57 
58  //! Get the computed form factor FA
59  double FA (void) const { return fFA; }
60 
61  //! Get the computed form factor Fp
62  double Fp (void) const { return fFp; }
63 
64  //! Get the attached model
65  const QELFormFactorsModelI * Model (void) const {return fModel;}
66 
67  void Reset (Option_t * opt="");
68  void Copy (const QELFormFactors & ff);
69  bool Compare (const QELFormFactors & ff) const;
70  void Print (ostream & stream) const;
71 
72  bool operator == (const QELFormFactors & ff) const;
74  friend ostream & operator << (ostream & stream, const QELFormFactors & ff);
75 
76 private:
77 
78  double fF1V;
79  double fxiF2V;
80  double fFA;
81  double fFp;
82 
84 };
85 
86 } // genie namespace
87 
88 #endif // _QEL_FORM_FACTORS_H_
const QELFormFactorsModelI * fModel
A class holding Quasi Elastic (QEL) Form Factors.
void Reset(Option_t *opt="")
void SetModel(const QELFormFactorsModelI *model)
Attach an algorithm.
const QELFormFactorsModelI * Model(void) const
Get the attached model.
Summary information for an interaction.
Definition: Interaction.h:56
void Copy(const QELFormFactors &ff)
Pure abstract base class. Defines the QELFormFactorsModelI interface to be implemented by any algorit...
double xiF2V(void) const
Get the computed form factor xi*F2V.
void Calculate(const Interaction *interaction)
Compute the form factors for the input interaction using the attached model.
friend ostream & operator<<(ostream &stream, const QELFormFactors &ff)
ostream & operator<<(ostream &stream, const AlgConfigPool &config_pool)
QELFormFactors & operator=(const QELFormFactors &ff)
bool Compare(const QELFormFactors &ff) const
void Print(ostream &stream) const
double F1V(void) const
Get the computed form factor F1V.
bool operator==(const QELFormFactors &ff) const
double Fp(void) const
Get the computed form factor Fp.
double FA(void) const
Get the computed form factor FA.