/**************************************************************************/
-void Track::MakeTrack()
+void Track::MakeTrack( Bool_t recurse)
{
-
TrackRnrStyle& RS((fRnrStyle != 0) ? *fRnrStyle : TrackRnrStyle::fgDefStyle);
Float_t px = fP.x, py = fP.y, pz = fP.z;
Reset(track_points.size());
for(std::vector<MCVertex>::iterator i=track_points.begin(); i!=track_points.end(); ++i)
SetNextPoint(i->x, i->y, i->z);
+
+ if(recurse) {
+ Track* t;
+ for(List_i i=fChildren.begin(); i!=fChildren.end(); ++i) {
+ t = dynamic_cast<Track*>(*i);
+ if(t)t->MakeTrack(recurse);
+ }
+ }
}
/**************************************************************************/
void Track::ImportHits()
{
Reve::LoadMacro("hits_from_label.C");
- gROOT->ProcessLine(Form("hits_from_label(%d);", fLabel));
+ gROOT->ProcessLine(Form("hits_from_label(%d, (Reve::RenderElement*)%p);",
+ fLabel, this));
}
void Track::ImportClusters()
{
Reve::LoadMacro("clusters_from_label.C");
- gROOT->ProcessLine(Form("clusters_from_label(%d);", fLabel));
+ gROOT->ProcessLine(Form("clusters_from_label(%d, (Reve::RenderElement*)%p);",
+ fLabel, this));
}
void Track::ImportClustersFromIndex()
throw(eH + "index not set.");
Reve::LoadMacro("clusters_from_index.C");
- gROOT->ProcessLine(Form("clusters_from_index(%d);", fIndex));
+ gROOT->ProcessLine(Form("clusters_from_index(%d, (Reve::RenderElement*)%p);",
+ fIndex, this));
+}
+
+/**************************************************************************/
+
+void Track::ImportKine()
+{
+ static const Exc_t eH("Track::ImportKine ");
+
+ if (fLabel < 0)
+ throw(eH + "label not set.");
+
+ Reve::LoadMacro("kine_tracks.C");
+ gROOT->ProcessLine(Form("kine_track(%d, kFALSE, kTRUE, (Reve::RenderElement*)%p);",
+ fLabel, this));
+
}
-void Track::ImportDaughters()
+void Track::ImportKineWithArgs(Bool_t importMother, Bool_t importDaugters)
{
- static const Exc_t eH("Track::ImportDaughters ");
+ static const Exc_t eH("Track::ImportKineWithArgs ");
if (fLabel < 0)
throw(eH + "label not set.");
- Reve::LoadMacro("kine_daughter_tracks.C");
- gROOT->ProcessLine(Form("kine_daughter_tracks(%d);", fLabel));
+ Reve::LoadMacro("kine_tracks.C");
+ gROOT->ProcessLine(Form("kine_track(%d, %d, %d, (Reve::RenderElement*)%p);",
+ fLabel, importMother, importDaugters, this));
+
}
/**************************************************************************/
fMinAng (45),
fDelta (0.1),
+ fMinPt (0.1),
+ fMaxPt (10),
+
fFitDaughters (kTRUE),
fFitReferences (kTRUE),
fFitDecay (kTRUE),
void TrackList::Init()
{
- fMarkerStyle = 5;
- fMarkerColor = 5;
- // fMarker->SetMarkerSize(0.05);
+ fMarkerStyle = 2;
+ fMarkerColor = 4;
+ fMarkerSize = 0.6;
if (fRnrStyle== 0) fRnrStyle = new TrackRnrStyle;
SetMainColorPtr(&fRnrStyle->fColor);
}
TrackList::TrackList(Int_t n_tracks, TrackRnrStyle* rs) :
- RenderElementListBase(),
+ RenderElement(),
TPolyMarker3D(n_tracks),
fTitle(),
}
TrackList::TrackList(const Text_t* name, Int_t n_tracks, TrackRnrStyle* rs) :
- RenderElementListBase(),
+ RenderElement(),
TPolyMarker3D(n_tracks),
fTitle(),
- fRnrStyle (rs),
- fRnrTracks (kTRUE)
+ fRnrStyle (rs),
+ fRnrTracks (kTRUE),
+ fEditPathMarks (kFALSE)
{
Init();
SetName(name);
void TrackList::Paint(Option_t* option)
{
- if(fRnrElement) {
+ if(fRnrSelf) {
if(fRnrMarkers) {
TPolyMarker3D::Paint(option);
}
- if(fRnrTracks) {
+ if(fRnrTracks && fRnrChildren) {
for(List_i i=fChildren.begin(); i!=fChildren.end(); ++i) {
- if((*i)->GetRnrElement())
+ if((*i)->GetRnrSelf())
(*i)->GetObject()->Paint(option);
}
}
static const Exc_t eH("TrackList::AddElement ");
if (dynamic_cast<Track*>(el) == 0)
throw(eH + "new element not a Track.");
- RenderElementListBase::AddElement(el);
+ RenderElement::AddElement(el);
}
/**************************************************************************/
void TrackList::SelectByPt(Float_t min_pt, Float_t max_pt)
{
+ fRnrStyle->fMinPt = min_pt;
+ fRnrStyle->fMaxPt = max_pt;
+
Float_t minptsq = min_pt*min_pt;
Float_t maxptsq = max_pt*max_pt;
Float_t ptsq;
for(List_i i=fChildren.begin(); i!=fChildren.end(); ++i) {
ptsq = ((Track*)(*i))->fP.Perp2();
- (*i)->SetRnrElement(ptsq >= minptsq && ptsq <= maxptsq);
+ (*i)->SetRnrSelf(ptsq >= minptsq && ptsq <= maxptsq);
}
}