EIC Software
Reference for
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
EicTpcDigiHitProducer.h
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file EicTpcDigiHitProducer.h
1
//
2
// AYK (ayk@bnl.gov), 2013/06/12
3
//
4
// "Ideal" TPC digitization code
5
//
6
7
#ifndef _EIC_TPC_DIGI_HIT_PRODUCER_
8
#define _EIC_TPC_DIGI_HIT_PRODUCER_
9
10
#include "
EicTrackingDigiHitProducer.h
"
11
#include "
EicDigiParData.h
"
12
13
class
TpcDigiParData
:
public
EicDigiParData
14
{
15
// Yes, avoid complications; this "class" is a data placeholder;
16
friend
class
EicTpcDigiHitProducer
;
17
//friend class EicCalorimeterReconstruction;
18
19
public
:
20
TpcDigiParData
():
EicDigiParData
(),
fTransverseDispersion
(0.0),
fLongitudinalDispersion
(0.0),
21
fRadialIntrinsicResolution
(0.0),
22
fTransverseIntrinsicResolution
(0.0),
fLongitudinalIntrinsicResolution
(0.0),
fGemVerticalPadSize
(0.0) {};
23
~TpcDigiParData
() {};
24
25
void
Print
();
26
27
private
:
28
Double_t
fTransverseDispersion
;
// transverse dispersion in [um]/sqrt(D[cm]);
29
Double_t
fLongitudinalDispersion
;
// longitudinal dispersion in [um]/sqrt(D[cm]);
30
31
// An effective resolution degradation, caused by clustering, electronics, etc; comes in
32
// quadrature with respective [um]/sqrt(D[cm]) term;
33
Double_t
fTransverseIntrinsicResolution
;
// contribution, not associated with transverse dispersion; [um]
34
Double_t
fRadialIntrinsicResolution
;
// may want to override 1/sqrt(12) radial resolution estimate; [um]
35
Double_t
fLongitudinalIntrinsicResolution
;
// contribution, not associated with longitudinal dispersion; [um]
36
37
Double_t
fGemVerticalPadSize
;
// GEM pad height; sort of determines number of hits; [cm]
38
39
ClassDef
(
TpcDigiParData
,7);
40
};
41
42
class
EicTpcDigiHitProducer
:
public
EicTrackingDigiHitProducer
43
{
44
public
:
45
EicTpcDigiHitProducer
():
EicTrackingDigiHitProducer
(
"TPC"
,
46
EicDigiHitProducer
::
Calculate
) {
47
digi
=
new
TpcDigiParData
();
48
49
AssignDigiHitClassName
(
"EicTrackingDigiHit3D"
);
50
};
51
52
~EicTpcDigiHitProducer
() {};
53
54
int
HandleHit
(
const
EicMoCaPoint
*
point
);
55
56
// May want either to save assigned parameters or import them all at once;
57
int
exportTpcDigiParameters
(
const
char
*fileName);
58
int
importTpcDigiParameters
(
const
char
*fileName);
59
60
// May want also to change by hand some of the parameters;
61
void
setTransverseDispersion
(Double_t tDispersion) {
62
digi
->
fTransverseDispersion
= tDispersion;
63
};
64
void
setLongitudinalDispersion
(Double_t lDispersion) {
65
digi
->
fLongitudinalDispersion
= lDispersion;
66
};
67
void
setLongitudinalIntrinsicResolution
(Double_t lResolution) {
68
digi
->
fLongitudinalIntrinsicResolution
= lResolution;
69
};
70
void
setTransverseIntrinsicResolution
(Double_t tResolution) {
71
digi
->
fTransverseIntrinsicResolution
= tResolution;
72
};
73
void
setRadialIntrinsicResolution
(Double_t tResolution) {
74
digi
->
fRadialIntrinsicResolution
= tResolution;
75
};
76
void
setGemVerticalPadSize
(Double_t pitch) {
digi
->
fGemVerticalPadSize
= pitch; };
77
78
void
Print
() {
digi
->
Print
(); };
79
80
private
:
81
TpcDigiParData
*
digi
;
82
83
// Let EicTrackingDigiHitProducer know digi frame pointer;
84
EicDigiParData
*
getEicDigiParDataPtr
() {
return
digi
; };
85
//virtual void Finish();
86
87
ClassDef
(
EicTpcDigiHitProducer
,1);
88
};
89
90
#endif
91
EicRoot
blob
master
eic
detectors
tpc
EicTpcDigiHitProducer.h
Built by
Jin Huang
. updated:
Mon Jan 22 2024 12:43:35
using
1.8.2 with
EIC GitHub integration