ATLAS Offline Software
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
28 namespace CLHEP{
29  class HepRandomEngine;
30 }
32 public:
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 
48 
49 
52 
53 
54  float getPeakTime() const { return m_cfg.peakTime; };
57  float getVmmDeadTime() { return m_cfg.vmmDeadtime; }
59  float getStripdeadtime() const { return m_cfg.stripDeadTime; };
60  float getARTdeadtime() const { return m_cfg.artDeadTime; };
61 
62 
63 
64 private:
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::vmmUpperGrazeWindow
float vmmUpperGrazeWindow
Definition: MM_ElectronicsResponseSimulation.h:42
VMM_Shaper.h
MM_DigitToolOutput.h
MM_ElectronicsResponseSimulation
Definition: MM_ElectronicsResponseSimulation.h:31
MM_ElectronicsResponseSimulation::ConfigModule::vmmDeadtime
float vmmDeadtime
Definition: MM_ElectronicsResponseSimulation.h:41
MM_ElectronicsResponseSimulation::ConfigModule
Definition: MM_ElectronicsResponseSimulation.h:34
MM_ElectronicsResponseSimulation::m_cfg
const ConfigModule m_cfg
Definition: MM_ElectronicsResponseSimulation.h:65
MM_ElectronicsResponseSimulation::DataCache::nStripElectronics
std::vector< int > nStripElectronics
Definition: MM_ElectronicsResponseSimulation.h:70
MM_DigitToolOutput
Definition: MM_DigitToolOutput.h:25
MM_ElectronicsResponseSimulation::ConfigModule::stripDeadTime
float stripDeadTime
Definition: MM_ElectronicsResponseSimulation.h:39
python.PyAthena.module
module
Definition: PyAthena.py:134
MM_ElectronicsResponseSimulation::ConfigModule::timeWindowLowerOffset
float timeWindowLowerOffset
Definition: MM_ElectronicsResponseSimulation.h:37
MM_ElectronicsResponseSimulation::vmmPeakResponseFunction
void vmmPeakResponseFunction(DataCache &cache, const MM_ElectronicsToolInput &digiInput) const
Definition: MM_ElectronicsResponseSimulation.cxx:53
MM_ElectronicsResponseSimulation::DataCache
Definition: MM_ElectronicsResponseSimulation.h:67
MM_ElectronicsToolInput
Definition: MM_ElectronicsToolInput.h:9
MM_ElectronicsResponseSimulation::getVmmDeadTime
float getVmmDeadTime()
Definition: MM_ElectronicsResponseSimulation.h:57
MM_ElectronicsResponseSimulation::m_vmmShaper
std::unique_ptr< VMM_Shaper > m_vmmShaper
Definition: MM_ElectronicsResponseSimulation.h:74
MM_ElectronicsResponseSimulation::getPeakTime
float getPeakTime() const
Definition: MM_ElectronicsResponseSimulation.h:54
MM_ElectronicsResponseSimulation::getTimeWindowLowerOffset
float getTimeWindowLowerOffset() const
Definition: MM_ElectronicsResponseSimulation.h:55
MM_ElectronicsResponseSimulation::getVmmUpperGrazeWindow
float getVmmUpperGrazeWindow()
Definition: MM_ElectronicsResponseSimulation.h:58
MM_ElectronicsResponseSimulation::getThresholdResponseFrom
MM_DigitToolOutput getThresholdResponseFrom(const MM_ElectronicsToolInput &digiInput) const
Definition: MM_ElectronicsResponseSimulation.cxx:44
CLHEP
STD'S.
Definition: IAtRndmGenSvc.h:19
MM_ElectronicsResponseSimulation::DataCache::tStripElectronicsAbThr
std::vector< float > tStripElectronicsAbThr
Definition: MM_ElectronicsResponseSimulation.h:68
MM_ElectronicsResponseSimulation::ConfigModule::useNeighborLogic
bool useNeighborLogic
Definition: MM_ElectronicsResponseSimulation.h:43
MM_ElectronicsResponseSimulation::vmmThresholdResponseFunction
void vmmThresholdResponseFunction(DataCache &cache, const MM_ElectronicsToolInput &digiInput) const
Definition: MM_ElectronicsResponseSimulation.cxx:104
MM_ElectronicsResponseSimulation::DataCache::vmmShaper
std::unique_ptr< VMM_Shaper > vmmShaper
Definition: MM_ElectronicsResponseSimulation.h:71
MM_ElectronicsResponseSimulation::getARTdeadtime
float getARTdeadtime() const
Definition: MM_ElectronicsResponseSimulation.h:60
MM_ElectronicsResponseSimulation::getStripdeadtime
float getStripdeadtime() const
Definition: MM_ElectronicsResponseSimulation.h:59
MM_ElectronicsResponseSimulation::DataCache::qStripElectronics
std::vector< float > qStripElectronics
Definition: MM_ElectronicsResponseSimulation.h:69
MM_ElectronicsResponseSimulation::getPeakResponseFrom
MM_DigitToolOutput getPeakResponseFrom(const MM_ElectronicsToolInput &digiInput) const
Definition: MM_ElectronicsResponseSimulation.cxx:30
MM_ElectronicsResponseSimulation::~MM_ElectronicsResponseSimulation
~MM_ElectronicsResponseSimulation()=default
MM_ElectronicsToolInput.h
MM_ElectronicsResponseSimulation::ConfigModule::artDeadTime
float artDeadTime
Definition: MM_ElectronicsResponseSimulation.h:40
MM_ElectronicsResponseSimulation::getTimeWindowUpperOffset
float getTimeWindowUpperOffset() const
Definition: MM_ElectronicsResponseSimulation.h:56
MM_ElectronicsResponseSimulation::ConfigModule::timeWindowUpperOffset
float timeWindowUpperOffset
Definition: MM_ElectronicsResponseSimulation.h:38
MM_ElectronicsResponseSimulation::MM_ElectronicsResponseSimulation
MM_ElectronicsResponseSimulation(ConfigModule &&module)
MM_ElectronicsResponseSimulation.cxx MC for micromegas athena integration.
Definition: MM_ElectronicsResponseSimulation.cxx:21
MM_ElectronicsResponseSimulation::ConfigModule::peakTime
float peakTime
power of responce function
Definition: MM_ElectronicsResponseSimulation.h:36