GENIEGenerator
Loading...
Searching...
No Matches
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 <c.andreopoulos \at cern.ch>
15 University of Liverpool
16
17\created May 05, 2004
18
19\cpright Copyright (c) 2003-2025, 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
32using std::ostream;
33
34namespace genie {
35
37ostream & operator << (ostream & stream, const DISStructureFunc & sf);
38
40
41public:
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
82private:
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_
Pure Abstract Base Class. Defines the DISStructureFuncModelI interface to be implemented by any algor...
A class holding Deep Inelastic Scattering (DIS) Form Factors (invariant structure funstions)
DISStructureFunc & operator=(const DISStructureFunc &sf)
void Print(ostream &stream) const
void Calculate(const Interaction *interaction)
Calculate the S/F's for the input interaction using the attached algorithm.
void Copy(const DISStructureFunc &sf)
double F1(void) const
Get the computed structure function F1.
const DISStructureFuncModelI * Model(void) const
Get the attached model.
double F5(void) const
Get the computed structure function F5.
double F3(void) const
Get the computed structure function F3.
friend ostream & operator<<(ostream &stream, const DISStructureFunc &sf)
bool Compare(const DISStructureFunc &sf) const
void Reset(Option_t *opt="")
double F6(void) const
Get the computed structure function F6.
double F4(void) const
Get the computed structure function F4.
void SetModel(const DISStructureFuncModelI *model)
Attach an algorithm.
double F2(void) const
Get the computed structure function F2.
bool operator==(const DISStructureFunc &sf) const
const DISStructureFuncModelI * fModel
Summary information for an interaction.
Definition Interaction.h:56
THE MAIN GENIE PROJECT NAMESPACE
Definition AlgCmp.h:25
ostream & operator<<(ostream &stream, const AlgConfigPool &config_pool)