All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
TrackZVertexGrouping.h
Go to the documentation of this file.
1 #ifndef TrackZVertexGrouping_h
2 #define TrackZVertexGrouping_h 1
3 
4 #include "marlin/Processor.h"
5 #include "lcio.h"
6 #include <string>
7 #include <vector>
8 #include <gsl/gsl_rng.h>
9 
10 using namespace lcio ;
11 using namespace marlin ;
12 
13 
14 class TH1F ;
15 
16 /** Group Tracks into clusters with consistent z-positions of their vertex, based on the Z0 significance.
17  * Algorithm developed by S.Sasikumar, DESY.
18  *
19  *
20  * @author F.Gaede, DESY, September 2018
21  */
22 
23 class TrackZVertexGrouping : public Processor {
24 
25  public:
26 
27  virtual Processor* newProcessor() { return new TrackZVertexGrouping ; }
28 
30  TrackZVertexGrouping& operator=(const TrackZVertexGrouping&) = delete;
31 
33 
34  /** Called at the begin of the job before anything is read.
35  * Use to initialize the processor, e.g. book histograms.
36  */
37  virtual void init() ;
38 
39  /** Called for every run.
40  */
41  virtual void processRunHeader( LCRunHeader* run ) ;
42 
43  /** Called for every event - the working horse.
44  */
45  virtual void processEvent( LCEvent * evt ) ;
46 
47 
48  virtual void check( LCEvent * evt ) ;
49 
50 
51  /** Called after data processing for clean up.
52  */
53  virtual void end() ;
54 
55 
56  protected:
57 
58  /** Input collection name with Tracks
59  */
60  std::string _colNameTracks{};
61  std::string _colNameTrkGroupPFOs{};
62  std::string _colNameTrkGroupVertices{};
63 
64  float _z0SignificanceCut{};
65 
66  int _nRun{};
67  int _nEvt{};
68 
69  std::vector<TH1F*> _h{};
70 
71 } ;
72 
73 #endif
74 
75 
76 
Group Tracks into clusters with consistent z-positions of their vertex, based on the Z0 significance...
virtual Processor * newProcessor()