ATLAS Offline Software
Loading...
Searching...
No Matches
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
25
26// VMM Mapping
28namespace CLHEP{
29 class HepRandomEngine;
30}
32public:
33
34 struct ConfigModule {
36 float peakTime{0.};
39 float stripDeadTime{0.};
40 float artDeadTime{0.};
41 float vmmDeadtime{0.};
43 bool useNeighborLogic{false};
44 };
45
46 MM_ElectronicsResponseSimulation(ConfigModule&& module);
48
49
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
64private:
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_ElectronicsResponseSimulation(ConfigModule &&module)
MM_ElectronicsResponseSimulation.cxx MC for micromegas athena integration.
void vmmPeakResponseFunction(DataCache &cache, const MM_ElectronicsToolInput &digiInput) const
MM_DigitToolOutput getThresholdResponseFrom(const MM_ElectronicsToolInput &digiInput) const
MM_DigitToolOutput getPeakResponseFrom(const MM_ElectronicsToolInput &digiInput) const
void vmmThresholdResponseFunction(DataCache &cache, const MM_ElectronicsToolInput &digiInput) const