1 #include <algo/inc/zvkin.h>
3 #include <zvtop/include/vertexfinderghost.h>
4 #include <zvtop/include/candidatevertex.h>
5 #include <zvtop/include/interactionpoint.h>
6 #include <inc/vertex.h>
9 #include <inc/decaychain.h>
10 #include <inc/trackstate.h>
11 #include <inc/track.h>
12 #include <util/inc/memorymanager.h>
13 #include <util/inc/vector3.h>
14 #include <util/inc/matrix.h>
15 #include <util/inc/string.h>
21 using namespace vertex_lcfi::ZVTOP;
22 using namespace vertex_lcfi::util;
40 std::vector<string> paramNames;
41 paramNames.push_back(
"UseEventIP");
42 paramNames.push_back(
"MinimumProbability");
43 paramNames.push_back(
"InitialGhostWidth");
44 paramNames.push_back(
"MaxChi2Allowed");
45 paramNames.push_back(
"AutoJetAxis");
46 paramNames.push_back(
"JetAxisX");
47 paramNames.push_back(
"JetAxisY");
48 paramNames.push_back(
"JetAxisZ");
54 std::vector<string> paramValues;
55 paramValues.push_back(makeString(_UseEventIP));
56 paramValues.push_back(makeString(_MinimumProbability));
57 paramValues.push_back(makeString(_InitialGhostWidth));
58 paramValues.push_back(makeString(_MaxChi2Allowed));
59 paramValues.push_back(makeString(_AutoJetAxis));
60 paramValues.push_back(makeString(_JetAxis.x()));
61 paramValues.push_back(makeString(_JetAxis.y()));
62 paramValues.push_back(makeString(_JetAxis.z()));
68 if (Parameter ==
"AutoJetAxis")
82 if (Parameter ==
"UseEventIP")
96 this->badParameter(Parameter);
101 if (Parameter ==
"MinimumProbability")
103 _MinimumProbability = Value;
106 if (Parameter ==
"InitialGhostWidth")
108 _InitialGhostWidth = Value;
111 if (Parameter ==
"MaxChi2Allowed")
113 _MaxChi2Allowed = Value;
116 if (Parameter ==
"JetAxisX")
118 _JetAxis.x() = Value;
121 if (Parameter ==
"JetAxisY")
123 _JetAxis.y() = Value;
126 if (Parameter ==
"JetAxisZ")
128 _JetAxis.z() = Value;
131 this->badParameter(Parameter);
136 this->badParameter(Parameter);
143 if (_UseEventIP == 1)
152 double ie = 10.0/1000.0;
168 if (_AutoJetAxis == 1)
171 for (std::vector<Track*>::const_iterator iTrack = MyJet->
tracks().begin();
172 iTrack != MyJet->
tracks().end(); ++iTrack)
174 JetAxis=JetAxis.add((*iTrack)->momentum());
177 JetAxis = JetAxis.unit();
187 VFinder.seedDirection() = JetAxis;
188 VFinder.minimumProbability() = _MinimumProbability;
189 VFinder.initialGhostWidth() = _InitialGhostWidth;
190 VFinder.maxChi2Allowed() = _MaxChi2Allowed;
191 std::list<CandidateVertex*> CVResult = VFinder.findVertices();
192 Track* GhostTrack = VFinder.lastGhost();
194 std::vector<Vertex*> VResult;
195 for (std::list<CandidateVertex*>::iterator iCV = CVResult.begin();iCV != CVResult.end();++iCV)
198 if (!(*iCV)->interactionPoint())
204 std::vector<Track*> Tracks;
205 for (std::vector<TrackState*>::const_iterator iTrack = (*iCV)->trackStateList().begin();
206 iTrack != (*iCV)->trackStateList().end(); ++iTrack)
208 Tracks.push_back((*iTrack)->parentTrack());
211 MyVertex =
new Vertex(MyJet->
event(), Tracks, (*iCV)->interactionPoint()->position(), (*iCV)->interactionPoint()->errorMatrix(), (bool)(*iCV)->interactionPoint(),0,0);
216 VResult.push_back(MyVertex);
bool removeTrack(Track *RTrack)
Remove Track.
std::vector< string > parameterNames() const
Parameter Names.
const std::vector< Track * > & tracks() const
Tracks.
Interaction Point representation.
void setDoubleParameter(const string &Parameter, const double Value)
Set Double Parameter.
string name() const
Name.
Event * event() const
Event.
void setStringParameter(const string &Parameter, const string &Value)
Set String Parameter.
DecayChain * calculateFor(Jet *MyJet) const
Run the algorithm on a jet.
static MemoryManager< T > * Event()
Returns the Event duration singleton instance of the MemoryManager for type T.
ZVKIN()
Default Constructor.
Vertex Finding object - classic ZVTOP.
void setPointerParameter(const string &Parameter, void *Value)
Set Pointer Parameter.
std::vector< string > parameterValues() const
Parameter Values.
Unique Track representation.
const SymMatrix3x3 & interactionPointError() const
Interaction Point position error.
const Vector3 & interactionPoint() const
Interaction Point position.