LCFIPlus  0.6.5
LcfiInterface.h
Go to the documentation of this file.
1 #ifndef LcfiInterface_h
2 #define LcfiInterface_h 1
3 
4 #include <inc/track.h>
5 #include <inc/trackstate.h>
6 #include <inc/event.h>
7 #include <inc/vertex.h>
8 #include <util/inc/memorymanager.h>
9 #include <inc/decaychain.h>
10 #include <algorithm>
11 
12 #include <algo/inc/pereventipfitter.h>
13 #include <algo/inc/zvres.h>
14 
15 #include "JetFinder.h"
16 #include "TrackSelector.h"
17 
18 using namespace std;
19 
20 namespace lcfiplus {
23  // algorithm config
24  float TwoProngCut;
25  float TrackTrimCut;
26  float ResolverCut;
27  SecondaryVertexConfig() : TwoProngCut(10.), TrackTrimCut(10.), ResolverCut(0.6) {}
28 };
29 
30 class LcfiInstance {
31  private:
32  LcfiInstance();
33  ~LcfiInstance();
34 
35  static LcfiInstance _instance;
36 
37  public:
39  return _instance;
40  };
41  const vertex_lcfi::PerEventIPFitter* getIpFitter();
42  vertex_lcfi::ZVRES* getZVRES();
43 
44  private:
45  vertex_lcfi::PerEventIPFitter* _ipFitter;
46  vertex_lcfi::ZVRES* _zvres;
47 };
48 
50  public:
51  template<class Iterator> friend class VertexFitterLCFI;
52 
53  LcfiInterface(const Event* event = NULL, const Vertex* primaryVertex=0);
54  ~LcfiInterface();
55 
57  vector<Vertex*> findSecondaryVertices(const Jet* jet, const SecondaryVertexConfig& cfg);
58  //void probMap( map<Track*,float>& probMap );
59  vector<Vertex*> forceZvtop(const Jet& jet);
60 
61  double getChi2TrackVtx(const Vertex* vtx, const Track* trk) const;
62 // bool passesCut(const Track* trk, const SecondaryVertexConfig& cfg);
63  double vertexMassPtCorrection( const Vertex* secondary, const Vertex* primary, const TVector3& momentum, float sigmax ) const;
64  bool debug;
65 
66  private:
67  vertex_lcfi::Event* _event;
68  vertex_lcfi::Vertex* _primaryVertex;
69 
70  vertex_lcfi::Event* lcfiEvent(const Event* event, vertex_lcfi::Vertex* ipVertex=0) const;
71  vertex_lcfi::Track* lcfiTrack(vertex_lcfi::Event* MyEvent, const Track* track) const;
72  vertex_lcfi::Vertex* lcfiVertex(const Vertex* flavtagVertex, bool isPrimary=false) const;
73  vertex_lcfi::Track* lcfiTrack(const Track* track) const {
74  return lcfiTrack(_event, track);
75  }
76  Vertex* flavtagVertex(vertex_lcfi::Vertex* MyLCFIVertex) const;
77  vector<Vertex*> flavtagVertices(vertex_lcfi::DecayChain* chain) const;
78 
79 };
80 
81 }
82 
83 #endif
Definition: lcfiplus.h:771
float ResolverCut
Definition: LcfiInterface.h:26
float TrackTrimCut
Definition: LcfiInterface.h:25
static LcfiInstance & getInstance()
Definition: LcfiInterface.h:38
Definition: lcfiplus.h:384
bool debug
Definition: LcfiInterface.h:64
Definition: LcfiInterface.h:49
TrackSelectorConfig TrackQualityCuts
Definition: LcfiInterface.h:22
lcfiplus::Vertex * findPrimaryVertex(TrackVec &tracks, double chi2=9.0, bool beamspotConstraint=true, bool smearBeamspot=true)
Definition: VertexFinderTearDown.cc:48
Definition: LcfiInterface.h:21
Definition: VertexFitterLCFI.h:19
Definition: lcfiplus.h:980
float TwoProngCut
Definition: LcfiInterface.h:24
Definition: lcfiplus.h:291
SecondaryVertexConfig()
Definition: LcfiInterface.h:27
Definition: TrackSelector.h:15
Definition: LcfiInterface.h:30