DISStructureFunc.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::DISStructureFunc
5 
6 \brief A class holding Deep Inelastic Scattering (DIS) Form Factors
7  (invariant structure funstions)
8 
9  This class is using the \b Strategy Pattern. \n
10  It can accept requests to calculate itself, for a given interaction,
11  that it then delegates to the algorithmic object, implementing the
12  DISStructureFuncModelI interface, that it finds attached to itself.
13 
14 \author Costas Andreopoulos <constantinos.andreopoulos \at cern.ch>
15  University of Liverpool & STFC Rutherford Appleton Laboratory
16 
17 \created May 05, 2004
18 
19 \cpright Copyright (c) 2003-2020, The GENIE Collaboration
20  For the full text of the license visit http://copyright.genie-mc.org
21 */
22 //____________________________________________________________________________
23 
24 #ifndef _DIS_STRUCTURE_FUNCTIONS_H_
25 #define _DIS_STRUCTURE_FUNCTIONS_H_
26 
27 #include <iostream>
28 
31 
32 using std::ostream;
33 
34 namespace genie {
35 
36 class DISStructureFunc;
37 ostream & operator << (ostream & stream, const DISStructureFunc & sf);
38 
40 
41 public:
43  DISStructureFunc(const DISStructureFunc & form_factors);
44  virtual ~DISStructureFunc() { }
45 
46  //! Attach an algorithm
47  void SetModel (const DISStructureFuncModelI * model);
48 
49  //! Calculate the S/F's for the input interaction using the attached algorithm
50  void Calculate (const Interaction * interaction);
51 
52  //! Get the computed structure function F1
53  double F1 (void) const { return fF1; }
54 
55  //! Get the computed structure function F2
56  double F2 (void) const { return fF2; }
57 
58  //! Get the computed structure function F3
59  double F3 (void) const { return fF3; }
60 
61  //! Get the computed structure function F4
62  double F4 (void) const { return fF4; }
63 
64  //! Get the computed structure function F5
65  double F5 (void) const { return fF5; }
66 
67  //! Get the computed structure function F6
68  double F6 (void) const { return fF6; }
69 
70  //! Get the attached model
71  const DISStructureFuncModelI * Model (void) const {return fModel;}
72 
73  void Reset (Option_t * opt="");
74  void Copy (const DISStructureFunc & sf);
75  bool Compare (const DISStructureFunc & sf) const;
76  void Print (ostream & stream) const;
77 
78  bool operator == (const DISStructureFunc & sf) const;
80  friend ostream & operator << (ostream & stream, const DISStructureFunc & sf);
81 
82 private:
83 
84  double fF1;
85  double fF2;
86  double fF3;
87  double fF4;
88  double fF5;
89  double fF6;
90 
92 };
93 
94 } // genie namespace
95 
96 #endif // _DIS_STRUCTURE_FUNCTIONS_H_
void SetModel(const DISStructureFuncModelI *model)
Attach an algorithm.
Pure Abstract Base Class. Defines the DISStructureFuncModelI interface to be implemented by any algor...
double F6(void) const
Get the computed structure function F6.
double F2(void) const
Get the computed structure function F2.
THE MAIN GENIE PROJECT NAMESPACE
Definition: AlgCmp.h:25
opt
Definition: train.py:196
DISStructureFunc & operator=(const DISStructureFunc &sf)
const DISStructureFuncModelI * fModel
friend ostream & operator<<(ostream &stream, const DISStructureFunc &sf)
Definition: model.py:1
void Copy(const DISStructureFunc &sf)
double F4(void) const
Get the computed structure function F4.
Summary information for an interaction.
Definition: Interaction.h:56
double F1(void) const
Get the computed structure function F1.
bool Compare(const DISStructureFunc &sf) const
const DISStructureFuncModelI * Model(void) const
Get the attached model.
double F5(void) const
Get the computed structure function F5.
A class holding Deep Inelastic Scattering (DIS) Form Factors (invariant structure funstions) ...
double F3(void) const
Get the computed structure function F3.
ostream & operator<<(ostream &stream, const AlgConfigPool &config_pool)
bool operator==(const DISStructureFunc &sf) const
void Calculate(const Interaction *interaction)
Calculate the S/F&#39;s for the input interaction using the attached algorithm.
void Print(ostream &stream) const
void Reset(Option_t *opt="")