]> git.uio.no Git - u/mrichter/AliRoot.git/blame - EVE/EveBase/AliEveTracklet.cxx
Printout CDB URI if opening fails.
[u/mrichter/AliRoot.git] / EVE / EveBase / AliEveTracklet.cxx
CommitLineData
3a20f984 1// $Id$
2// Author: Matevz Tadel 2009
3
4/**************************************************************************
5 * Copyright(c) 1998-2009, ALICE Experiment at CERN, all rights reserved. *
6 * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for *
7 * full copyright notice. *
8 **************************************************************************/
9
10#include "AliEveTracklet.h"
11
12#include <AliVVertex.h>
13#include <TEveTrackPropagator.h>
14
15//______________________________________________________________________________
16// AliEveTracklet is a representation of SPD tracklet.
17// It inherits from AliEveTrack to allow for common functionality
18// regarding track counting.
19//
20// TEveTrack::fV - stores primary vertex.
21// TEveTrack::fP - stores vector in direction of the tracklet with
22// transverse component equal to 1.
23
24ClassImp(AliEveTracklet)
25
26Float_t AliEveTracklet::fgDefaultRadius = 10;
27
28//______________________________________________________________________________
29Float_t AliEveTracklet::GetDefaultRadius()
30{
31 // Static - return defualt extrapolation radius.
32
33 return fgDefaultRadius;
34}
35
36//______________________________________________________________________________
37void AliEveTracklet::SetDefaultRadius(Float_t r)
38{
39 // Static - set defualt extrapolation radius.
40
41 fgDefaultRadius = r;
42}
43
44//==============================================================================
45
46//______________________________________________________________________________
47AliEveTracklet::AliEveTracklet(const AliVVertex* pv, Float_t theta, Float_t phi,
48 TEveTrackPropagator* prop) :
49 AliEveTrack()
50{
51 // Constructor.
52
53 using namespace TMath;
54
55 fV.Set(pv->GetX(), pv->GetY(), pv->GetZ());
56 fP.Set(Cos(phi), Sin(phi), 1.0/Tan(theta));
57
58 if (prop) SetPropagator(prop);
59}
60
61//==============================================================================
62
63//______________________________________________________________________________
64void AliEveTracklet::MakeTrack(Bool_t recurse)
65{
66 // Make track -- just make a line to radius specified in propagator
67 // or use the default if it is not set.
68
69 Float_t r = fPropagator ? fPropagator->GetMaxR() : fgDefaultRadius;
70 Reset(2);
71 SetPoint(0, fV.fX, fV.fY, fV.fZ);
72 SetPoint(1, fV.fX + r*fP.fX, fV.fY + r*fP.fY, fV.fZ + r*fP.fZ);
73
74 if (recurse)
75 {
76 for (List_i i=fChildren.begin(); i!=fChildren.end(); ++i)
77 {
78 TEveTrack* t = dynamic_cast<TEveTrack*>(*i);
79 if (t) t->MakeTrack(recurse);
80 }
81 }
82}
83
84//______________________________________________________________________________
85void AliEveTracklet::SecSelected(TEveTrack* track)
86{
87 // Emits "SecSelected(TEveTrack*)" signal.
88 // Called from TEveTrackGL on secondary-selection.
89
90 Emit("SecSelected(TEveTrack*)", (Long_t)track);
91 SecSelectedTracklet((AliEveTracklet*) track);
92}
93
94//______________________________________________________________________________
95void AliEveTracklet::SecSelectedTracklet(AliEveTracklet* track)
96{
97 // Emits "SecSelectedTracklet(AliEveTracklet*)" signal.
98
99 Emit("SecSelectedTracklet(AliEveTracklet*)", (Long_t)track);
100}