"MarlinReco"  1.16.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  virtual Processor* newProcessor() { return new MokkaCaloDigi ; }
77 
78 
79  MokkaCaloDigi() ;
80 
84  virtual void init() ;
85 
88  virtual void processRunHeader( LCRunHeader* run ) ;
89 
92  virtual void processEvent( LCEvent * evt ) ;
93 
94 
95  virtual void check( LCEvent * evt ) ;
96 
97 
100  virtual void end() ;
101 
102 
103  MyHit * ProcessHitInBarrel(SimCalorimeterHit * hit);
104  MyHit * ProcessHitInEndcap(SimCalorimeterHit * hit);
105 
106  protected:
107 
108  std::vector<std::string> _ecalCollections ;
109  std::vector<std::string> _hcalCollections ;
110  std::string _newCollNameHCAL;
111  std::string _newCollNameECAL;
112  std::string _relationCollName;
113  int _nRun ;
114  int _nEvt ;
115 
116  float _thresholdEcal;
117  float _thresholdHcal;
118 
119  int _digitalEcal;
120  int _digitalHcal;
121 
122  std::vector<int> _ecalLayers;
123  std::vector<int> _hcalLayers;
124  std::vector<float> _calibrCoeffEcal;
125  std::vector<float> _calibrCoeffHcal;
126  float * _endBarrelChamberLength;
127  float * _barrelLateralWidth;
128  float * _barrelOffsetMaxX;
129  float * _endBarrelOffsetMaxZ;
130  float _regularBarrelOffsetMaxZ;
131  float _lateralPlateThickness;
132  float _modulesGap;
133  float _innerHcalRadius;
134  int _numberOfHcalLayers;
135  int _nStaves;
136  int _nModules;
137  int _cellScaleX;
138  int _cellScaleZ;
139  float _newCellSizeX;
140  float _newCellSizeZ;
141  float _hcalLayerThickness;
142  float _hcalAbsorberThickness;
143  float _hcalSensitiveThickness;
144  float _virtualCellSizeX;
145  float _virtualCellSizeZ;
146  float _regularBarrelModuleLength;
147  float _regularBarrelChamberLength;
148  float _deltaPhi;
149  std::vector< std::vector<MyHit*> > _calorimeterHitVec;
150  LCCollectionVec * _relationCollection;
151  int _startIEndcap;
152  int _startJEndcap;
153  float _startXEndcap;
154  float _startZEndcap;
155 
156 
157 
158 } ;
159 
160 #endif
161 
162 
163 
=== MokkaCaloDigi Processor === Calorimeter digitizer Processor for LCIO files produced by Mokka...
Definition: MokkaCaloDigi.h:66
Definition: MokkaCaloDigi.h:72