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 <costas.andreopoulos \at stfc.ac.uk>
14  University of Liverpool & STFC Rutherford Appleton Lab
15 
16 \created April 20, 2004
17 
18 \cpright Copyright (c) 2003-2019, The GENIE Collaboration
19  For the full text of the license visit http://copyright.genie-mc.org
20  or see $GENIE/LICENSE
21 */
22 //____________________________________________________________________________
23 
24 #ifndef _QEL_FORM_FACTORS_H_
25 #define _QEL_FORM_FACTORS_H_
26 
27 #include <iostream>
28 
31 
32 using std::ostream;
33 
34 namespace genie {
35 
36 class QELFormFactors;
37 ostream & operator << (ostream & stream, const QELFormFactors & ff);
38 
40 
41 public:
42 
44  QELFormFactors(const QELFormFactors & form_factors);
45  virtual ~QELFormFactors() { }
46 
47  //! Attach an algorithm
48  void SetModel (const QELFormFactorsModelI * model);
49 
50  //! Compute the form factors for the input interaction using the attached model
51  void Calculate (const Interaction * interaction);
52 
53  //! Get the computed form factor F1V
54  double F1V (void) const { return fF1V; }
55 
56  //! Get the computed form factor xi*F2V
57  double xiF2V (void) const { return fxiF2V; }
58 
59  //! Get the computed form factor FA
60  double FA (void) const { return fFA; }
61 
62  //! Get the computed form factor Fp
63  double Fp (void) const { return fFp; }
64 
65  //! Get the attached model
66  const QELFormFactorsModelI * Model (void) const {return fModel;}
67 
68  void Reset (Option_t * opt="");
69  void Copy (const QELFormFactors & ff);
70  bool Compare (const QELFormFactors & ff) const;
71  void Print (ostream & stream) const;
72 
73  bool operator == (const QELFormFactors & ff) const;
75  friend ostream & operator << (ostream & stream, const QELFormFactors & ff);
76 
77 private:
78 
79  double fF1V;
80  double fxiF2V;
81  double fFA;
82  double fFp;
83 
85 };
86 
87 } // genie namespace
88 
89 #endif // _QEL_FORM_FACTORS_H_
const QELFormFactorsModelI * fModel
A class holding Quasi Elastic (QEL) Form Factors.
THE MAIN GENIE PROJECT NAMESPACE
Definition: GeneratorBase.h:8
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
TFile ff[ntarg]
Definition: Style.C:26
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.
const XML_Char XML_Content * model
Definition: expat.h:151
double FA(void) const
Get the computed form factor FA.