MarlinTPC  1.2.0
InhEFieldCalculationProcessor.h
1 #ifndef Processor_h
2 #define InhEFieldCalculationProcessor_h 1
3 
4 
5 //LCIO
6 #include "lcio.h"
7 
8 //MARLIN
9 #include "marlin/Processor.h"
10 
11 //C++
12 #include "string"
13 
14 //GEAR
15 #include "gearimpl/RectangularPadRowLayout.h"
16 #include "gearimpl/FixedPadSizeDiskLayout.h"
17 
18 //MARLINTPC
19 #include "EFieldVector.h"
20 
21 namespace marlintpc
22 {
23 
24  class InhEFieldCalculationProcessor : public marlin::Processor
25  {
26 
27  public:
28 
29  virtual Processor* newProcessor()
30  {
32  }
33 
34 
36  virtual ~InhEFieldCalculationProcessor() {}
37 
41  virtual void init() ;
42 
45  virtual void processRunHeader(lcio::LCRunHeader* run) ;
46 
49  virtual void processEvent(lcio::LCEvent * evt) ;
50 
51 
52  virtual void check(lcio::LCEvent * evt) ;
53 
54 
57  virtual void end() ;
58 
59 
60  marlintpc::EFieldVector* calculateEField(int x, int y, int z, LCCollection* ions);
61 
62 
63  protected:
64 
65  // Input/output collection names
66  std::string _inputCollectionName;
67  std::string _outputCollectionName;
68 
69  // Input parameters
70  int _transient;
71  int _xBins, _yBins, _zBins;
72 
73  double _xBinLength, _yBinLength, _zBinLength;
74 
75  gear::PadRowLayout2D const* _padLayout;
76  gear::RectangularPadRowLayout const* _rectPL;
77  gear::FixedPadSizeDiskLayout const* _circPL;
78 
79  };
80 }
81 #endif
virtual void processEvent(lcio::LCEvent *evt)
Called for every event - the working horse.
Definition: InhEFieldCalculationProcessor.cc:135
marlintpc::EFieldVector * calculateEField(int x, int y, int z, LCCollection *ions)
Calculates the EField in the TPC at the given grid point in units of V/cm.
Definition: InhEFieldCalculationProcessor.cc:200
virtual void end()
Called after data processing for clean-up.
Definition: InhEFieldCalculationProcessor.cc:192
virtual void processRunHeader(lcio::LCRunHeader *run)
Called for every run.
Definition: InhEFieldCalculationProcessor.cc:119
Definition: InhEFieldCalculationProcessor.h:24
virtual void init()
Called at the begin of the job before anything is read.
Definition: InhEFieldCalculationProcessor.cc:81
Definition: EFieldVector.h:19