All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
VTXBgClusters.h
Go to the documentation of this file.
1 #ifndef VTXBgClusters_h
2 #define VTXBgClusters_h 1
3 
4 #include "marlin/Processor.h"
5 #include "lcio.h"
6 #include <string>
7 #include <vector>
8 
9 #ifdef MARLIN_USE_AIDA
10 #include <AIDA/AIDA.h>
11 typedef std::vector< AIDA::IHistogram1D* > Hist1DVec ;
12 typedef std::vector< AIDA::IHistogram2D* > Hist2DVec ;
13 #endif
14 
15 //#include <gsl/gsl_rng.h>
16 // // STUFF needed for GEAR
17 // #include <marlin/Global.h>
18 // #include <gear/GEAR.h>
19 // #include <gear/VXDParameters.h>
20 // #include <gear/VXDLayerLayout.h>
21 
22 
23 using namespace lcio ;
24 using namespace marlin ;
25 
26 class VXDGeometry ;
27 /**
28 \addtogroup TrackDigi TrackDigi
29 @{
30 
31 \addtogroup VTXBgClusters VTXBgClusters
32 @{
33 Add Cluster parameters to VXD hits, according to projection of path length into the ladder.
34  * ======= VTXBgClusters ========== <br>
35  * Add Cluster parameters to VXD hits, according to projection of path length into the ladder...
36  * ...
37  *
38  * @param RemoveDrays When this flag is set to 1 hits produced by delta-electrons are removed
39  * from output collections <br>
40  * (default value 0) <br>
41  * @param MomentumCutForDRays The upper cut on delta-electron momentum (in MeV) <br>
42  * (default value 10) <br>
43  * @param Debug When this flag is set to one, debugging regime is enabled with a lot of printouts <br>
44  * (default value is 0) <br>
45  * <br>
46  *
47  *
48  * @author R. de Masi, IReS
49  */
50 class VTXBgClusters : public Processor {
51 
52  public:
53 
54  VTXBgClusters(const VTXBgClusters&) = delete;
55  VTXBgClusters& operator=(const VTXBgClusters&) = delete;
56 
57  virtual Processor* newProcessor() { return new VTXBgClusters ; }
58 
59 
60  VTXBgClusters() ;
61 
62  /** Called at the begin of the job before anything is read.
63  * Use to initialize the processor, e.g. book histograms.
64  */
65  virtual void init() ;
66 
67  /** Called for every run.
68  */
69  virtual void processRunHeader( LCRunHeader* run ) ;
70 
71  /** Called for every event - the working horse.
72  */
73  virtual void processEvent( LCEvent * evt ) ;
74 
75 
76  virtual void check( LCEvent * evt ) ;
77 
78 
79  /** Called after data processing for clean up.
80  */
81  virtual void end() ;
82 
83 
84 // // find phi of point in projection 2D, taken from gear::VXDParameters
85 // double getPhiPoint( gear::Vector3D p ) const ;
86 // // find phi in correct range, taken from gear::VXDParameters
87 // double correctPhiRange( double Phi ) const ;
88 
89 
90  protected:
91 
92  std::string _colNameVTX{};
93 // std::string _outColNameVTX ;
94 
95  int _nRun{};
96  int _nEvt{};
97  int _debug{};
98  int _mod{};
99  int _removeDRays{};
100 // float _pointResoRPhi,_pointResoRPhi_VTX;
101 // float _pointResoZ,_pointResoZ_VTX;
102  float _momCut{};
103  float _epi{}; //epitaxial thickness in unit of 50 um (standard thickness)
104  float _pitch[6]{}; //pitch in um
105  float _it[6]{}; //integration time in ns
106 
107  // gsl_rng * r ;
108  VXDGeometry* _vxdGeo{};
109 
110 #ifdef MARLIN_USE_AIDA
111  Hist1DVec _hist1DVec{};
112  Hist2DVec _hist2DVec{};
113 #endif
114 
115 } ;
116 /** @} @} */
117 #endif
======= VXDGeometry ========== Helper class for VXD geomtry transformations: from lab frame to ladd...
Definition: VXDGeometry.h:53
virtual Processor * newProcessor()
Definition: VTXBgClusters.h:57