ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonDigitization
MDT_Response
MDT_Response
Amplifier.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef MDT_RESPONSE_AMPLIFIER_H
6
#define MDT_RESPONSE_AMPLIFIER_H
7
8
#include <vector>
9
10
class
Amplifier
{
11
private
:
12
// define internal data format
13
typedef
std::vector<double>
cluster_vec
;
14
typedef
std::vector<double>::iterator
cluster_vec_it
;
15
typedef
std::vector<double>::const_iterator
cluster_vec_const_it
;
16
17
public
:
18
Amplifier
();
19
~Amplifier
();
20
21
// returne t_threshold
22
double
TThreshold
()
const
;
23
24
// returns time first electron arrived
25
double
TFirst
()
const
;
26
27
// returns amplifier response if the amplifier has signal else -1.
28
double
AdcResponse
()
const
;
29
30
// returns integrated charge before wilkinson adc if the amplifier has signal
31
double
Charge
()
const
;
32
33
bool
PassedThreshold
()
const
;
// check if threshold was passed
34
void
Reset
();
// reset amplifier signal
35
36
// Set routines
37
void
SetTriggerElectron
(
double
el);
// set threshold in fractions of triggerelectrons
38
void
SetIntegrationWindow
(
double
win);
// set size integration windos
39
40
// initialize response and signal, needs to be done before using amplifier!
41
void
InitResponse
(
unsigned
int
bins
,
double
binsize);
42
43
bool
AddClusters
(
const
cluster_vec
& clusters);
// add up response functions for a set of clusters
44
45
private
:
46
void
InitAmplifierParameters
();
// default initialization of amplifier settings
47
static
double
ResponseFunction
(
double
time);
48
49
void
DoAdcResponse
();
// calculate adc response
50
double
Integral
();
// charge integral
51
void
AddCluster
(
int
bin
,
double
charge
);
52
53
double
m_binsize
= 0.0;
// binsize in ns
54
double
m_triggerElectron
= 0.0;
// trigger electron
55
double
m_threshold
= 0.0;
// threshold
56
int
m_integrationWindow
;
// integration window in bins
57
double
m_integrationWindowNs
= 0.0;
// integration window in ns
58
59
// maximum of the single electron response
60
double
m_responseMax
= 0.0;
61
62
cluster_vec
m_response
;
63
cluster_vec
m_signal
;
64
double
m_integral
;
65
double
m_adcResponse
;
66
67
// iterators
68
cluster_vec_it
m_signal_th
{};
// iterator pointing to the first bin over threshold
69
cluster_vec_it
m_signal_stop
{};
70
cluster_vec_const_it
m_cluster_stop
{};
71
cluster_vec_const_it
m_cluster_begin
{};
72
73
/* non linear response:
74
R = m_adcOffset + m_adcFactor*(log(Q)/log(m_adcFraction)-1) */
75
double
m_adcOffset
= 0.0;
76
double
m_adcFactor
= 0.0;
77
double
m_adcFraction
= 0.0;
78
79
};
80
81
inline
double
Amplifier::TThreshold
()
const
{
82
return
m_binsize
*(
m_signal_th
-
m_signal
.begin());
83
}
84
inline
double
Amplifier::TFirst
()
const
{
85
cluster_vec_const_it
cit =
m_signal
.begin();
86
while
( *cit == 0 )
87
++cit;
88
return
m_binsize
*(cit-
m_signal
.begin()); ;
89
}
90
inline
double
Amplifier::AdcResponse
()
const
{
91
return
m_adcResponse
;
92
}
93
inline
double
Amplifier::Charge
()
const
{
94
return
m_integral
;
95
}
96
97
inline
void
Amplifier::SetTriggerElectron
(
double
el) {
98
m_triggerElectron
= el;
99
m_threshold
= el*
m_responseMax
;
100
}
101
inline
void
Amplifier::SetIntegrationWindow
(
double
win) {
102
m_integrationWindow
= (int)(win/
m_binsize
)-1;
103
}
104
inline
bool
Amplifier::PassedThreshold
()
const
{
105
return
m_signal
.begin() !=
m_signal_th
;
106
}
107
108
#endif
109
charge
double charge(const T &p)
Definition
AtlasPID.h:1003
bins
static const std::vector< std::string > bins
Definition
MuonTriggerSFFilesTest.cxx:22
Amplifier::TFirst
double TFirst() const
Definition
Amplifier.h:84
Amplifier::DoAdcResponse
void DoAdcResponse()
Definition
Amplifier.cxx:198
Amplifier::ResponseFunction
static double ResponseFunction(double time)
Definition
Amplifier.cxx:32
Amplifier::SetIntegrationWindow
void SetIntegrationWindow(double win)
Definition
Amplifier.h:101
Amplifier::m_responseMax
double m_responseMax
Definition
Amplifier.h:60
Amplifier::m_adcResponse
double m_adcResponse
Definition
Amplifier.h:65
Amplifier::m_integral
double m_integral
Definition
Amplifier.h:64
Amplifier::m_signal_th
cluster_vec_it m_signal_th
Definition
Amplifier.h:68
Amplifier::InitResponse
void InitResponse(unsigned int bins, double binsize)
Definition
Amplifier.cxx:97
Amplifier::InitAmplifierParameters
void InitAmplifierParameters()
Definition
Amplifier.cxx:20
Amplifier::m_binsize
double m_binsize
Definition
Amplifier.h:53
Amplifier::cluster_vec
std::vector< double > cluster_vec
Definition
Amplifier.h:13
Amplifier::cluster_vec_const_it
std::vector< double >::const_iterator cluster_vec_const_it
Definition
Amplifier.h:15
Amplifier::Charge
double Charge() const
Definition
Amplifier.h:93
Amplifier::m_adcFraction
double m_adcFraction
Definition
Amplifier.h:77
Amplifier::~Amplifier
~Amplifier()
Amplifier::m_signal
cluster_vec m_signal
Definition
Amplifier.h:63
Amplifier::PassedThreshold
bool PassedThreshold() const
Definition
Amplifier.h:104
Amplifier::AddClusters
bool AddClusters(const cluster_vec &clusters)
Definition
Amplifier.cxx:129
Amplifier::SetTriggerElectron
void SetTriggerElectron(double el)
Definition
Amplifier.h:97
Amplifier::m_threshold
double m_threshold
Definition
Amplifier.h:55
Amplifier::AdcResponse
double AdcResponse() const
Definition
Amplifier.h:90
Amplifier::m_integrationWindowNs
double m_integrationWindowNs
Definition
Amplifier.h:57
Amplifier::m_triggerElectron
double m_triggerElectron
Definition
Amplifier.h:54
Amplifier::Reset
void Reset()
Definition
Amplifier.cxx:119
Amplifier::cluster_vec_it
std::vector< double >::iterator cluster_vec_it
Definition
Amplifier.h:14
Amplifier::m_adcOffset
double m_adcOffset
Definition
Amplifier.h:75
Amplifier::TThreshold
double TThreshold() const
Definition
Amplifier.h:81
Amplifier::AddCluster
void AddCluster(int bin, double charge)
Definition
Amplifier.cxx:151
Amplifier::m_signal_stop
cluster_vec_it m_signal_stop
Definition
Amplifier.h:69
Amplifier::Integral
double Integral()
Definition
Amplifier.cxx:187
Amplifier::Amplifier
Amplifier()
Definition
Amplifier.cxx:9
Amplifier::m_cluster_begin
cluster_vec_const_it m_cluster_begin
Definition
Amplifier.h:71
Amplifier::m_cluster_stop
cluster_vec_const_it m_cluster_stop
Definition
Amplifier.h:70
Amplifier::m_adcFactor
double m_adcFactor
Definition
Amplifier.h:76
Amplifier::m_integrationWindow
int m_integrationWindow
Definition
Amplifier.h:56
Amplifier::m_response
cluster_vec m_response
Definition
Amplifier.h:62
bin
Definition
BinsDiffFromStripMedian.h:43
Generated on
for ATLAS Offline Software by
1.17.0