ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonDigitization
MM_Digitization
MM_Digitization
VMM_Shaper.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef MM_DIGITIZATION_VMM_SHAPER_H
6
#define MM_DIGITIZATION_VMM_SHAPER_H
7
8
#include <vector>
9
10
class
VMM_Shaper
{
11
public
:
12
VMM_Shaper
(
const
float
peakTime,
const
float
lowerTimeWindow,
const
float
upperTimeWindow);
13
virtual
~VMM_Shaper
() =
default
;
14
15
void
initialize
();
16
17
bool
vmmPeakResponse
(
const
std::vector<float> &effectiveCharge,
const
std::vector<float> &electronsTime,
18
const
double
electronicsThreshold,
double
&litudeFirstPeak,
double
&timeFirstPeak)
const
;
19
bool
vmmThresholdResponse
(
const
std::vector<float> &effectiveCharge,
const
std::vector<float> &electronsTime,
20
const
double
electronicsThreshold,
double
&litudeAtFirstPeak,
double
&timeAtThreshold)
const
;
21
22
bool
hasChargeAboveThreshold
(
const
std::vector<float> &effectiveCharge,
const
std::vector<float> &electronsTime,
23
const
double
electronicsThreshold)
const
;
24
25
private
:
26
double
m_peakTime
{0.};
27
double
m_lowerTimeWindow
{0.};
28
double
m_upperTimeWindow
{0.};
29
30
double
m_timeStep
{0.};
31
double
m_inverseTimeStep
{0.};
32
33
double
m_preCalculationVMMShaper
{0.};
34
// shaper parameters
35
double
m_a
{0.};
36
double
m_pole0
{0.};
37
double
m_re_pole1
{0.};
38
double
m_im_pole1
{0.};
39
double
m_pole1_square
{0.};
40
double
m_k1_abs
{0.};
41
double
m_argK1
{0.};
42
double
m_peakTimeChargeScaling
{0.};
43
44
double
vmmResponse
(
const
std::vector<float> &effectiveCharge,
const
std::vector<float> &electronsTime,
double
time)
const
;
45
double
findPeak
(
const
std::vector<float> &effectiveCharge,
const
std::vector<float> &electronsTime,
46
const
double
electronicsThreshold)
const
;
47
bool
aboveThresholdSimple
(
const
std::vector<float> &effectiveCharge,
const
std::vector<float> &electronsTime,
48
const
double
electronicsThreshold)
const
;
49
double
m_pole0_ns
{0.};
50
double
m_re_pole1_ns
{0.};
51
double
m_im_pole1_ns
{0.};
52
};
53
54
#endif
// MM_DIGITIZATION_VMM_SHAPER_H
VMM_Shaper::m_pole1_square
double m_pole1_square
Definition
VMM_Shaper.h:39
VMM_Shaper::vmmPeakResponse
bool vmmPeakResponse(const std::vector< float > &effectiveCharge, const std::vector< float > &electronsTime, const double electronicsThreshold, double &litudeFirstPeak, double &timeFirstPeak) const
Definition
VMM_Shaper.cxx:64
VMM_Shaper::~VMM_Shaper
virtual ~VMM_Shaper()=default
VMM_Shaper::m_inverseTimeStep
double m_inverseTimeStep
Definition
VMM_Shaper.h:31
VMM_Shaper::m_im_pole1
double m_im_pole1
Definition
VMM_Shaper.h:38
VMM_Shaper::aboveThresholdSimple
bool aboveThresholdSimple(const std::vector< float > &effectiveCharge, const std::vector< float > &electronsTime, const double electronicsThreshold) const
Definition
VMM_Shaper.cxx:204
VMM_Shaper::VMM_Shaper
VMM_Shaper(const float peakTime, const float lowerTimeWindow, const float upperTimeWindow)
Definition
VMM_Shaper.cxx:21
VMM_Shaper::findPeak
double findPeak(const std::vector< float > &effectiveCharge, const std::vector< float > &electronsTime, const double electronicsThreshold) const
Definition
VMM_Shaper.cxx:122
VMM_Shaper::m_k1_abs
double m_k1_abs
Definition
VMM_Shaper.h:40
VMM_Shaper::m_pole0
double m_pole0
Definition
VMM_Shaper.h:36
VMM_Shaper::m_preCalculationVMMShaper
double m_preCalculationVMMShaper
Definition
VMM_Shaper.h:33
VMM_Shaper::m_argK1
double m_argK1
Definition
VMM_Shaper.h:41
VMM_Shaper::m_a
double m_a
Definition
VMM_Shaper.h:35
VMM_Shaper::m_peakTimeChargeScaling
double m_peakTimeChargeScaling
Definition
VMM_Shaper.h:42
VMM_Shaper::m_re_pole1
double m_re_pole1
Definition
VMM_Shaper.h:37
VMM_Shaper::initialize
void initialize()
Definition
VMM_Shaper.cxx:27
VMM_Shaper::m_lowerTimeWindow
double m_lowerTimeWindow
Definition
VMM_Shaper.h:27
VMM_Shaper::m_upperTimeWindow
double m_upperTimeWindow
Definition
VMM_Shaper.h:28
VMM_Shaper::hasChargeAboveThreshold
bool hasChargeAboveThreshold(const std::vector< float > &effectiveCharge, const std::vector< float > &electronsTime, const double electronicsThreshold) const
Definition
VMM_Shaper.cxx:185
VMM_Shaper::m_peakTime
double m_peakTime
Definition
VMM_Shaper.h:26
VMM_Shaper::m_re_pole1_ns
double m_re_pole1_ns
Definition
VMM_Shaper.h:50
VMM_Shaper::vmmThresholdResponse
bool vmmThresholdResponse(const std::vector< float > &effectiveCharge, const std::vector< float > &electronsTime, const double electronicsThreshold, double &litudeAtFirstPeak, double &timeAtThreshold) const
Definition
VMM_Shaper.cxx:75
VMM_Shaper::m_pole0_ns
double m_pole0_ns
Definition
VMM_Shaper.h:49
VMM_Shaper::m_im_pole1_ns
double m_im_pole1_ns
Definition
VMM_Shaper.h:51
VMM_Shaper::m_timeStep
double m_timeStep
Definition
VMM_Shaper.h:30
VMM_Shaper::vmmResponse
double vmmResponse(const std::vector< float > &effectiveCharge, const std::vector< float > &electronsTime, double time) const
Definition
VMM_Shaper.cxx:49
Generated on
for ATLAS Offline Software by
1.17.0