GENIEGenerator
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ELFormFactors.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::ELFormFactors
5 
6 \brief A class holding the Elastic Form Factors Ge,Gm
7 
8  This class is using the \b Strategy Pattern. \n
9 
10 \author Costas Andreopoulos <c.andreopoulos \at cern.ch>
11  University of Liverpool
12 
13 \created Apr 20, 2004
14 
15 \cpright Copyright (c) 2003-2024, The GENIE Collaboration
16  For the full text of the license visit http://copyright.genie-mc.org
17 */
18 //____________________________________________________________________________
19 
20 #ifndef _EL_FORM_FACTORS_H_
21 #define _EL_FORM_FACTORS_H_
22 
23 #include <iostream>
24 
26 
27 using std::ostream;
28 
29 namespace genie {
30 
31 class ELFormFactors;
32 class Interaction;
33 
34 ostream & operator << (ostream & stream, const ELFormFactors & ff);
35 
37 
38 public:
39  ELFormFactors();
40  ELFormFactors(const ELFormFactors & form_factors);
41  virtual ~ELFormFactors() { }
42 
43  //! Attach an algorithm
44  void SetModel (const ELFormFactorsModelI * model);
45 
46  //! Calculate the form factors for the input interaction using the attached algorithm
47  void Calculate (const Interaction * interaction);
48 
49  //! Get the computed form factor Gep
50  double Gep (void) const { return fGep; }
51 
52  //! Get the computed form factor Gmp
53  double Gmp (void) const { return fGmp; }
54 
55  //! Get the computed form factor Gen
56  double Gen (void) const { return fGen; }
57 
58  //! Get the computed form factor Gmn
59  double Gmn (void) const { return fGmn; }
60 
61  //! Get the attached model
62  const ELFormFactorsModelI * Model (void) const {return fModel;}
63 
64  void Reset (Option_t * opt="");
65  void Copy (const ELFormFactors & ff);
66  bool Compare (const ELFormFactors & ff) const;
67  void Print (ostream & stream) const;
68 
69  bool operator == (const ELFormFactors & ff) const;
71  friend ostream & operator << (ostream & stream, const ELFormFactors & ff);
72 
73 private:
74 
75  double fGep;
76  double fGmp;
77  double fGen;
78  double fGmn;
79 
81 };
82 
83 } // genie namespace
84 
85 #endif // _QEL_FORM_FACTORS_H_
friend ostream & operator<<(ostream &stream, const ELFormFactors &ff)
void Copy(const ELFormFactors &ff)
bool operator==(const ELFormFactors &ff) const
bool Compare(const ELFormFactors &ff) const
double Gen(void) const
Get the computed form factor Gen.
Definition: ELFormFactors.h:56
Summary information for an interaction.
Definition: Interaction.h:56
Pure abstract base class. Defines the ELFormFactorsModelI interface to be implemented by any algorith...
virtual ~ELFormFactors()
Definition: ELFormFactors.h:41
const ELFormFactorsModelI * Model(void) const
Get the attached model.
Definition: ELFormFactors.h:62
void Calculate(const Interaction *interaction)
Calculate the form factors for the input interaction using the attached algorithm.
ELFormFactors & operator=(const ELFormFactors &ff)
A class holding the Elastic Form Factors Ge,Gm.
Definition: ELFormFactors.h:36
void Reset(Option_t *opt="")
double Gmn(void) const
Get the computed form factor Gmn.
Definition: ELFormFactors.h:59
ostream & operator<<(ostream &stream, const AlgConfigPool &config_pool)
const ELFormFactorsModelI * fModel
Definition: ELFormFactors.h:80
double Gmp(void) const
Get the computed form factor Gmp.
Definition: ELFormFactors.h:53
double Gep(void) const
Get the computed form factor Gep.
Definition: ELFormFactors.h:50
void Print(ostream &stream) const
void SetModel(const ELFormFactorsModelI *model)
Attach an algorithm.