MarlinTPC  1.2.0
ElectronCloudChargeDepositProcessor.h
1 #ifndef ELECTRONCLOUDCHARGEDEPOSITPROCESSOR_H
2 #define ELECTRONCLOUDCHARGEDEPOSITPROCESSOR_H 1
3 
4 // Marlin
5 #include <marlin/Processor.h>
6 
7 namespace EVENT {
8 
9  class LCRunHeader;
10  class LCEvent;
11 }
12 
13 namespace marlintpc {
14 
19 class ElectronCloudChargeDepositProcessor : public marlin::Processor {
20 
21 public:
25 
29 
33  virtual Processor* newProcessor() { return new ElectronCloudChargeDepositProcessor() ; }
34 
39  virtual void init();
40 
44  virtual void processRunHeader(lcio::LCRunHeader* run );
45 
49  virtual void processEvent(lcio::LCEvent * evt );
50 
54  virtual void check(lcio::LCEvent * evt );
55 
59  virtual void end();
60 
63  struct ChargeSignalTag {
64 
65  bool operator < ( const ChargeSignalTag& tag ) const {
66 
67  if(tag.cloud_id != cloud_id) {
68 
69  return tag.cloud_id < cloud_id;
70  }
71  else if( tag.pad_id != pad_id ) {
72 
73  return tag.pad_id < pad_id;
74  }
75  else {
76 
77  return tag.module_id < module_id;
78  }
79  }
80  int cloud_id;
81  int pad_id;
82  int module_id;
83  };
84 
85 protected:
86 
87 private:
88 
92  std::string _input_collection_name;
93 
97  std::string _output_collection_name;
98 
99 };
100 
101 } // namespace marlintpc
102 
103 #endif // ELECTRONCLOUDCHARGEDEPOSITPROCESSOR_H
virtual void init()
Called at the begin of the job before anything is read.
Definition: ElectronCloudChargeDepositProcessor.cc:195
used to uniquely identify a charge deposited by a track (important for overlaying tracks) ...
Definition: ElectronCloudChargeDepositProcessor.h:63
~ElectronCloudChargeDepositProcessor()
destructor
Definition: ElectronCloudChargeDepositProcessor.cc:63
virtual void end()
Called after data processing for clean up.
Definition: ElectronCloudChargeDepositProcessor.cc:207
ElectronCloudChargeDepositProcessor : This processor takes clouds of electrons and parameterizes the ...
Definition: ElectronCloudChargeDepositProcessor.h:19
ElectronCloudChargeDepositProcessor()
constructor
Definition: ElectronCloudChargeDepositProcessor.cc:42
virtual void processEvent(lcio::LCEvent *evt)
Called for every event - the working horse.
Definition: ElectronCloudChargeDepositProcessor.cc:79
virtual void check(lcio::LCEvent *evt)
Called after the event has been processed.
Definition: ElectronCloudChargeDepositProcessor.cc:202
virtual Processor * newProcessor()
used by Marlin to create a new processor
Definition: ElectronCloudChargeDepositProcessor.h:33
virtual void processRunHeader(lcio::LCRunHeader *run)
Called for every run.
Definition: ElectronCloudChargeDepositProcessor.cc:66