"MarlinReco"  1.16.0
NewLDCCaloDigi.h
1 #ifndef DIGITIZER_NEWLDCCALODIGI_H
2 #define DIGITIZER_NEWLDCCALODIGI_H 1
3 
4 #include "marlin/Processor.h"
5 #include <IMPL/CalorimeterHitImpl.h>
6 #include "lcio.h"
7 #include <string>
8 #include <vector>
9 
10 using namespace lcio ;
11 using namespace marlin ;
12 
13 const int MAX_LAYERS = 200;
14 const int MAX_STAVES = 16;
15 
68 class NewLDCCaloDigi : public Processor {
69 
70  public:
71 
72  virtual Processor* newProcessor() { return new NewLDCCaloDigi ; }
73 
74 
75  NewLDCCaloDigi() ;
76 
77  virtual void init() ;
78 
79  virtual void processRunHeader( LCRunHeader* run ) ;
80 
81  virtual void processEvent( LCEvent * evt ) ;
82 
83  virtual void check( LCEvent * evt ) ;
84 
85  virtual void end() ;
86 
87  virtual void fillECALGaps() ;
88 
89 
90  protected:
91 
92  int _nRun ;
93  int _nEvt ;
94 
95  std::vector<std::string> _ecalCollections;
96  std::vector<std::string> _hcalCollections;
97 
98 
99  std::string _outputEcalCollection0;
100  std::string _outputEcalCollection1;
101  std::string _outputEcalCollection2;
102  std::string _outputHcalCollection0;
103  std::string _outputHcalCollection1;
104  std::string _outputHcalCollection2;
105  std::vector<std::string> _outputEcalCollections;
106  std::vector<std::string> _outputHcalCollections;
107  std::string _outputRelCollection;
108 
109  float _thresholdEcal;
110  std::vector<float> _thresholdHcal;
111 
112  int _digitalEcal;
113  int _digitalHcal;
114 
115  std::vector<float> _calibrCoeffEcal;
116  std::vector<float> _calibrCoeffHcal;
117 
118  std::vector<int> _ecalLayers;
119  std::vector<int> _hcalLayers;
120 
121  int _ecalGapCorrection;
122  float _ecalGapCorrectionFactor;
123  float _ecalModuleGapCorrectionFactor;
124  float _ecalEndcapCorrectionFactor;
125  float _hcalEndcapCorrectionFactor;
126 
127 
128  std::string _cellIDLayerString ;
129  std::string _cellIDModuleString ;
130  std::string _cellIDStaveString ;
131 
132 
133  std::vector<CalorimeterHitImpl*> _calHitsByStaveLayer[MAX_STAVES][MAX_LAYERS];
134  std::vector<int> _calHitsByStaveLayerModule[MAX_STAVES][MAX_LAYERS];
135 
136  float _zOfEcalEndcap;
137  float _barrelPixelSizeT[MAX_LAYERS];
138  float _barrelPixelSizeZ[MAX_LAYERS];
139  float _endcapPixelSizeX[MAX_LAYERS];
140  float _endcapPixelSizeY[MAX_LAYERS];
141  float _barrelStaveDir[MAX_STAVES][2];
142 
143 
144 } ;
145 
146 #endif
147 
148 
149 
=== NewLDCCaloDigi Processor === Simple calorimeter digitizer Processor.
Definition: NewLDCCaloDigi.h:68