thepeg
is hosted by
Hepforge
,
IPPP Durham
ThePEG
2.3.0
PDF
HardSphereYukawaFormFactor.h
1
// -*- C++ -*-
2
#ifndef ThePEG_HardSphereYukawaFormFactor_H
3
#define ThePEG_HardSphereYukawaFormFactor_H
4
//
5
// This is the declaration of the HardSphereYukawaFormFactor class.
6
//
7
8
#include "NucleonFormFactor.h"
9
#include "ThePEG/PDT/ParticleData.h"
10
11
namespace
ThePEG
{
12
19
class
HardSphereYukawaFormFactor
:
public
NucleonFormFactor
{
20
21
public
:
22
26
HardSphereYukawaFormFactor
() :
yukawaRange_
(0.7*femtometer),
aFact_
(1.2*femtometer)
27
{}
28
32
Complex
formFactor
(
tcPDPtr
nucleon,
Energy2
q2)
const
{
33
pair<int,int> AZ =
massAndZ
(nucleon->id());
34
Length
R =
aFact_
*pow(AZ.first,1./3.);
35
double
Rq = sqrt(q2)*R/
hbarc
;
36
return
3./pow(Rq,3)*(sin(Rq)-Rq*cos(Rq))/(1.+
sqr
(
yukawaRange_
/
hbarc
)*q2);
37
}
38
39
public
:
40
47
void
persistentOutput
(
PersistentOStream
& os)
const
;
48
54
void
persistentInput
(
PersistentIStream
& is,
int
version);
56
63
static
void
Init
();
64
65
protected
:
66
70
pair<int,int>
massAndZ
(
long
pid)
const
{
71
pair<int,int> output;
72
output.first = (abs(pid)%10000)/10;
73
output.second = (abs(pid)%10000000)/10000;
74
return
output;
75
}
76
77
protected
:
78
85
virtual
IBPtr
clone
()
const
;
86
91
virtual
IBPtr
fullclone
()
const
;
93
94
private
:
95
100
HardSphereYukawaFormFactor
&
operator=
(
const
HardSphereYukawaFormFactor
&) =
delete
;
101
102
private :
103
107
Length
yukawaRange_
;
108
112
Length
aFact_
;
113
114
115
};
116
117
}
118
119
#endif
/* ThePEG_HardSphereYukawaFormFactor_H */
ThePEG::HardSphereYukawaFormFactor
The HardSphereYukawaFormFactor class implements a form factor model using a hard space + yukawaw inte...
Definition:
HardSphereYukawaFormFactor.h:19
ThePEG::HardSphereYukawaFormFactor::aFact_
Length aFact_
Prefactor for the nucleur radius .
Definition:
HardSphereYukawaFormFactor.h:112
ThePEG::HardSphereYukawaFormFactor::formFactor
Complex formFactor(tcPDPtr nucleon, Energy2 q2) const
Convolution of hard sphere and Yukawa for heavy nuclei.
Definition:
HardSphereYukawaFormFactor.h:32
ThePEG::HardSphereYukawaFormFactor::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
ThePEG::HardSphereYukawaFormFactor::HardSphereYukawaFormFactor
HardSphereYukawaFormFactor()
The default constructor.
Definition:
HardSphereYukawaFormFactor.h:26
ThePEG::HardSphereYukawaFormFactor::clone
virtual IBPtr clone() const
Make a simple clone of this object.
ThePEG::HardSphereYukawaFormFactor::yukawaRange_
Length yukawaRange_
Range of the Yukawa potential.
Definition:
HardSphereYukawaFormFactor.h:107
ThePEG::HardSphereYukawaFormFactor::massAndZ
pair< int, int > massAndZ(long pid) const
Extract the mass and atomic number for the nuclear PDG code.
Definition:
HardSphereYukawaFormFactor.h:70
ThePEG::HardSphereYukawaFormFactor::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
ThePEG::HardSphereYukawaFormFactor::operator=
HardSphereYukawaFormFactor & operator=(const HardSphereYukawaFormFactor &)=delete
The assignment operator is private and must never be called.
ThePEG::HardSphereYukawaFormFactor::Init
static void Init()
The standard Init function used to initialize the interfaces.
ThePEG::HardSphereYukawaFormFactor::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
ThePEG::NucleonFormFactor
The documentation of the NucleonFormFactor class provides a base class for the implementation of nucl...
Definition:
NucleonFormFactor.h:20
ThePEG::PersistentIStream
PersistentIStream is used to read persistent objects from a stream where they were previously written...
Definition:
PersistentIStream.h:48
ThePEG::PersistentOStream
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
Definition:
PersistentOStream.h:51
ThePEG::Pointer::RCPtr
RCPtr is a reference counted (smart) pointer.
Definition:
RCPtr.h:60
ThePEG::Pointer::TransientConstRCPtr
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
Definition:
RCPtr.h:696
ThePEG::Qty< 0, 2, 0 >
ThePEG::Units::hbarc
constexpr Qty< 1, 1, 0 > hbarc
Planck's constant times c (PDG 2006 value 197.326968(17) MeV fm)
Definition:
Unitsystem.h:245
ThePEG
This is the main namespace within which all identifiers in ThePEG are declared.
Definition:
FactoryBase.h:28
ThePEG::Complex
std::complex< double > Complex
ThePEG code should use Complex for all complex scalars.
Definition:
Complex.h:23
ThePEG::sqr
constexpr auto sqr(const T &x) -> decltype(x *x)
The square function should really have been included in the standard C++ library.
Definition:
ThePEG.h:117
Generated on Thu Jun 20 2024 14:47:00 for ThePEG by
1.9.6