Belle II Software  release-06-01-15
KLMDigitizerModule.h
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 
9 #pragma once
10 
11 /* KLM headers. */
12 #include <klm/dataobjects/bklm/BKLMSimHit.h>
13 #include <klm/dataobjects/eklm/EKLMSimHit.h>
14 #include <klm/dataobjects/KLMDigit.h>
15 #include <klm/dataobjects/KLMElementNumbers.h>
16 #include <klm/dbobjects/KLMChannelStatus.h>
17 #include <klm/dbobjects/KLMScintillatorDigitizationParameters.h>
18 #include <klm/dbobjects/KLMScintillatorFEEParameters.h>
19 #include <klm/dbobjects/KLMStripEfficiency.h>
20 #include <klm/simulation/ScintillatorFirmware.h>
21 #include <klm/time/KLMTime.h>
22 
23 /* Belle 2 headers. */
24 #include <framework/core/Module.h>
25 #include <framework/database/DBObjPtr.h>
26 #include <framework/datastore/StoreArray.h>
27 
28 namespace Belle2 {
40  class KLMDigitizerModule : public Module {
41 
42  public:
43 
48 
53 
57  void initialize() override;
58 
62  void beginRun() override;
63 
67  void event() override;
68 
72  void endRun() override;
73 
77  void terminate() override;
78 
79  private:
80 
85 
88 
91 
92  };
93 
98 
102  void digitizeBKLM();
103 
107  void digitizeEKLM();
108 
113  bool checkActive(KLMChannelNumber channel);
114 
120  bool efficiencyCorrection(float efficiency);
121 
124 
127 
130 
133 
136 
139 
141  std::string m_SimulationMode;
142 
145 
148 
151 
153  std::string m_Efficiency;
154 
157 
159  bool m_Debug;
160 
162  std::multimap<KLMChannelNumber, const BKLMSimHit*> m_bklmSimHitChannelMap;
163 
165  std::multimap<KLMPlaneNumber, const BKLMSimHit*> m_bklmSimHitPlaneMap;
166 
168  std::multimap<KLMChannelNumber, const EKLMSimHit*> m_eklmSimHitChannelMap;
169 
171  std::multimap<KLMPlaneNumber, const EKLMSimHit*> m_eklmSimHitPlaneMap;
172 
175 
178 
181 
184 
187 
188  };
189 
191 }
Class for accessing objects in the database.
Definition: DBObjPtr.h:21
KLM digitization module.
std::multimap< KLMPlaneNumber, const BKLMSimHit * > m_bklmSimHitPlaneMap
Simulation hit map for BKLM (by plane).
StoreArray< EKLMSimHit > m_eklmSimHits
EKLM simulation hits.
std::multimap< KLMPlaneNumber, const EKLMSimHit * > m_eklmSimHitPlaneMap
Simulation hit map for EKLM (by plane).
EfficiencyMode m_EfficiencyMode
Efficiency determination mode (converted from the string parameter).
StoreArray< KLMDigit > m_Digits
KLM digits.
DBObjPtr< KLMChannelStatus > m_ChannelStatus
Channel status.
void digitizeBKLM()
Digitization in BKLM.
DBObjPtr< KLMScintillatorFEEParameters > m_FEEPar
Scintillator FEE parameters.
void initialize() override
Initializer.
bool efficiencyCorrection(float efficiency)
Efficiency correction.
std::multimap< KLMChannelNumber, const BKLMSimHit * > m_bklmSimHitChannelMap
Simulation hit map for BKLM (by channel).
void event() override
This method is called for each event.
const KLMElementNumbers * m_ElementNumbers
Element numbers.
bool m_SaveFPGAFit
Save FPGA fit data (KLMScintillatorFirmwareFitResult).
bool checkActive(KLMChannelNumber channel)
Check if channel is active (status is not KLMChannelStatus::c_Dead).
void endRun() override
This method is called if the current run ends.
DBObjPtr< KLMScintillatorDigitizationParameters > m_DigPar
Scintillator digitization parameters.
void terminate() override
This method is called at the end of the event processing.
EfficiencyMode
Efficiency determination mode.
bool m_Debug
Use debug mode in EKLM::ScintillatorSimulator or not.
void digitizeEKLM()
Digitization in EKLM.
int m_DigitizationInitialTime
Initial digitization time in CTIME periods.
std::multimap< KLMChannelNumber, const EKLMSimHit * > m_eklmSimHitChannelMap
Simulation hit map for EKLM (by channel).
void checkScintillatorFEEParameters()
Check scintillator FEE parameters for channel-specific simulation.
std::string m_Efficiency
Efficiency determination mode ("Strip" or "Plane").
void beginRun() override
Called when entering a new run.
StoreArray< KLMScintillatorFirmwareFitResult > m_FPGAFits
FPGA fits.
StoreArray< BKLMSimHit > m_bklmSimHits
BKLM simulation hits.
bool m_ChannelSpecificSimulation
Whether the simulation is channel-specific.
KLMTime * m_Time
Time conversion.
DBObjPtr< KLMStripEfficiency > m_StripEfficiency
Strip efficiency.
KLM::ScintillatorFirmware * m_Fitter
FPGA fitter.
std::string m_SimulationMode
Simulation mode.
KLM element numbers.
KLM time conversion.
Definition: KLMTime.h:27
Base class for Modules.
Definition: Module.h:72
Accessor to arrays stored in the data store.
Definition: StoreArray.h:113
uint16_t KLMChannelNumber
Channel number.
Abstract base class for different kinds of events.