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(),