MarlinTrkProcessors  2.4.1
SimpleDiscDigiProcessor.h
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 #ifndef SimpleDiscDigiProcessor_h
3 #define SimpleDiscDigiProcessor_h 1
4 
5 #include "marlin/Processor.h"
6 #include "lcio.h"
7 #include <string>
8 #include <vector>
9 #include <gsl/gsl_rng.h>
10 
11 using namespace lcio ;
12 using namespace marlin ;
13 
14 class FTDLayer ;
15 
16 namespace EVENT{
17  class SimTrackerHit;
18 }
19 
58 class SimpleDiscDigiProcessor : public Processor {
59 
60 public:
61 
62  virtual Processor* newProcessor() { return new SimpleDiscDigiProcessor ; }
63 
64 
66 
70  virtual void init() ;
71 
74  virtual void processRunHeader( LCRunHeader* run ) ;
75 
78  virtual void processEvent( LCEvent * evt ) ;
79 
80 
81  virtual void check( LCEvent * evt ) ;
82 
83 
86  virtual void end() ;
87 
88 
89 protected:
90 
91  void process_hits_loi( LCEvent* evt, LCCollection* STHcol );
92 
93  void process_hits_new( LCEvent* evt, LCCollection* STHcol );
94 
97  std::string _inColName ;
98  std::string _outColName ;
99  std::string _outRelColName ;
100 
101  int _sub_det_id ;
102 
103  int _nRun ;
104  int _nEvt ;
105 
106  bool _SimHits_encoded_with_cellID;
107 
108  bool _use_FTDLayerLayout_from_GEAR;
109 
110  float _pointReso;
111  bool _keepHitsFromDeltas;
112 
113  std::vector< double > _FTDZCoordinate;
114  std::vector< double > _diskInnerRadius;
115  std::vector< double > _diskOuterRadius;
116 
117  bool hasCorrectZPos ( SimTrackerHit* hit );
118 
119  int getPetalNumber ( int layer , double x , double y );
120  int getSensorNumber ( int layer , double x , double y );
121 
122  int _petalsPerDisk;
123  int _sensorsPerPetal;
124 
125  // gsl random number generator
126  gsl_rng * r ;
127 
128 
129 } ;
130 
131 #endif
132 
133 
134 
======= SimpleDiscDigiProcessor ========== Produces a TrackerHit collection from SimTrackerHit coll...
Definition: SimpleDiscDigiProcessor.h:58
std::string _inColName
Input collection name.
Definition: SimpleDiscDigiProcessor.h:97