Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
partons
core
partons
Commits
defc3b0d
Commit
defc3b0d
authored
Nov 08, 2019
by
Pawel Sznajder
Browse files
TCS transverse target asymmetries (to be checked)
parent
24964faa
Changes
4
Hide whitespace changes
Inline
Side-by-side
include/partons/modules/observable/TCS/asymmetry/TCSAutCosPhiMPhis.h
0 → 100644
View file @
defc3b0d
#ifndef TCSAUTCOSPHIMPHIS_
#define TCSAUTCOSPHIMPHIS_
/**
* @file TCSAutCosPhiMPhis.h
* @author Pawel Sznajder
* @author Oskar Grocholski
* @date November 8, 2019
* @version 1.0
*/
#include
<string>
#include
"../../../../beans/gpd/GPDType.h"
#include
"../../../../beans/List.h"
#include
"../../../../utils/type/PhysicalType.h"
#include
"../TCSObservable.h"
namespace
PARTONS
{
/**
* @class TCSAutCosPhiMPhis
* @brief Asymmetry probing transverse target polarization \f$\cos(\phi - \phi_{S})\f$ component.
*
* Unit: none.
*/
class
TCSAutCosPhiMPhis
:
public
TCSObservable
{
public:
/**
* Unique ID to automatically register the class in the registry.
*/
static
const
unsigned
int
classId
;
/**
* Constructor.
* @param className Name of class.
*/
TCSAutCosPhiMPhis
(
const
std
::
string
&
className
);
/**
* Destructor.
*/
virtual
~
TCSAutCosPhiMPhis
();
virtual
TCSAutCosPhiMPhis
*
clone
()
const
;
protected:
/**
* Copy constructor.
* @param other Object to be copied.
*/
TCSAutCosPhiMPhis
(
const
TCSAutCosPhiMPhis
&
other
);
virtual
PhysicalType
<
double
>
computeObservable
(
const
TCSObservableKinematic
&
kinematic
,
const
List
<
GPDType
>&
gpdType
);
};
}
/* namespace PARTONS */
#endif
/* TCSAUTCOSPHIMPHIS_ */
include/partons/modules/observable/TCS/asymmetry/TCSAutSinPhiMPhis.h
0 → 100644
View file @
defc3b0d
#ifndef TCSAUTSINPHIMPHIS_
#define TCSAUTSINPHIMPHIS_
/**
* @file TCSAutSinPhiMPhis.h
* @author Pawel Sznajder
* @author Oskar Grocholski
* @date November 8, 2019
* @version 1.0
*/
#include
<string>
#include
"../../../../beans/gpd/GPDType.h"
#include
"../../../../beans/List.h"
#include
"../../../../utils/type/PhysicalType.h"
#include
"../TCSObservable.h"
namespace
PARTONS
{
/**
* @class TCSAutSinPhiMPhis
* @brief Asymmetry probing transverse target polarization \f$\sin(\phi - \phi_{S})\f$ component.
*
* Unit: none.
*/
class
TCSAutSinPhiMPhis
:
public
TCSObservable
{
public:
/**
* Unique ID to automatically register the class in the registry.
*/
static
const
unsigned
int
classId
;
/**
* Constructor.
* @param className Name of class.
*/
TCSAutSinPhiMPhis
(
const
std
::
string
&
className
);
/**
* Destructor.
*/
virtual
~
TCSAutSinPhiMPhis
();
virtual
TCSAutSinPhiMPhis
*
clone
()
const
;
protected:
/**
* Copy constructor.
* @param other Object to be copied.
*/
TCSAutSinPhiMPhis
(
const
TCSAutSinPhiMPhis
&
other
);
virtual
PhysicalType
<
double
>
computeObservable
(
const
TCSObservableKinematic
&
kinematic
,
const
List
<
GPDType
>&
gpdType
);
};
}
/* namespace PARTONS */
#endif
/* TCSAUTSINPHIMPHIS_ */
src/partons/modules/observable/TCS/asymmetry/TCSAutCosPhiMPhis.cpp
0 → 100644
View file @
defc3b0d
#include
"../../../../../../include/partons/modules/observable/TCS/asymmetry/TCSAutCosPhiMPhis.h"
#include
<NumA/linear_algebra/vector/Vector3D.h>
#include
"../../../../../../include/partons/beans/observable/ObservableResult.h"
#include
"../../../../../../include/partons/BaseObjectRegistry.h"
#include
"../../../../../../include/partons/modules/process/TCS/TCSProcessModule.h"
#include
"../../../../../../include/partons/utils/type/PhysicalUnit.h"
namespace
PARTONS
{
const
unsigned
int
TCSAutCosPhiMPhis
::
classId
=
BaseObjectRegistry
::
getInstance
()
->
registerBaseObject
(
new
TCSAutCosPhiMPhis
(
"TCSAutCosPhiMPhis"
));
TCSAutCosPhiMPhis
::
TCSAutCosPhiMPhis
(
const
std
::
string
&
className
)
:
TCSObservable
(
className
)
{
}
TCSAutCosPhiMPhis
::
TCSAutCosPhiMPhis
(
const
TCSAutCosPhiMPhis
&
other
)
:
TCSObservable
(
other
)
{
}
TCSAutCosPhiMPhis
::~
TCSAutCosPhiMPhis
()
{
}
TCSAutCosPhiMPhis
*
TCSAutCosPhiMPhis
::
clone
()
const
{
return
new
TCSAutCosPhiMPhis
(
*
this
);
}
PhysicalType
<
double
>
TCSAutCosPhiMPhis
::
computeObservable
(
const
TCSObservableKinematic
&
kinematic
,
const
List
<
GPDType
>&
gpdType
)
{
//evaluate
PhysicalType
<
double
>
A
=
m_pProcessModule
->
compute
(
1
,
NumA
::
Vector3D
(
1.
,
0.
,
0.
),
kinematic
,
gpdType
).
getValue
();
PhysicalType
<
double
>
B
=
m_pProcessModule
->
compute
(
-
1
,
NumA
::
Vector3D
(
-
1.
,
0.
,
0.
),
kinematic
,
gpdType
).
getValue
();
PhysicalType
<
double
>
C
=
m_pProcessModule
->
compute
(
1
,
NumA
::
Vector3D
(
1.
,
0.
,
0.
),
kinematic
,
gpdType
).
getValue
();
PhysicalType
<
double
>
D
=
m_pProcessModule
->
compute
(
-
1
,
NumA
::
Vector3D
(
-
1.
,
0.
,
0.
),
kinematic
,
gpdType
).
getValue
();
//combine
if
((
A
+
B
+
C
+
D
).
getValue
()
==
0.
)
{
warn
(
__func__
,
"Asymmetry denominator is zero"
);
return
PhysicalType
<
double
>
(
0.
,
PhysicalUnit
::
NONE
);
}
//return
return
((
A
+
B
)
-
(
C
+
D
))
/
(
A
+
B
+
C
+
D
);
}
}
/* namespace PARTONS */
src/partons/modules/observable/TCS/asymmetry/TCSAutSinPhiMPhis.cpp
0 → 100644
View file @
defc3b0d
#include
"../../../../../../include/partons/modules/observable/TCS/asymmetry/TCSAutSinPhiMPhis.h"
#include
<NumA/linear_algebra/vector/Vector3D.h>
#include
"../../../../../../include/partons/beans/observable/ObservableResult.h"
#include
"../../../../../../include/partons/BaseObjectRegistry.h"
#include
"../../../../../../include/partons/modules/process/TCS/TCSProcessModule.h"
#include
"../../../../../../include/partons/utils/type/PhysicalUnit.h"
namespace
PARTONS
{
const
unsigned
int
TCSAutSinPhiMPhis
::
classId
=
BaseObjectRegistry
::
getInstance
()
->
registerBaseObject
(
new
TCSAutSinPhiMPhis
(
"TCSAutSinPhiMPhis"
));
TCSAutSinPhiMPhis
::
TCSAutSinPhiMPhis
(
const
std
::
string
&
className
)
:
TCSObservable
(
className
)
{
}
TCSAutSinPhiMPhis
::
TCSAutSinPhiMPhis
(
const
TCSAutSinPhiMPhis
&
other
)
:
TCSObservable
(
other
)
{
}
TCSAutSinPhiMPhis
::~
TCSAutSinPhiMPhis
()
{
}
TCSAutSinPhiMPhis
*
TCSAutSinPhiMPhis
::
clone
()
const
{
return
new
TCSAutSinPhiMPhis
(
*
this
);
}
PhysicalType
<
double
>
TCSAutSinPhiMPhis
::
computeObservable
(
const
TCSObservableKinematic
&
kinematic
,
const
List
<
GPDType
>&
gpdType
)
{
//evaluate
PhysicalType
<
double
>
A
=
m_pProcessModule
->
compute
(
1
,
NumA
::
Vector3D
(
0.
,
1.
,
0.
),
kinematic
,
gpdType
).
getValue
();
PhysicalType
<
double
>
B
=
m_pProcessModule
->
compute
(
-
1
,
NumA
::
Vector3D
(
0.
,
-
1.
,
0.
),
kinematic
,
gpdType
).
getValue
();
PhysicalType
<
double
>
C
=
m_pProcessModule
->
compute
(
1
,
NumA
::
Vector3D
(
0.
,
1.
,
0.
),
kinematic
,
gpdType
).
getValue
();
PhysicalType
<
double
>
D
=
m_pProcessModule
->
compute
(
-
1
,
NumA
::
Vector3D
(
0.
,
-
1.
,
0.
),
kinematic
,
gpdType
).
getValue
();
//combine
if
((
A
+
B
+
C
+
D
).
getValue
()
==
0.
)
{
warn
(
__func__
,
"Asymmetry denominator is zero"
);
return
PhysicalType
<
double
>
(
0.
,
PhysicalUnit
::
NONE
);
}
//return
return
((
A
+
B
)
-
(
C
+
D
))
/
(
A
+
B
+
C
+
D
);
}
}
/* namespace PARTONS */
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment