16 #include "RecoVertex/MultiVertexFit/interface/DebuggingHarvester.h"
22 vector<reco::TransientTrack>
convert(
const vector<const reco::TransientTrack*>& ptrs) {
23 vector<reco::TransientTrack>
ret;
24 for (vector<const reco::TransientTrack*>::const_iterator
i = ptrs.begin();
i != ptrs.end(); ++
i) {
45 for (vector<reco::TransientTrack>::const_iterator
i = trks.begin();
i != trks.end(); ++
i) {
57 GlobalPoint computeJetOrigin(
const vector<reco::TransientTrack>& trks) {
59 vector<ModeFinder3d::PointAndDistance>
input;
60 for (vector<reco::TransientTrack>::const_iterator
i = trks.begin();
i != trks.end(); ++
i) {
66 GlobalVector computeJetDirection(
const vector<reco::TransientTrack>& trks) {
68 vector<ModeFinder3d::PointAndDistance>
input;
69 for (vector<reco::TransientTrack>::const_iterator
i = trks.begin();
i != trks.end(); ++
i) {
92 DebuggingHarvester(
"out.txt").save(ret,
"p<sub>tot</sub>");
97 vector<Cluster1D<reco::TransientTrack> > computeIPs(
const vector<reco::TransientTrack>& trks) {
101 vector<Cluster1D<reco::TransientTrack> >
pts;
102 for (vector<reco::TransientTrack>::const_iterator
i = trks.begin();
i != trks.end(); ++
i) {
105 pair<GlobalPoint, GlobalPoint>
pt = ttmd.
points();
106 double d = (pt.first - pt.second).
mag();
107 double w = 1. / (0.002 +
d);
108 double s = (pt.first - axis.position()).
mag();
110 vector<const reco::TransientTrack*> trk;
111 trk.push_back(&(*
i));
135 bool ascending =
false,
136 bool kalmanfit =
false) {
138 vector<const reco::TransientTrack*> trkptrs = src.
tracks();
139 vector<reco::TransientTrack> trks =
convert(trkptrs);
152 w =
pow((
float)0.5, (
int)(trks.size() - 1));
155 for (vector<reco::TransientTrack>::const_iterator
i = trks.begin();
i != trks.end(); ++
i) {
184 vector<Cluster1D<reco::TransientTrack> > ips = computeIPs(trks);
191 pair<vector<Cluster1D<reco::TransientTrack> >, vector<const reco::TransientTrack*> > res;
196 map<string, harvest::MultiType> attrs;
197 attrs[
"point:mag"] = 0.75;
198 attrs[
"point:color"] =
"blue";
199 attrs[
"point:name"] =
"mode";
200 DebuggingHarvester(
"out.txt").save(res.first, jet, attrs,
"mode");
203 vector<TransientVertex>
ret;
205 ret.push_back(pseudoVertexFit(*
i,
206 i != res.first.begin(),
tuple ret
prodAgent to be discontinued
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
std::map< reco::TransientTrack, float > TransientTrackToFloatMap
Global3DPoint GlobalPoint
std::vector< T > toVector(pybind11::list &l)
static std::string const input
bool calculate(const TrajectoryStateOnSurface &sta, const TrajectoryStateOnSurface &stb) override
CachingVertex< 5 > vertex(const std::vector< reco::TransientTrack > &tracks) const override
static const double pts[33]
std::vector< reco::TransientTrack > const & originalTracks() const
GlobalPoint position() const
GlobalVector momentum() const
std::pair< GlobalPoint, GlobalPoint > points() const override
std::vector< const T * > tracks() const
GlobalPoint position() const
Basic3DVector & operator/=(T t)
Scaling by a scalar value (division)
std::pair< GlobalPoint, float > PointAndDistance
MultiVertexBSeeder * clone() const override
MultiVertexBSeeder(double nsigma=50.)
std::vector< TransientVertex > vertices(const std::vector< reco::TransientTrack > &) const override
TransientTrackToFloatMap weightMap() const
Power< A, B >::type pow(const A &a, const B &b)
Basic3DVector & operator+=(const Basic3DVector< U > &p)
Global3DVector GlobalVector