ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
G4AdjointInterpolator.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4AdjointInterpolator.hh
1
//
2
// ********************************************************************
3
// * License and Disclaimer *
4
// * *
5
// * The Geant4 software is copyright of the Copyright Holders of *
6
// * the Geant4 Collaboration. It is provided under the terms and *
7
// * conditions of the Geant4 Software License, included in the file *
8
// * LICENSE and available at http://cern.ch/geant4/license . These *
9
// * include a list of copyright holders. *
10
// * *
11
// * Neither the authors of this software system, nor their employing *
12
// * institutes,nor the agencies providing financial support for this *
13
// * work make any representation or warranty, express or implied, *
14
// * regarding this software system or assume any liability for its *
15
// * use. Please see the license in the file LICENSE and URL above *
16
// * for the full disclaimer and the limitation of liability. *
17
// * *
18
// * This code implementation is the result of the scientific and *
19
// * technical work of the GEANT4 collaboration. *
20
// * By using, copying, modifying or distributing the software (or *
21
// * any work based on the software) you agree to acknowledge its *
22
// * use in resulting scientific publications, and indicate your *
23
// * acceptance of all terms of the Geant4 Software license. *
24
// ********************************************************************
25
//
26
//
28
// Module: G4AdjointInterpolator
29
// Author: L. Desorgher
30
// Organisation: SpaceIT GmbH
31
// Contract: ESA contract 21435/08/NL/AT
32
// Customer: ESA/ESTEC
34
//
35
// CHANGE HISTORY
36
// --------------
37
// ChangeHistory:
38
// 1st April 2007 creation by L. Desorgher
39
//
40
//-------------------------------------------------------------
41
// Documentation:
42
// Used by G4AdjointCSManager for interpolation purpose.
43
//
44
#ifndef G4AdjointInterpolator_h
45
#define G4AdjointInterpolator_h 1
46
47
#include"
globals.hh
"
48
#include<vector>
49
51
//
52
class
G4AdjointInterpolator
53
{
54
55
public
:
56
static
G4AdjointInterpolator
*
GetAdjointInterpolator
();
57
static
G4AdjointInterpolator
*
GetInstance
();
58
59
public
:
60
62
// Constructors and Destructor
64
65
66
~G4AdjointInterpolator
();
67
69
// Methods
71
72
//Caution everywher it is considere thta x_vec increase monotically
73
74
G4double
LinearInterpolation
(
G4double
&
x
,
G4double
&
x1
,
G4double
&
x2
,
G4double
&
y1
,
G4double
&
y2
);
75
G4double
LogarithmicInterpolation
(
G4double
& x,
G4double
& x1,
G4double
& x2,
G4double
& y1,
G4double
& y2);
76
G4double
ExponentialInterpolation
(
G4double
& x,
G4double
& x1,
G4double
& x2,
G4double
& y1,
G4double
& y2);
77
G4double
Interpolation
(
G4double
& x,
G4double
& x1,
G4double
& x2,
G4double
& y1,
G4double
&y2,
G4String
InterPolMethod=
"Log"
);
78
79
80
size_t
FindPosition
(
G4double
& x,std::vector<G4double>& x_vec,
size_t
ind_min=0,
size_t
ind_max=0);
81
82
size_t
FindPositionForLogVector
(
G4double
& x,std::vector<G4double>& x_vec);
83
84
G4double
Interpolate
(
G4double
& x,std::vector<G4double>& x_vec,std::vector<G4double>& y_vec,
G4String
InterPolMethod=
"Log"
);
//xvec should monotically increase
85
86
G4double
InterpolateWithIndexVector
(
G4double
& x,std::vector<G4double>& x_vec,std::vector<G4double>& y_vec,
87
std::vector<size_t>& index_vec,
G4double
x0,
G4double
dx
);
//xvec should monotically increase
88
89
90
G4double
InterpolateForLogVector
(
G4double
& x,std::vector<G4double>& x_vec,std::vector<G4double>& y_vec);
91
92
private
:
93
static
G4ThreadLocal
G4AdjointInterpolator
*
theInstance
;
94
95
private
:
96
G4AdjointInterpolator
();
97
98
};
99
#endif
geant4
tree
geant4-10.6-release
source
processes
electromagnetic
adjoint
include
G4AdjointInterpolator.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:28
using
1.8.2 with
ECCE GitHub integration