ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonDigitization
MM_Digitization
MM_Digitization
MM_ElectronicsResponseSimulation.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef MM_DIGITIZATION_MM_ELECTRONICSRESPONSESIMULATION_H
6
#define MM_DIGITIZATION_MM_ELECTRONICSRESPONSESIMULATION_H
7
8
#include <TF1.h>
9
11
#include <sys/stat.h>
12
13
#include <algorithm>
14
#include <cmath>
15
#include <iomanip>
16
#include <iostream>
17
#include <memory>
18
#include <sstream>
19
#include <string>
20
#include <utility>
21
23
#include "
MM_Digitization/MM_DigitToolOutput.h
"
24
#include "
MM_Digitization/MM_ElectronicsToolInput.h
"
25
26
// VMM Mapping
27
#include "
MM_Digitization/VMM_Shaper.h
"
28
namespace
CLHEP
{
29
class
HepRandomEngine;
30
}
31
class
MM_ElectronicsResponseSimulation
{
32
public
:
33
34
struct
ConfigModule
{
36
float
peakTime
{0.};
37
float
timeWindowLowerOffset
{0.};
38
float
timeWindowUpperOffset
{0.};
39
float
stripDeadTime
{0.};
40
float
artDeadTime
{0.};
41
float
vmmDeadtime
{0.};
42
float
vmmUpperGrazeWindow
{0.};
43
bool
useNeighborLogic
{
false
};
44
};
45
46
MM_ElectronicsResponseSimulation
(ConfigModule&& module);
47
~MM_ElectronicsResponseSimulation
() =
default
;
48
49
50
MM_DigitToolOutput
getPeakResponseFrom
(
const
MM_ElectronicsToolInput
& digiInput)
const
;
51
MM_DigitToolOutput
getThresholdResponseFrom
(
const
MM_ElectronicsToolInput
& digiInput)
const
;
52
53
54
float
getPeakTime
()
const
{
return
m_cfg
.peakTime; };
55
float
getTimeWindowLowerOffset
()
const
{
return
m_cfg
.timeWindowLowerOffset; };
56
float
getTimeWindowUpperOffset
()
const
{
return
m_cfg
.timeWindowUpperOffset; };
57
float
getVmmDeadTime
() {
return
m_cfg
.vmmDeadtime; }
58
float
getVmmUpperGrazeWindow
() {
return
m_cfg
.vmmUpperGrazeWindow; }
59
float
getStripdeadtime
()
const
{
return
m_cfg
.stripDeadTime; };
60
float
getARTdeadtime
()
const
{
return
m_cfg
.artDeadTime; };
61
62
63
64
private
:
65
const
ConfigModule
m_cfg
{};
66
67
struct
DataCache
{
68
std::vector<float>
tStripElectronicsAbThr
{};
69
std::vector<float>
qStripElectronics
{};
70
std::vector<int>
nStripElectronics
{};
71
std::unique_ptr<VMM_Shaper>
vmmShaper
{};
72
};
73
74
std::unique_ptr<VMM_Shaper>
m_vmmShaper
{};
75
76
void
vmmPeakResponseFunction
(DataCache& cache,
const
MM_ElectronicsToolInput
& digiInput)
const
;
77
void
vmmThresholdResponseFunction
(DataCache& cache,
const
MM_ElectronicsToolInput
& digiInput)
const
;
78
79
};
80
81
#endif
MM_DigitToolOutput.h
MM_ElectronicsToolInput.h
VMM_Shaper.h
MM_DigitToolOutput
Definition
MM_DigitToolOutput.h:25
MM_ElectronicsResponseSimulation::getVmmUpperGrazeWindow
float getVmmUpperGrazeWindow()
Definition
MM_ElectronicsResponseSimulation.h:58
MM_ElectronicsResponseSimulation::getPeakTime
float getPeakTime() const
Definition
MM_ElectronicsResponseSimulation.h:54
MM_ElectronicsResponseSimulation::m_cfg
const ConfigModule m_cfg
Definition
MM_ElectronicsResponseSimulation.h:65
MM_ElectronicsResponseSimulation::MM_ElectronicsResponseSimulation
MM_ElectronicsResponseSimulation(ConfigModule &&module)
MM_ElectronicsResponseSimulation.cxx MC for micromegas athena integration.
Definition
MM_ElectronicsResponseSimulation.cxx:21
MM_ElectronicsResponseSimulation::getTimeWindowLowerOffset
float getTimeWindowLowerOffset() const
Definition
MM_ElectronicsResponseSimulation.h:55
MM_ElectronicsResponseSimulation::vmmPeakResponseFunction
void vmmPeakResponseFunction(DataCache &cache, const MM_ElectronicsToolInput &digiInput) const
Definition
MM_ElectronicsResponseSimulation.cxx:53
MM_ElectronicsResponseSimulation::getVmmDeadTime
float getVmmDeadTime()
Definition
MM_ElectronicsResponseSimulation.h:57
MM_ElectronicsResponseSimulation::getARTdeadtime
float getARTdeadtime() const
Definition
MM_ElectronicsResponseSimulation.h:60
MM_ElectronicsResponseSimulation::getStripdeadtime
float getStripdeadtime() const
Definition
MM_ElectronicsResponseSimulation.h:59
MM_ElectronicsResponseSimulation::getThresholdResponseFrom
MM_DigitToolOutput getThresholdResponseFrom(const MM_ElectronicsToolInput &digiInput) const
Definition
MM_ElectronicsResponseSimulation.cxx:44
MM_ElectronicsResponseSimulation::~MM_ElectronicsResponseSimulation
~MM_ElectronicsResponseSimulation()=default
MM_ElectronicsResponseSimulation::getTimeWindowUpperOffset
float getTimeWindowUpperOffset() const
Definition
MM_ElectronicsResponseSimulation.h:56
MM_ElectronicsResponseSimulation::m_vmmShaper
std::unique_ptr< VMM_Shaper > m_vmmShaper
Definition
MM_ElectronicsResponseSimulation.h:74
MM_ElectronicsResponseSimulation::getPeakResponseFrom
MM_DigitToolOutput getPeakResponseFrom(const MM_ElectronicsToolInput &digiInput) const
Definition
MM_ElectronicsResponseSimulation.cxx:30
MM_ElectronicsResponseSimulation::vmmThresholdResponseFunction
void vmmThresholdResponseFunction(DataCache &cache, const MM_ElectronicsToolInput &digiInput) const
Definition
MM_ElectronicsResponseSimulation.cxx:104
MM_ElectronicsToolInput
Definition
MM_ElectronicsToolInput.h:9
CLHEP
STD'S.
Definition
CaloNoiseCompCondAlg.h:57
MM_ElectronicsResponseSimulation::ConfigModule
Definition
MM_ElectronicsResponseSimulation.h:34
MM_ElectronicsResponseSimulation::ConfigModule::vmmDeadtime
float vmmDeadtime
Definition
MM_ElectronicsResponseSimulation.h:41
MM_ElectronicsResponseSimulation::ConfigModule::useNeighborLogic
bool useNeighborLogic
Definition
MM_ElectronicsResponseSimulation.h:43
MM_ElectronicsResponseSimulation::ConfigModule::vmmUpperGrazeWindow
float vmmUpperGrazeWindow
Definition
MM_ElectronicsResponseSimulation.h:42
MM_ElectronicsResponseSimulation::ConfigModule::timeWindowLowerOffset
float timeWindowLowerOffset
Definition
MM_ElectronicsResponseSimulation.h:37
MM_ElectronicsResponseSimulation::ConfigModule::stripDeadTime
float stripDeadTime
Definition
MM_ElectronicsResponseSimulation.h:39
MM_ElectronicsResponseSimulation::ConfigModule::peakTime
float peakTime
power of responce function
Definition
MM_ElectronicsResponseSimulation.h:36
MM_ElectronicsResponseSimulation::ConfigModule::timeWindowUpperOffset
float timeWindowUpperOffset
Definition
MM_ElectronicsResponseSimulation.h:38
MM_ElectronicsResponseSimulation::ConfigModule::artDeadTime
float artDeadTime
Definition
MM_ElectronicsResponseSimulation.h:40
MM_ElectronicsResponseSimulation::DataCache
Definition
MM_ElectronicsResponseSimulation.h:67
MM_ElectronicsResponseSimulation::DataCache::qStripElectronics
std::vector< float > qStripElectronics
Definition
MM_ElectronicsResponseSimulation.h:69
MM_ElectronicsResponseSimulation::DataCache::nStripElectronics
std::vector< int > nStripElectronics
Definition
MM_ElectronicsResponseSimulation.h:70
MM_ElectronicsResponseSimulation::DataCache::vmmShaper
std::unique_ptr< VMM_Shaper > vmmShaper
Definition
MM_ElectronicsResponseSimulation.h:71
MM_ElectronicsResponseSimulation::DataCache::tStripElectronicsAbThr
std::vector< float > tStripElectronicsAbThr
Definition
MM_ElectronicsResponseSimulation.h:68
Generated on
for ATLAS Offline Software by
1.17.0