All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
BruteForceEcalGapFiller.h
Go to the documentation of this file.
1 #ifndef BRUTEFORCEECAL_GAPFILLER_H
2 #define BRUTEFORCEECAL_GAPFILLER_H 1
3 
4 #include "marlin/Processor.h"
5 #include <IMPL/LCFlagImpl.h>
6 #include <EVENT/CalorimeterHit.h>
7 
8 #include <IMPL/LCCollectionVec.h>
9 
10 #include "lcio.h"
11 #include <string>
12 #include <vector>
13 
14 #include "DDRec/DetectorData.h"
15 
16 
17 using namespace lcio ;
18 using namespace marlin ;
19 
20 /**
21 \addtogroup CaloDigi CaloDigi
22 @{
23 
24 \addtogroup BruteForceEcalGapFiller BruteForceEcalGapFiller
25 @{
26 
27 */
28 
29 
30 class BruteForceEcalGapFiller : public Processor {
31 
32  public:
33 
34  virtual Processor* newProcessor() { return new BruteForceEcalGapFiller ; }
35 
36 
38  virtual void init() ;
39  virtual void processRunHeader( LCRunHeader* /*run*/ ) {}
40  virtual void processEvent( LCEvent * evt ) ;
41  virtual void check( LCEvent * /*evt*/ ) {}
42  virtual void end() ;
43 
45  BruteForceEcalGapFiller& operator=(const BruteForceEcalGapFiller&) = delete;
46 
47  protected:
48 
49  enum {MAXMODULE=10, MAXSTAVE=15, MAXLAYER=50};
50  std::vector < CalorimeterHit* > hitsByLayerModuleStave[MAXLAYER][MAXSTAVE][MAXMODULE];
51 
52  std::string _inputHitCollection{};
53  std::string _outputHitCollection{};
54 
55  std::string _cellIDLayerString{};
56  std::string _cellIDModuleString{};
57  std::string _cellIDStaveString{};
58 
59  bool _applyInterModuleCor{};
60 
61  float _interModuleNonlinearFactor{};
62  float _intraModuleNonlinearFactor{};
63 
64  float _interModuleFactor{};
65  float _intraModuleFactor{};
66 
67  LCFlagImpl _flag{};
68 
69  enum {ECALENDCAP, ECALBARREL};
70 
71  int _currentLayout{};
72 
73  float _interModuleDist{};
74 
75  dd4hep::rec::LayeredCalorimeterData* _caloGeomData{};
76 
77  void getGeometryData(const int ihitType);
78 
79  void addIntraModuleGapHits( LCCollectionVec* newcol );
80  void addInterModuleGapHits( LCCollectionVec* newcol );
81 
82 } ;
83 
84 /** @} @}*/
85 
86 #endif
virtual void check(LCEvent *)
virtual void processRunHeader(LCRunHeader *)
virtual Processor * newProcessor()
std::vector< LCCollection * > LCCollectionVec
Definition: SiStripClus.h:55