"MarlinReco"  1.32.0
MokkaCaloDigi.h
1 #ifndef MokkaCaloDigi1_h
2 #define MokkaCaloDigi1_h 1
3 
4 #include "marlin/Processor.h"
5 #include "EVENT/SimCalorimeterHit.h"
6 #include "IMPL/CalorimeterHitImpl.h"
7 #include "IMPL/LCCollectionVec.h"
8 #include "lcio.h"
9 #include <string>
10 
11 
12 using namespace lcio ;
13 using namespace marlin ;
14 
66 struct MyHit {
67  CalorimeterHitImpl * hit{};
68  std::vector<SimCalorimeterHit*> simHits{};
69 };
70 
71 
72 class MokkaCaloDigi : public Processor {
73 
74  public:
75 
76  MokkaCaloDigi(const MokkaCaloDigi&) = delete;
77  MokkaCaloDigi& operator=(const MokkaCaloDigi&) = delete;
78 
79  virtual Processor* newProcessor() { return new MokkaCaloDigi ; }
80 
81 
82  MokkaCaloDigi() ;
83 
87  virtual void init() ;
88 
91  virtual void processRunHeader( LCRunHeader* run ) ;
92 
95  virtual void processEvent( LCEvent * evt ) ;
96 
97 
98  virtual void check( LCEvent * evt ) ;
99 
100 
103  virtual void end() ;
104 
105 
106  MyHit * ProcessHitInBarrel(SimCalorimeterHit * hit);
107  MyHit * ProcessHitInEndcap(SimCalorimeterHit * hit);
108 
109  protected:
110 
111  std::vector<std::string> _ecalCollections{};
112  std::vector<std::string> _hcalCollections{};
113  std::string _newCollNameHCAL{};
114  std::string _newCollNameECAL{};
115  std::string _relationCollName{};
116  int _nRun{};
117  int _nEvt{};
118 
119  float _thresholdEcal{};
120  float _thresholdHcal{};
121 
122  int _digitalEcal{};
123  int _digitalHcal{};
124 
125  std::vector<int> _ecalLayers{};
126  std::vector<int> _hcalLayers{};
127  std::vector<float> _calibrCoeffEcal{};
128  std::vector<float> _calibrCoeffHcal{};
129  float * _endBarrelChamberLength{};
130  float * _barrelLateralWidth{};
131  float * _barrelOffsetMaxX{};
132  float * _endBarrelOffsetMaxZ{};
133  float _regularBarrelOffsetMaxZ{};
134  float _lateralPlateThickness{};
135  float _modulesGap{};
136  float _innerHcalRadius{};
137  int _numberOfHcalLayers{};
138  int _nStaves{};
139  int _nModules{};
140  int _cellScaleX{};
141  int _cellScaleZ{};
142  float _newCellSizeX{};
143  float _newCellSizeZ{};
144  float _hcalLayerThickness{};
145  float _hcalAbsorberThickness{};
146  float _hcalSensitiveThickness{};
147  float _virtualCellSizeX{};
148  float _virtualCellSizeZ{};
149  float _regularBarrelModuleLength{};
150  float _regularBarrelChamberLength{};
151  float _deltaPhi{};
152  std::vector< std::vector<MyHit*> > _calorimeterHitVec{};
153  LCCollectionVec * _relationCollection{};
154  int _startIEndcap{};
155  int _startJEndcap{};
156  float _startXEndcap{};
157  float _startZEndcap{};
158 
159 
160 
161 } ;
162 
163 #endif
=== MokkaCaloDigi Processor === Calorimeter digitizer Processor for LCIO files produced by Mokka...
Definition: MokkaCaloDigi.h:66
Definition: MokkaCaloDigi.h:72