1 #include <algo/inc/zvres.h>
3 #include <zvtop/include/vertexfinderclassic.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/track.h>
11 #include <inc/trackstate.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>
26 using namespace ZVTOP;
47 std::vector<string> paramNames;
48 paramNames.push_back(
"Kip");
49 paramNames.push_back(
"Kalpha");
50 paramNames.push_back(
"TwoProngCut");
51 paramNames.push_back(
"TrackTrimCut");
52 paramNames.push_back(
"ResolverCut");
53 paramNames.push_back(
"AutoJetAxis");
54 paramNames.push_back(
"JetAxisX");
55 paramNames.push_back(
"JetAxisY");
56 paramNames.push_back(
"JetAxisZ");
57 paramNames.push_back(
"UseEventIP");
63 std::vector<string> paramValues;
64 paramValues.push_back(makeString(_Kip));
65 paramValues.push_back(makeString(_Kalpha));
66 paramValues.push_back(makeString(_TwoProngCut));
67 paramValues.push_back(makeString(_TrackTrimCut));
68 paramValues.push_back(makeString(_ResolverCut));
69 paramValues.push_back(makeString(_AutoJetAxis));
70 paramValues.push_back(makeString(_JetAxis.x()));
71 paramValues.push_back(makeString(_JetAxis.y()));
72 paramValues.push_back(makeString(_JetAxis.z()));
73 paramValues.push_back(makeString(_UseEventIP));
79 if (Parameter ==
"AutoJetAxis")
93 if (Parameter ==
"UseEventIP")
100 if (Value ==
"FALSE")
107 this->badParameter(Parameter);
112 if (Parameter ==
"Kip")
117 if (Parameter ==
"Kalpha")
122 if (Parameter ==
"TwoProngCut")
124 _TwoProngCut = Value;
127 if (Parameter ==
"TrackTrimCut")
129 _TrackTrimCut = Value;
132 if (Parameter ==
"ResolverCut")
134 _ResolverCut = Value;
137 if (Parameter ==
"JetAxisX")
139 _JetAxis.x() = Value;
142 if (Parameter ==
"JetAxisY")
144 _JetAxis.y() = Value;
147 if (Parameter ==
"JetAxisZ")
149 _JetAxis.z() = Value;
152 this->badParameter(Parameter);
157 this->badParameter(Parameter);
164 if (_UseEventIP == 1)
177 ipcov(0,0) = pow(5.0/1000.0,2);
178 ipcov(1,1) = pow(5.0/1000.0,2);
179 ipcov(2,2) = pow(20.0/1000.0,2);
188 if (_AutoJetAxis == 1)
191 for (std::vector<Track*>::const_iterator iTrack = MyJet->
tracks().begin();
192 iTrack != MyJet->
tracks().end(); ++iTrack)
194 JetAxis=JetAxis.add((*iTrack)->momentum());
197 JetAxis = JetAxis.unit();
207 std::list<CandidateVertex*> CVResult = VFinder.
findVertices();
210 std::vector<Vertex*> VResult;
211 for (std::list<CandidateVertex*>::iterator iCV = CVResult.begin();iCV != CVResult.end();++iCV)
214 if (!(*iCV)->interactionPoint())
220 std::vector<Track*> Tracks;
221 for (std::vector<TrackState*>::const_iterator iTrack = (*iCV)->trackStateList().begin();
222 iTrack != (*iCV)->trackStateList().end(); ++iTrack)
224 Tracks.push_back((*iTrack)->parentTrack());
227 MyVertex =
new Vertex(MyJet->
event(), Tracks, (*iCV)->interactionPoint()->position(), (*iCV)->interactionPoint()->errorMatrix(),(bool)(*iCV)->interactionPoint(),0,0);
230 VResult.push_back(MyVertex);
const std::vector< Track * > & tracks() const
Tracks.
Interaction Point representation.
Event * event() const
Event.
string name() const
Name.
void setStringParameter(const string &Parameter, const string &Value)
Set String Parameter.
static MemoryManager< T > * Event()
Returns the Event duration singleton instance of the MemoryManager for type T.
std::list< CandidateVertex * > findVertices()
Vertex Finding object - classic ZVTOP.
ZVRES()
Default Constructor.
void setPointerParameter(const string &Parameter, void *Value)
Set Pointer Parameter.
void setDoubleParameter(const string &Parameter, const double Value)
Set Double Parameter.
const SymMatrix3x3 & interactionPointError() const
Interaction Point position error.
const Vector3 & interactionPoint() const
Interaction Point position.
std::vector< string > parameterValues() const
Parameter Values.
std::vector< string > parameterNames() const
Parameter Names.
DecayChain * calculateFor(Jet *MyJet) const
Run the algorithm on a jet.