Belle II Software  release-05-01-25
ECLDigitizerPureCsIModule.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Guglielmo De Nardo *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 
13 //STL
14 #include <vector>
15 
16 //Framework
17 #include <framework/core/Module.h>
18 #include <framework/datastore/StoreArray.h>
19 
20 //ECL
21 #include <ecl/digitization/EclConfigurationPure.h>
22 
23 namespace Belle2 {
29  class ECLNoiseData;
30  class ECLDsp;
31  class ECLHit;
32  class ECLPureCsIInfo;
33  class ECLDigit;
34 
49  class ECLDigitizerPureCsIModule : public Module {
50  public:
51 
55 
59 
60 
62  virtual void initialize() override;
63 
65  virtual void beginRun() override;
66 
71  virtual void event() override;
72 
74  virtual void endRun() override;
75 
77  virtual void terminate() override;
78 
79  private:
83  void mapGeometry();
85  bool isPureCsI(int cellId)
86  {
87  if (cellId > ECL::EclConfigurationPure::m_nch) return false;
88  int thId = m_thetaID[cellId - 1];
89  if (thId >= m_thetaIdMin && thId <= m_thetaIdMax) return true;
90  return false;
91  }
92 
94  struct crystallinks_t {
95  short unsigned int idn;
96  short unsigned int inoise;
97  short unsigned int ifunc;
98  short unsigned int iss;
99  };
100 
102  std::vector<crystallinks_t> m_tbl;
103 
110 
119 
121  std::vector<fitparams_type> m_fitparams;
123  std::vector<signalsample_type> m_ss;
124 
126  std::vector<adccounts_type> m_adc;
128  std::vector<ECLNoiseData> m_noise;
130  void readDSPDB();
132  int m_nEvent = 0;
135  int m_thetaIdMin;
137  int m_thetaIdMax;
139  bool m_background;
141  bool m_calibration;
149  double m_elecNoise;
153  bool m_debug;
157  double m_testsig;
159  double m_testenedep;
161  static constexpr const char* eclDigitArrayName() { return "ECLDigitsPureCsI"; }
163  static constexpr const char* eclDspArrayName() { return "ECLDspsPureCsI"; }
165  static constexpr const char* eclPureCsIInfoArrayName() { return "ECLPureCsIInfo"; }
166  };
168 }//Belle2
Belle2::ECLDigitizerPureCsIModule::m_testtrg
int m_testtrg
Fixed trigger time for testing purposes.
Definition: ECLDigitizerPureCsIModule.h:163
Belle2::ECL::EclConfigurationPure::fitparamspure_t
a struct for the fit parameters for the pure CsI calorimeter
Definition: EclConfigurationPure.h:57
Belle2::ECLDigitizerPureCsIModule::readDSPDB
void readDSPDB()
read Shaper-DSP data from root file.
Definition: ECLDigitizerPureCsIModule.cc:247
Belle2::ECLDigitizerPureCsIModule::~ECLDigitizerPureCsIModule
~ECLDigitizerPureCsIModule()
Destructor.
Definition: ECLDigitizerPureCsIModule.cc:73
Belle2::ECLDigitizerPureCsIModule::m_NoCovMatrix
bool m_NoCovMatrix
Flag to use a diagonal (neutral) Covariance matrix.
Definition: ECLDigitizerPureCsIModule.h:151
Belle2::ECLDigitizerPureCsIModule::m_fitparams
std::vector< fitparams_type > m_fitparams
Fitting parameters.
Definition: ECLDigitizerPureCsIModule.h:129
Belle2::ECLDigitizerPureCsIModule::eclPureCsIInfoArrayName
static constexpr const char * eclPureCsIInfoArrayName()
Pure CsI Info array name.
Definition: ECLDigitizerPureCsIModule.h:173
Belle2::ECLDigitizerPureCsIModule::eclDigitArrayName
static constexpr const char * eclDigitArrayName()
Pure CsI digit array name.
Definition: ECLDigitizerPureCsIModule.h:169
Belle2::ECLDigitizerPureCsIModule::m_ecldigits
StoreArray< ECLDigit > m_ecldigits
StoreArray ECLDigit.
Definition: ECLDigitizerPureCsIModule.h:122
Belle2::ECL::EclConfigurationPure::adccountspure_t
a struct for the fit parameters for the pure CsI calorimeter
Definition: EclConfigurationPure.h:50
Belle2::ECL::EclConfigurationPure::m_nch
static constexpr int m_nch
total number of electronic channels (crystals) in fwd endcap calorimeter
Definition: EclConfigurationPure.h:28
Belle2::ECLDigitizerPureCsIModule::m_thetaIdMax
int m_thetaIdMax
Ring ID of last pure CsI ring in FWD.
Definition: ECLDigitizerPureCsIModule.h:145
Belle2::ECLDigitizerPureCsIModule::m_noise
std::vector< ECLNoiseData > m_noise
Parameters for correlated noise stimation.
Definition: ECLDigitizerPureCsIModule.h:136
Belle2::ECLDigitizerPureCsIModule::mapGeometry
void mapGeometry()
Returns ring ID for a certain crystal.
Definition: ECLDigitizerPureCsIModule.cc:334
Belle2::ECLDigitizerPureCsIModule::initialize
virtual void initialize() override
Initialize variables
Definition: ECLDigitizerPureCsIModule.cc:77
Belle2::ECLDigitizerPureCsIModule::m_photostatresolution
double m_photostatresolution
Resolution for a 1 MeV energy deposit.
Definition: ECLDigitizerPureCsIModule.h:159
Belle2::ECLDigitizerPureCsIModule::m_ss
std::vector< signalsample_type > m_ss
Tabulated shape line.
Definition: ECLDigitizerPureCsIModule.h:131
Belle2::ECLDigitizerPureCsIModule::m_nEvent
int m_nEvent
Event number.
Definition: ECLDigitizerPureCsIModule.h:140
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::ECLDigitizerPureCsIModule::m_adc
std::vector< adccounts_type > m_adc
Storage for adc hits from entire calorimeter (8736 crystals).
Definition: ECLDigitizerPureCsIModule.h:134
Belle2::ECLDigitizerPureCsIModule::m_debug
bool m_debug
Flag for debug mode.
Definition: ECLDigitizerPureCsIModule.h:161
Belle2::ECLDigitizerPureCsIModule::m_eclpurecsiinfo
StoreArray< ECLPureCsIInfo > m_eclpurecsiinfo
StoreArray ECLPureCsIInfo.
Definition: ECLDigitizerPureCsIModule.h:124
Belle2::ECLDigitizerPureCsIModule::ECLDigitizerPureCsIModule
ECLDigitizerPureCsIModule()
Constructor.
Definition: ECLDigitizerPureCsIModule.cc:46
Belle2::ECLDigitizerPureCsIModule::m_thetaID
int m_thetaID[ECL::EclConfigurationPure::m_nch]
ECL ring ID.
Definition: ECLDigitizerPureCsIModule.h:89
Belle2::ECLDigitizerPureCsIModule::m_tickFactor
int m_tickFactor
multiplication factor to get adc tick from trigger tick.
Definition: ECLDigitizerPureCsIModule.h:153
Belle2::ECLDigitizerPureCsIModule::m_testsig
double m_testsig
Shift in signal arrival time, for testing purposes.
Definition: ECLDigitizerPureCsIModule.h:165
Belle2::ECLDigitizerPureCsIModule::m_background
bool m_background
Flag to set covariance matrix for WF with beam-bkg.
Definition: ECLDigitizerPureCsIModule.h:147
Belle2::ECLDigitizerPureCsIModule::m_ecldsps
StoreArray< ECLDsp > m_ecldsps
StoreArray ECLDsp.
Definition: ECLDigitizerPureCsIModule.h:120
Belle2::ECLDigitizerPureCsIModule::m_hitLists
StoreArray< ECLHit > m_hitLists
StoreArray ECLHit.
Definition: ECLDigitizerPureCsIModule.h:126
Belle2::ECLDigitizerPureCsIModule::m_thetaIdMin
int m_thetaIdMin
Module parameters.
Definition: ECLDigitizerPureCsIModule.h:143
Belle2::ECLDigitizerPureCsIModule::endRun
virtual void endRun() override
Nothing so far.
Definition: ECLDigitizerPureCsIModule.cc:239
Belle2::ECLDigitizerPureCsIModule::eclDspArrayName
static constexpr const char * eclDspArrayName()
Pure CsI DSP array name.
Definition: ECLDigitizerPureCsIModule.h:171
Belle2::ECLDigitizerPureCsIModule::m_calibration
bool m_calibration
Flag to use the DigitizerPureCsI for Waveform fit Covariance Matrix calibration.
Definition: ECLDigitizerPureCsIModule.h:149
Belle2::ECLDigitizerPureCsIModule::isPureCsI
bool isPureCsI(int cellId)
Returns 1 if corresponding crystal is set as pure CsI crystal.
Definition: ECLDigitizerPureCsIModule.h:93
Belle2::ECLDigitizerPureCsIModule::m_sigmaTrigger
double m_sigmaTrigger
Trigger resolution.
Definition: ECLDigitizerPureCsIModule.h:155
Belle2::StoreArray
Accessor to arrays stored in the data store.
Definition: ECLMatchingPerformanceExpertModule.h:33
Belle2::ECLDigitizerPureCsIModule::terminate
virtual void terminate() override
Free memory.
Definition: ECLDigitizerPureCsIModule.cc:243
Belle2::ECLDigitizerPureCsIModule::m_testenedep
double m_testenedep
Fixed energy deposition in all crystals, for testing purposes.
Definition: ECLDigitizerPureCsIModule.h:167
Belle2::ECLDigitizerPureCsIModule::event
virtual void event() override
Actual digitization of all pure CsI hits in the ECL.
Definition: ECLDigitizerPureCsIModule.cc:105
Belle2::ECLDigitizerPureCsIModule::m_elecNoise
double m_elecNoise
Electronic Noise energy equivalente in MeV.
Definition: ECLDigitizerPureCsIModule.h:157
Belle2::ECLDigitizerPureCsIModule::m_tbl
std::vector< crystallinks_t > m_tbl
Lookup table for ECL channels.
Definition: ECLDigitizerPureCsIModule.h:110
Belle2::ECL::EclConfigurationPure::signalsamplepure_t
a struct for a signal sample for the pure CsI calorimeter
Definition: EclConfigurationPure.h:40
Belle2::ECLDigitizerPureCsIModule::beginRun
virtual void beginRun() override
Nothing so far.
Definition: ECLDigitizerPureCsIModule.cc:101