MarlinTPC  1.2.0
CloudToSimTrackerHitProcessor.h
1 #ifndef CLOUDTOSIMTRACKERHITPROCESSOR_H
2 #define CLOUDTOSIMTRACKERHITPROCESSOR_H
3 
4 #include <marlin/Processor.h>
5 #include <lcio.h>
6 #include <string>
7 
8 //GSL
9 #include <gsl/gsl_rng.h>
10 #include <gsl/gsl_randist.h>
11 
12 namespace marlintpc
13 {
30 class CloudToSimTrackerHitProcessor : public marlin::Processor
31 {
32  public:
33 
34  virtual Processor* newProcessor() { return new CloudToSimTrackerHitProcessor; }
35 
37 
38  virtual void init();
39 
40  virtual void processRunHeader(lcio::LCRunHeader* run);
41 
42  virtual void processEvent(lcio::LCEvent* evt);
43 
44  virtual void check(lcio::LCEvent* evt);
45 
46  virtual void end();
47 
48 
49  protected:
50  /* the place for protected and private member data and functions */
51  std::string _inputColName;
52 
53  std::string _outputColName;
54 
56 
58 
59  gsl_rng *_r;
60 
61  double _vdrift;
62 
63  void DistributeElectrons(double* pos, double &time, double difftrans, double difflong); //< Smear a point according to the given diffusion
64 };
65 } // namespace marlintpc
66 #endif // CLOUDTOSIMTRACKERHITPROCESSOR_H
std::string _inputColName
Name of the input collection.
Definition: CloudToSimTrackerHitProcessor.h:51
bool _singleElectrons
If true for n electrons in the cloud n SimTrackerHits with EDep=2.6e-08 are produced.
Definition: CloudToSimTrackerHitProcessor.h:55
CloudToSimTrackerHitProcessor: This processor takes as input a collection of TPCElectronClouds and re...
Definition: CloudToSimTrackerHitProcessor.h:30
std::string _outputColName
Name of the output collection.
Definition: CloudToSimTrackerHitProcessor.h:53
double _ionisationEnergy
The ionisation energy of the drift gas.
Definition: CloudToSimTrackerHitProcessor.h:57
gsl_rng * _r
Random generator for landau and gaussian.
Definition: CloudToSimTrackerHitProcessor.h:59
double _vdrift
Drift velocity used to calculate the time step in DistibuteElectrons.
Definition: CloudToSimTrackerHitProcessor.h:61