MarlinTPC  1.2.0
TimePixZeroSuppressionProcessor.h
1 #ifndef TimePixZeroSuppressionProcessor_h
2 #define TimePixZeroSuppressionProcessor_h 1
3 
4 // C++
5 #include <string>
6 
7 // LCIO
8 #include "lcio.h"
9 
10 // Marlin
11 #include "marlin/Processor.h"
12 
13 namespace AIDA
14 {
15 class IHistogram2D;
16 }
17 
18 namespace marlintpc
19 {
20 
21 /* the following comment is tranfered to doxygen documentation
22  * which begins with a second asterix, or in case of on line comment an extra third slash
23  */
48 class TimePixZeroSuppressionProcessor : public marlin::Processor
49 {
50 
51  public:
52 
53  /* This method will be called by the marlin package
54  * It returns a processor of the currend type (here TimePixZeroSuppressionProcessor)
55  */
56  virtual Processor* newProcessor()
57  {
59  }
60 
61  /* the default constructor
62  * here the processor parameters are registered to the marlin package
63  * other initialisation should be placed in the init method
64  */
66 
67  /* Called at the beginning of the job before anything is read.
68  * Use to initialize the processor, e.g. book histograms
69  */
70  virtual void init() ;
71 
72  /* Called for every run.
73  * in this processor it is not used
74  */
75  virtual void processRunHeader(lcio::LCRunHeader* run) ;
76 
77  /* Called for every event - the working horse.
78  * Here the real conversion take place
79  */
80  virtual void processEvent(lcio::LCEvent * evt) ;
81 
82  /* This method is only called if the check flag is set (default) in the main processor
83  * (where the input files are given)
84  * It should be used to create check plots which are not needed in a complete analysis
85  * (where normaly the check flag is deactivated)
86  */
87  virtual void check(lcio::LCEvent * evt) ;
88 
89 
90  /* Called after data processing for clean up.
91  * e.g. saving control histogramms, delete created objects
92  * (which are not stored in a collection/event), etc.
93  */
94  virtual void end() ;
95 
96 
97  protected:
98 
99  /* normally the doxygen documentation is palced before the method/variable
100  * but for one line comments in case of variables it may be more convenied for you
101  * to place it after the variable. In this case you use an arrow to tell doxygen
102  * to which variable the commet belongs to.
103  */
104 
105  std::string _inputColName ;
106  std::string _outputColName ;
107  double _totThreshold ;
108  int _nColumn ;
109  int _nRow ;
110 
115 
121 
122  int _nRun ;
123  int _nEvt ;
124 
125  // this is an int instead of a boolean, because the processor parameter cannot be a boolean
127 
128  private:
129  AIDA::IHistogram2D* histoCluster;
130  AIDA::IHistogram2D* histoClusterRaw;
131 
132 } ;
133 
134 }
135 
136 #endif
137 
138 
139 
int _skipEmptyEvents
Flag whether to throw SkipEventException for epmty events.
Definition: TimePixZeroSuppressionProcessor.h:126
int _nColumn
-Number of columns of the chip
Definition: TimePixZeroSuppressionProcessor.h:108
int _nRow
-Number of rows of the chip
Definition: TimePixZeroSuppressionProcessor.h:109
double _totThreshold
-Threshold on the TOT value of a single pixel
Definition: TimePixZeroSuppressionProcessor.h:107
zero suppression Processor of the MarlinTPC package .
Definition: TimePixZeroSuppressionProcessor.h:48
bool isFirstCollection
is true till the first output collection is wirten to an event used to to store parameters only in th...
Definition: TimePixZeroSuppressionProcessor.h:120
std::string _outputColName
Definition: TimePixZeroSuppressionProcessor.h:106
int _outputIsTransient
give the status which is set to the transient flag of the output collection it is an int instead of a...
Definition: TimePixZeroSuppressionProcessor.h:114
int _nRun
Definition: TimePixZeroSuppressionProcessor.h:122
std::string _inputColName
Definition: TimePixZeroSuppressionProcessor.h:105
int _nEvt
Definition: TimePixZeroSuppressionProcessor.h:123