All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
V0Finder.h
Go to the documentation of this file.
1 #ifndef V0Finder_H
2 #define V0Finder_H 1
3 
4 #include "marlin/Processor.h"
5 #include "lcio.h"
6 #include <string>
7 #include <vector>
8 #include "TrackPair.h"
9 
10 using namespace lcio ;
11 using namespace marlin ;
12 
13 /**
14 \addtogroup Tracking Tracking
15 @{
16 
17 \addtogroup V0Finder V0Finder
18 @{
19 V0Finder processor identify neutral vertices originating.
20 /** V0Finder Processor <br>
21  * V0Finder processor identify neutral vertices originating <br>
22  * from photon conversions and decays of K0S and Lamda0 <br>
23  * <h4>Input collections and prerequisites</h4>
24  * Processor requires collection of tracks. The name of the collection <br>
25  * is specified by the processor parameter "TrackCollection". <br>
26  * If no collection with the specified name exist in event <br>
27  * processor takes no action <br>
28  * <h4>Output</h4>
29  * Processor produces LCIO collections of the reconstructed particles, <br>
30  * and vertices, containing information on the reconstructed neutral vertices <br>
31  * Position of the vertex is accessed through the LCIO object VERTEX. <br>
32  * Four-vector of the vertex is stored in the object RECONSTRUCTEDPARTICLE <br>
33  * Type of the VERTEX is accessed through the method ReconstructedParticle::getType() <br>
34  * The convential codes are adopted to specify type of the neutral vertices <br>
35  * (22 - photon conversion, 310 - K0S, 3122 - Lamda0) <br>
36  * @param TrackCollection name of the input Track collection <br>
37  * (default value LDCTracks) <br>
38  * @param RecoParticleCollection name of the output collection of the ReconstructedParticles <br>
39  * (default value V0RecoParticles) <br>
40  * @param VertexCollection name of the output collection of Vertices <br>
41  * (default value V0Vertices) <br>
42  * @param CutOnRadius cut on the vertex radius vector. If vertex radius sqrt(x**2+y**2) <br>
43  * is less than cut value, the candidate vertex is discarded. In this case two tracks are assumed to <br>
44  * originate from the primary interaction vertex. <br>
45  * (default value 6.0 mm) <br>
46  * @param CutOnTrkDistance cut on the distance between tracks constituting neutral vertex <br>
47  * If the 3D distance between two tracks with opposite charge is less that cut value, <br>
48  * the two tracks are regarded as constituting neutral vertex <br>
49  * (default value 1.5 mm) <br>
50  * @param MassRangeGamma maximal allowed deviation in mass for gamma hypothesis <br>
51  * (default value 0.01 GeV) <br>
52  * @param MassRangeK0S maximal allowed deviation in mass for K0S hypothesis <br>
53  * (default value 0.01 GeV) <br>
54  * @param MassRangeL0 maximal allowed deviation in mass for L0 hypothesis <br>
55  * (default value 0.008 GeV) <br>
56  * @author A.Raspereza, DESY
57  * @version $Id$
58  */
59 class V0Finder : public Processor {
60 
61  public:
62 
63  virtual Processor* newProcessor() { return new V0Finder ; }
64 
65 
66  V0Finder() ;
67 
68  virtual void init() ;
69 
70  virtual void processRunHeader( LCRunHeader* run ) ;
71 
72  virtual void processEvent( LCEvent * evt ) ;
73 
74  virtual void check( LCEvent * evt ) ;
75 
76  virtual void end() ;
77 
78  protected:
79 
80  void Sorting( TrackPairVec & trkPairVec );
81  float Rmin( Track* track );
82 
83  int _nRun{};
84  int _nEvt{};
85 
86  std::string _trackColName{};
87  std::string _vertexColName{};
88  std::string _recoPartColName{};
89 
90  float _rVertCut{};
91  float _dVertCut{};
92 
93  float _bField{};
94 
95  float MASSProton{};
96  float MASSPion{};
97  float MASSLambda0{};
98  float MASSK0S{};
99  float MASSGamma{};
100 
101  float _deltaMassK0S{};
102  float _deltaMassL0{};
103  float _deltaMassGamma{};
104 
105  float _rxyCutGamma{};
106  float _rxyCutK0S{};
107  float _rxyCutLambda{};
108 
109  float _minTrackHitRatio{};
110 
111 } ;
112 /** @} @}*/
113 #endif