SVertex.hh
Go to the documentation of this file.00001
00002 #ifndef RIVET_SVertex_HH
00003 #define RIVET_SVertex_HH
00004
00005 #include "Rivet/Rivet.hh"
00006 #include "Rivet/Projection.hh"
00007 #include "Rivet/Projections/PVertex.hh"
00008 #include "Rivet/Projections/ChargedFinalState.hh"
00009 #include "Rivet/Event.hh"
00010
00011 namespace Rivet {
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040 class SVertex : public Projection {
00041 public:
00042
00043
00044
00045
00046
00047 SVertex(const ChargedFinalState& chfs,
00048 const vector<FourMomentum>& jetaxes, double deltaR,
00049 double detEta, double IPres, double DLS, double DLSres=0.0)
00050 : _jetaxes(jetaxes), _deltaR(deltaR),
00051 _detEta(detEta), _IPres(IPres), _DLS(DLS),
00052 _DLSres(DLSres)
00053 {
00054 setName("SVertex");
00055 addProjection(PVertex(), "PV");
00056 addProjection(chfs, "FS");
00057 if (_DLSres == 0.0) {
00058 _DLSres = _IPres;
00059 }
00060 }
00061
00062
00063 virtual const Projection* clone() const {
00064 return new SVertex(*this);
00065 }
00066
00067
00068
00069 public:
00070
00071 const vector<FourMomentum>& getTaggedJets() const {
00072 return _taggedjets;
00073 }
00074
00075 protected:
00076
00077
00078 void project(const Event& e);
00079
00080
00081 int compare(const Projection& p) const;
00082
00083 private:
00084
00085
00086 const vector<FourMomentum>& _jetaxes;
00087
00088
00089 double _deltaR;
00090
00091
00092
00093
00094 bool _applyVtxTrackCuts(const ParticleVector&, const Vector3&, FourMomentum);
00095
00096
00097 double _detEta;
00098
00099
00100 double _IPres;
00101
00102
00103 double _DLS;
00104
00105
00106 double _DLSres;
00107
00108
00109 vector<FourMomentum> _taggedjets;
00110 };
00111
00112 }
00113
00114 #endif