Analysis Software
Documentation for
sPHENIX
simulation software
Home page
Related Pages
Modules
Namespaces
Classes
Files
Examples
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
LaplaceSolution.h
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file LaplaceSolution.h
1
#ifndef __LAPLACESOLUTION_H__
2
#define __LAPLACESOLUTION_H__
3
4
//
5
// Hello Space Charge Fans: (although you should hate space charge)
6
//
7
// This is a code that implements the calculations of space charge contributions
8
// In a cylindrical TPC. It uses the solutions discovered by Stefan Rossegger for
9
// the ALICE experiment. These solutions use various Bessel functions as a series
10
// solution to the "point charge in a conducting cylinder" problem imposed by
11
// The typical configuration of a TPC found at a collider.
12
//
13
// These calculations have only a single dimension [length] and we shall choose
14
// the units of cm throughout the calculations.
15
//
16
// TKH
17
// 12-3-2015
18
//
19
20
#define NumberOfOrders 15 // Convergence problems after 15; Rossegger used 30
21
#include <string>
22
23
class
LaplaceSolution
24
{
25
public
:
26
LaplaceSolution
(
std::string
filename
);
27
LaplaceSolution
(
double
a
=30,
double
b
=80,
double
L
=80);
28
virtual
~LaplaceSolution
() {}
29
30
void
Verbosity
(
int
v
) {
verbosity
=
v
;}
31
double
Rmn
(
int
m
,
int
n
,
double
r
);
//Rmn function from Rossegger
32
double
Rmn1
(
int
m
,
int
n
,
double
r
);
//Rmn1 function from Rossegger
33
double
Rmn2
(
int
m
,
int
n
,
double
r
);
//Rmn2 function from Rossegger
34
double
RPrime
(
int
m
,
int
n
,
double
a
,
double
r
);
// RPrime function from Rossegger
35
36
double
Rnk
(
int
n
,
int
k
,
double
r
);
//Rnk function from Rossegger
37
38
double
Ez
(
double
r
,
double
phi
,
double
z
,
double
r1
,
double
phi1,
double
z1);
39
double
Er
(
double
r
,
double
phi
,
double
z
,
double
r1
,
double
phi1,
double
z1);
40
double
Ephi
(
double
r
,
double
phi
,
double
z
,
double
r1
,
double
phi1,
double
z1);
41
42
protected
:
43
bool
fByFile
;
44
double
a
,
b
,
L
;
// InnerRadius, OuterRadius, Length of 1/2 the TPC.
45
int
verbosity
;
46
double
pi
;
47
48
void
FindBetamn
(
double
epsilon);
// Routine used to fill the Betamn array with resolution epsilon...
49
void
FindMunk
(
double
epsilon);
// Routine used to fill the Munk array with resolution epsilon...
50
51
double
Betamn
[
NumberOfOrders
][
NumberOfOrders
];
// Betamn array from Rossegger
52
double
N2mn
[
NumberOfOrders
][
NumberOfOrders
];
// N2mn array from Rossegger
53
double
Munk
[
NumberOfOrders
][
NumberOfOrders
];
// Munk array from Rossegger
54
double
ByFileER
(
double
r
,
double
phi
,
double
z
,
double
r1
,
double
phi1,
double
z1);
55
double
ByFileEZ
(
double
r
,
double
phi
,
double
z
,
double
r1
,
double
phi1,
double
z1);
56
57
58
};
59
60
#endif
/* __LAPLACESOLUTION_H__ */
61
62
63
analysis
blob
master
TPC
SCDCorrections
LaplaceSolution.h
Built by
Jin Huang
. updated:
Sat Feb 17 2024 22:17:58
using
1.8.2 with
sPHENIX GitHub integration