NCFS-Pack
A generic (astro)particle physics analysis framework
 
Loading...
Searching...
No Matches
NcTrack Class Reference

Handling of the attributes of a reconstructed particle track. More...

#include "NcTrack.h"

Inheritance diagram for NcTrack:
Nc4Vector

Detailed Description

Handling of the attributes of a reconstructed particle track.


Copyright(c) 1997 NCFS/IIHE, All Rights Reserved. *
*
Authors: The Netherlands Center for Fundamental Studies (NCFS). *
The Inter-university Institute for High Energies (IIHE). *
Website : http://www.iihe.ac.be *
Contact : Nick van Eijndhoven (nickve.nl@gmail.com) *
*
Contributors are mentioned in the code where appropriate. *
*
No part of this software may be used, copied, modified or distributed *
by any means nor transmitted or translated into machine language for *
commercial purposes without written permission by the IIHE representative. *
Permission to use the software strictly for non-commercial purposes *
is hereby granted without fee, provided that the above copyright notice *
appears in all copies and that both the copyright notice and this *
permission notice appear in the supporting documentation. *
This software is provided "as is" without express or implied warranty. *
The authors make no claims that this software is free of error, or is *
consistent with any particular standard of merchantability, or that it *
will meet your requirements for any particular application, other than *
indicated in the corresponding documentation. *
This software should not be relied on for solving a problem whose *
incorrect solution could result in injury to a person or loss of property. *
If you do use this software in such a manner, it is at your own risk. *
The authors disclaim all liability for direct or consequential damage *
resulting from your use of this software. *

// Class NcTrack
// Handling of the attributes of a reconstructed particle track.
//
// Coding example :
// ----------------
//
// Float_t a[4]={195.,1.2,-0.04,8.5};
// Nc4Vector pmu;
// pmu.SetVector(a,"car");
// NcTrack t1;
// t1.Set4Momentum(pmu);
//
// Float_t b[3]={1.2,-0.04,8.5};
// Nc3Vector p;
// p.SetVector(b,"car");
// NcTrack t2;
// t2.Set3Momentum(p);
// t2.SetCharge(0);
// t2.SetMass(1.115);
//
// t1.Data();
// t2.Data();
//
// Float_t pi=acos(-1.);
// Float_t thcms=0.2*pi; // decay theta angle in cms
// Float_t phicms=pi/4.; // decay theta angle in cms
// Float_t m1=0.938;
// Float_t m2=0.140;
// t2.Decay(m1,m2,thcms,phicms); // Track t2 decay : Lambda -> proton + pion
//
// t2.List();
//
// Int_t ndec=t2.GetNdecay();
// NcTrack* d1=t2.GetDecayTrack(1); // Access to decay track number 1
// NcTrack* d2=t2.GetDecayTrack(2); // Access to decay track number 2
//
// NcSignal s1,s2,s3,s4;
//
// .... // Code (e.g. detector readout) to fill NcSignal data
//
// NcTrack trec; // Track which will be reconstructed from signals
// trec.AddSignal(s1);
// trec.AddSignal(s3);
// trec.AddSignal(s4);
//
// Nc3Vector P;
// Float_t Q,M;
//
// ... // Code which accesses signals from trec and reconstructs
// 3-momentum P, charge Q, mass M etc...
//
// trec.Set3Momentum(P);
// trec.SetCharge(Q);
// trec.SetMass(M);
//
// Float_t r1[3]={1.6,-3.8,25.7};
// Float_t er1[3]={0.2,0.5,1.8};
// Float_t r2[3]={8.6,23.8,-6.7};
// Float_t er2[3]={0.93,1.78,0.8};
// NcPosition begin,end;
// begin.SetPosition(r1,"car");
// begin.SetPositionErrors(er1,"car");
// end.SetPosition(r2,"car");
// end.SetPositionErrors(er2,"car");
// trec.SetBeginPoint(begin);
// trec.SetEndPoint(end);
//
// Note : By default all quantities are in GeV, GeV/c or GeV/c**2
// but the user can indicate the usage of a different scale
// for the energy-momentum units via the SetEscale() memberfunction.
// The actual energy-momentum unit scale can be obtained via the
// GetEscale() memberfunction.
//
//--- Author: Nick van Eijndhoven 10-jul-1997 Utrecht University
//- Modified: NvE $Date: 2013-08-18 20:14:09 +0200 (Sun, 18 Aug 2013) $ NCFS

Definition at line 18 of file NcTrack.h.

Public Member Functions

 NcTrack ()
 
 NcTrack (const NcTrack &t)
 
virtual ~NcTrack ()
 
void AddSignal (NcSignal &s, Int_t mode=0)
 
void AddTrackHypothesis (Double_t prob, Double_t m, Double_t dm=0)
 
void AddTrackHypothesis (NcTrack &t)
 
virtual TObject * Clone (const char *name="") const
 
virtual void Data (TString f="car", TString u="rad")
 
void Decay (Double_t m1, Double_t m2, Double_t thcms, Double_t phicms)
 
Nc3Vector Get3Momentum (Float_t scale=-1) const
 
NcPositionGetBeginPoint ()
 
Float_t GetCharge () const
 
NcPositionGetClosestPoint ()
 
NcTrackGetDecayTrack (Int_t j) const
 
Double_t GetDistance (NcPosition &p, Float_t scale=-1)
 
Double_t GetDistance (NcPosition *p, Float_t scale=-1)
 
Double_t GetDistance (NcTrack &t, Float_t scale=-1)
 
Double_t GetDistance (NcTrack *t, Float_t scale=-1)
 
Double_t GetEl (Float_t scale=-1)
 
NcPositionGetEndPoint ()
 
Double_t GetEnergy (Float_t scale=-1)
 
Float_t GetEscale () const
 
Double_t GetEt (Float_t scale=-1)
 
TObject * GetFitDetails ()
 
Int_t GetHypCopy () const
 
Int_t GetId () const
 
NcPositionGetImpactPoint (TString q)
 
Double_t GetMass (Float_t scale=-1)
 
Double_t GetMomentum (Float_t scale=-1)
 
Double_t GetMt (Float_t scale=-1)
 
Int_t GetNdecay () const
 
Int_t GetNhypotheses () const
 
Int_t GetNsignals () const
 
Int_t GetNsignals (const char *classname, Int_t par=0) const
 
NcTrackGetParentTrack ()
 
Int_t GetParticleCode () const
 
Double_t GetPl (Float_t scale=-1)
 
Float_t GetProb () const
 
Double_t GetPt (Float_t scale=-1)
 
Double_t GetRapidity ()
 
NcPositionGetReferencePoint ()
 
NcSignalGetSignal (Int_t j) const
 
TObjArray * GetSignals (const char *classname, Int_t par=0, TObjArray *signals=0)
 
Double_t GetSignalValue (TString classname, TString varname, Int_t mode=0, Int_t par=2)
 
NcTimestampGetTimestamp ()
 
NcTrackGetTrackHypothesis (Int_t j=0) const
 
virtual void List (TString f="car", TString u="rad")
 
virtual void ListAll (TString f="car", TString u="rad")
 
void RemoveDecays ()
 
void RemoveSignal (NcSignal &s, Int_t mode=1)
 
void RemoveSignals (Int_t mode=1)
 
void RemoveTimestamp ()
 
void RemoveTrackHypotheses ()
 
void RemoveTrackHypothesis (NcTrack &t)
 
virtual void Reset ()
 
void Set3Momentum (Nc3Vector &p)
 
void Set4Momentum (Nc4Vector &p)
 
void SetBeginPoint (NcPosition &p)
 
void SetCharge (Float_t q)
 
void SetClosestPoint (NcPosition &p)
 
void SetEndPoint (NcPosition &p)
 
void SetEscale (Float_t scale)
 
void SetFitDetails (TObject &obj)
 
void SetFitDetails (TObject *obj)
 
void SetHypCopy (Int_t flag)
 
void SetId (Int_t id)
 
void SetImpactPoint (NcPosition &p, TString q)
 
void SetMass ()
 
void SetMass (Double_t m, Double_t dm=0)
 
void SetParentTrack (NcTrack *t)
 
void SetParticleCode (Int_t code)
 
void SetProb (Double_t prob)
 
void SetReferencePoint (NcPosition &p)
 
void SetTimestamp (NcTimestamp &t)
 
void ShowSignals (const char *classname, Int_t par=0, Int_t mode=1, TString f="car", TString u="rad")
 
- Public Member Functions inherited from Nc4Vector
 Nc4Vector ()
 
 Nc4Vector (const Nc4Vector &v)
 
virtual ~Nc4Vector ()
 
Double_t Dot (Nc4Vector &q)
 
Nc3Vector Get3Vector () const
 
Double_t GetBeta ()
 
Nc3Vector GetBetaVector () const
 
void GetErrors (Double_t *v, TString f, TString u="rad")
 
void GetErrors (Float_t *v, TString f, TString u="rad")
 
Double_t GetGamma ()
 
Double_t GetInvariant ()
 
virtual Double_t GetOpeningAngle (Nc3Vector &q, TString u="rad")
 
virtual Double_t GetOpeningAngle (Nc4Vector &q, TString u="rad")
 
Double_t GetPseudoRapidity ()
 
Double_t GetResultError () const
 
Double_t GetScalar ()
 
Int_t GetScalarFlag () const
 
NcSignalGetUserData () const
 
Nc3Vector GetVecLong () const
 
void GetVector (Double_t *v, TString f, TString u="rad")
 
void GetVector (Float_t *v, TString f, TString u="rad")
 
Nc3Vector GetVecTrans () const
 
Double_t GetX (Int_t i, TString f, TString u="rad")
 
Int_t HasErrors () const
 
Int_t HasVector () const
 
virtual void Load (Nc4Vector &q)
 
Nc4Vector operator* (Double_t s)
 
Nc4Vectoroperator*= (Double_t s)
 
Nc4Vector operator+ (Nc4Vector &q)
 
Nc4Vectoroperator+= (Nc4Vector &q)
 
Nc4Vector operator- (Nc4Vector &q)
 
Nc4Vectoroperator-= (Nc4Vector &q)
 
Nc4Vector operator/ (Double_t s)
 
Nc4Vectoroperator/= (Double_t s)
 
Nc4Vectoroperator= (const Nc4Vector &q)
 
void Set3Vector (Double_t *v, TString f, TString u="rad")
 
void Set3Vector (Double_t v1, Double_t v2, Double_t v3, TString f, TString u="rad")
 
void Set3Vector (Float_t *v, TString f, TString u="rad")
 
void Set3Vector (Nc3Vector &v)
 
void SetErrors (Double_t *v, TString f, TString u="rad")
 
void SetErrors (Double_t e0, Double_t e1, Double_t e2, Double_t e3, TString f, TString u="rad")
 
void SetErrors (Float_t *v, TString f, TString u="rad")
 
void SetInvariant (Double_t v2, Double_t dv2=0)
 
void SetInvariantError (Double_t dv2)
 
void SetScalar (Double_t v0, Double_t dv0=0)
 
void SetScalarError (Double_t dv0)
 
void SetUserData (NcSignal &s)
 
void SetUserData (NcSignal *s)
 
void SetVector (Double_t *v, TString f, TString u="rad")
 
void SetVector (Double_t v0, Double_t v1, Double_t v2, Double_t v3, TString f, TString u="rad")
 
void SetVector (Double_t v0, Nc3Vector &v)
 
void SetVector (Float_t *v, TString f, TString u="rad")
 
virtual void SetZero ()
 

Protected Member Functions

void Init ()
 
- Protected Member Functions inherited from Nc4Vector
Double_t GetScaLong ()
 
Double_t GetScaTrans ()
 

Protected Attributes

NcPositionObjfBegin
 
NcPositionObjfClosest
 
Int_t fCode
 
TObjArray * fDecays
 
NcPositionObjfEnd
 
Float_t fEscale
 
TObject * fFit
 
Int_t fHypCopy
 
TObjArray * fHypotheses
 
NcPositionObjfImpactXY
 
NcPositionObjfImpactXZ
 
NcPositionObjfImpactYZ
 
NcTrackfParent
 
Float_t fProb
 
Float_t fQ
 
NcPositionObjfRef
 
TObjArray * fSignals
 
TObjArray * fTemp
 ! Temporary storage for exchange of object pointers
 
NcTimestampfTstamp
 
Int_t fUserId
 
- Protected Attributes inherited from Nc4Vector
Double32_t fDresult
 ! The error on the scalar result of an operation (e.g. dotproduct)
 
Double32_t fDv0
 
Double32_t fDv2
 
Int_t fScalar
 
NcSignalfUser
 
Nc3Vector fV
 
Double32_t fV0
 
Double32_t fV2
 

Private Member Functions

void Dumps (NcTrack *t, Int_t n, TString f, TString u)
 

Constructor & Destructor Documentation

◆ NcTrack() [1/2]

NcTrack::NcTrack ( )
// Default constructor.
// All variables initialised to 0.

Definition at line 120 of file NcTrack.cxx.

◆ ~NcTrack()

NcTrack::~NcTrack ( )
virtual
// Destructor to delete memory allocated for decay tracks array.
// This destructor automatically cleares all references to this NcTrack
// from all the related NcSignal objects and track hypotheses (if any).
// It also removes it as a track hypothesis from the parent track (if any).

Definition at line 159 of file NcTrack.cxx.

◆ NcTrack() [2/2]

NcTrack::NcTrack ( const NcTrack & t)
// Copy constructor.

Definition at line 258 of file NcTrack.cxx.

Member Function Documentation

◆ AddSignal()

void NcTrack::AddSignal ( NcSignal & s,
Int_t mode = 0 )
// Relate an NcSignal object to this track.
//
// mode = 0 : Only the reference to the specified signal is stored in
// the current track, without storing the (backward) reference
// to this track into the NcSignal structure.
// 1 : The (backward) reference to the current track is also automatically
// stored into the NcSignal (or derived) object specified in the
// input argument.
//
// The default is mode=0.

Definition at line 886 of file NcTrack.cxx.

◆ AddTrackHypothesis() [1/2]

void NcTrack::AddTrackHypothesis ( Double_t prob,
Double_t m,
Double_t dm = 0 )
// Add a track hypothesis by explicitly setting the mass and probability.
// This will affect e.g. the hypothesis track's energy, since the momentum
// and all other attributes will be copied from the current track.
//
// Note that this will always result in a newly created track.
//
// Input arguments :
// -----------------
// prob=probalility m=mass value dm=error on the mass value.
// The default value for the mass error dm is 0.

Definition at line 1301 of file NcTrack.cxx.

◆ AddTrackHypothesis() [2/2]

void NcTrack::AddTrackHypothesis ( NcTrack & t)
// Relate a track hypothesis "t" to the current track.
//
// Note :
// ------
// By default a private copy of the input track will be made via the Clone() facility.
// See the memberfunction SetHypCopy() to suppress the creation of a private copy
// so that only the pointer to the input track will be stored.

Definition at line 1269 of file NcTrack.cxx.

◆ Clone()

TObject * NcTrack::Clone ( const char * name = "") const
virtual
// Make a deep copy of the current object and provide the pointer to the copy.
// This memberfunction enables automatic creation of new objects of the
// correct type depending on the object type, a feature which may be very useful
// for containers when adding objects in case the container owns the objects.
// This feature allows e.g. NcJet to store either NcTrack objects or
// objects derived from NcTrack via the AddTrack memberfunction, provided
// these derived classes also have a proper Clone memberfunction.

Definition at line 2167 of file NcTrack.cxx.

◆ Data()

void NcTrack::Data ( TString f = "car",
TString u = "rad" )
virtual
// Provide track information within the coordinate frame f.
//
// The string argument "u" allows to choose between different angular units
// in case e.g. a spherical frame is selected.
// u = "rad" : angles provided in radians
// "deg" : angles provided in degrees
//
// The defaults are f="car" and u="rad".

Reimplemented from Nc4Vector.

Definition at line 455 of file NcTrack.cxx.

◆ Decay()

void NcTrack::Decay ( Double_t m1,
Double_t m2,
Double_t thcms,
Double_t phicms )
// Perform 2-body decay of current track
// m1 : mass of decay product 1
// m2 : mass of decay product 2
// thcms : cms theta decay angle (in rad.) of m1
// phicms : cms phi decay angle (in rad.) of m1

Definition at line 754 of file NcTrack.cxx.

◆ Dumps()

void NcTrack::Dumps ( NcTrack * t,
Int_t n,
TString f,
TString u )
private
// Recursively provide the info of all decay levels of this track.

Definition at line 578 of file NcTrack.cxx.

◆ Get3Momentum()

Nc3Vector NcTrack::Get3Momentum ( Float_t scale = -1) const
// Provide the track 3-momentum.
// By default the components of the 3-momentum are returned in the units
// as they were stored in the track structure.
// However, the user can select a different momentum unit scale for the
// components by specification of the scale parameter.
// The convention is that scale=1 corresponds to GeV/c, so specification
// of scale=0.001 will provide the 3-momentum in MeV/c.

Definition at line 652 of file NcTrack.cxx.

◆ GetBeginPoint()

NcPosition * NcTrack::GetBeginPoint ( )
// Provide the position of the track begin-point.

Definition at line 1435 of file NcTrack.cxx.

◆ GetCharge()

Float_t NcTrack::GetCharge ( ) const
// Provide the particle charge.

Definition at line 710 of file NcTrack.cxx.

◆ GetClosestPoint()

NcPosition * NcTrack::GetClosestPoint ( )
// Provide the point of closest approach w.r.t. some reference.

Definition at line 1806 of file NcTrack.cxx.

◆ GetDecayTrack()

NcTrack * NcTrack::GetDecayTrack ( Int_t j) const
// Provide decay produced track number j.
// Note : j=1 denotes the first decay track.

Definition at line 842 of file NcTrack.cxx.

◆ GetDistance() [1/4]

Double_t NcTrack::GetDistance ( NcPosition & p,
Float_t scale = -1 )
inline

Definition at line 91 of file NcTrack.h.

◆ GetDistance() [2/4]

Double_t NcTrack::GetDistance ( NcPosition * p,
Float_t scale = -1 )
// Provide distance of the current track to the position p.
// The error on the result can be obtained as usual by invoking
// GetResultError() afterwards.
//
// By default the distance will be provided in the metric unit scale of
// the NcPosition p.
// However, the user can select a different metric unit scale by
// specification of the scale parameter.
// The convention is that scale=1 corresponds to meter, so specification
// of scale=0.01 will provide the distance in cm.
// As such it is possible to obtain a correctly computed distance even in case
// the track parameters have a different unit scale.
// However, it is recommended to work always with one single unit scale.
//
// Note : In case of incomplete information, a distance value of -1 is
// returned.

Definition at line 2011 of file NcTrack.cxx.

◆ GetDistance() [3/4]

Double_t NcTrack::GetDistance ( NcTrack & t,
Float_t scale = -1 )
inline

Definition at line 93 of file NcTrack.h.

◆ GetDistance() [4/4]

Double_t NcTrack::GetDistance ( NcTrack * t,
Float_t scale = -1 )
// Provide distance of the current track to the track t.
// The error on the result can be obtained as usual by invoking
// GetResultError() afterwards.
//
// By default the distance will be provided in the metric unit scale of
// the current track.
// This implies that the results of t1.GetDistance(t2) and t2.GetDistance(t1)
// may be numerically different in case t1 and t2 have different metric units.
// However, the user can specify a required metric unit scale by specification
// of the scale parameter.
// The convention is that scale=1 corresponds to meter, so specification
// of scale=0.01 will provide the distance in cm.
// As such it is possible to obtain a correctly computed distance even in case
// the track parameters have a different unit scale.
// However, it is recommended to work always with one single unit scale.
//
// Note : In case of incomplete information, a distance value of -1 is
// returned.

Definition at line 2079 of file NcTrack.cxx.

◆ GetEl()

Double_t NcTrack::GetEl ( Float_t scale = -1)
// Provide longitudinal energy value w.r.t. z-axis.
// By default the value is returned in the units as it was stored in the track
// structure. However, the user can select a different energy unit scale by
// specification of the scale parameter.
// The convention is that scale=1 corresponds to GeV, so specification
// of scale=0.001 will provide the longitudinal energy in MeV.
// Note : the returned value can also be negative.
// The error on the value can be obtained by GetResultError()
// after invokation of GetEl().

Definition at line 1611 of file NcTrack.cxx.

◆ GetEndPoint()

NcPosition * NcTrack::GetEndPoint ( )
// Provide the position of the track end-point.

Definition at line 1458 of file NcTrack.cxx.

◆ GetEnergy()

Double_t NcTrack::GetEnergy ( Float_t scale = -1)
// Provide the particle's energy.
// By default the energy is returned in the units as it was stored in the track
// structure. However, the user can select a different energy unit scale by
// specification of the scale parameter.
// The convention is that scale=1 corresponds to GeV, so specification
// of scale=0.001 will provide the energy in MeV.
// The error can be obtained by invoking GetResultError() after
// invokation of GetEnergy().

Definition at line 721 of file NcTrack.cxx.

◆ GetEscale()

Float_t NcTrack::GetEscale ( ) const
// Provide the energy/momentum scale as used by the user.
// The convention is that scale=1 indicates values in units
// of GeV, GeV/c or GeV/c**2.
// So, a value of scale=0.001 indicates that energy/momentum values are
// stored in units of MeV, MeV/c or MeV/c**2.

Definition at line 1841 of file NcTrack.cxx.

◆ GetEt()

Double_t NcTrack::GetEt ( Float_t scale = -1)
// Provide transverse energy value w.r.t. z-axis.
// By default the value is returned in the units as it was stored in the track
// structure. However, the user can select a different energy unit scale by
// specification of the scale parameter.
// The convention is that scale=1 corresponds to GeV, so specification
// of scale=0.001 will provide the transverse energy in MeV.
// The error on the value can be obtained by GetResultError()
// after invokation of GetEt().

Definition at line 1586 of file NcTrack.cxx.

◆ GetFitDetails()

TObject * NcTrack::GetFitDetails ( )
// Provide the pointer to the object containing the fit details.

Definition at line 1962 of file NcTrack.cxx.

◆ GetHypCopy()

Int_t NcTrack::GetHypCopy ( ) const
// Provide value of the DevCopy mode.
//
// mode = 0 : No private copies are made; pointers of original tracks are stored.
// 1 : Private copies of the tracks are made and these pointers are stored.
//
// Note :
// ------
// In case a private copy is made, this is performed via the Clone() memberfunction.
// All tracks have the default TObject::Clone() memberfunction.
// However, tracks generally contain an internal (signal) data structure
// which may include pointers to other objects. Therefore it is recommended to provide
// for all tracks a specific copy constructor and override the default Clone()
// memberfunction using this copy constructor.

Definition at line 1246 of file NcTrack.cxx.

◆ GetId()

Int_t NcTrack::GetId ( ) const
// Provide the user defined unique identifier of this track.

Definition at line 1783 of file NcTrack.cxx.

◆ GetImpactPoint()

NcPosition * NcTrack::GetImpactPoint ( TString q)
// Provide the position of the impact-point in the plane "q=0".
// Here q denotes one of the axes X, Y or Z.
// Note : The character to denote the axis may be entered in lower or
// in uppercase.

Definition at line 1738 of file NcTrack.cxx.

◆ GetMass()

Double_t NcTrack::GetMass ( Float_t scale = -1)
// Provide the particle mass.
// By default the mass is returned in the units as it was stored in the track
// structure. However, the user can select a different mass unit scale by
// specification of the scale parameter.
// The convention is that scale=1 corresponds to GeV/c**2, so specification
// of scale=0.001 will provide the mass in MeV/c**2.
// The error can be obtained by invoking GetResultError() after
// invokation of GetMass().

Definition at line 671 of file NcTrack.cxx.

◆ GetMomentum()

Double_t NcTrack::GetMomentum ( Float_t scale = -1)
// Provide the value of the track 3-momentum.
// By default the momentum is returned in the units as it was stored in the track
// structure. However, the user can select a different momentum unit scale by
// specification of the scale parameter.
// The convention is that scale=1 corresponds to GeV/c, so specification
// of scale=0.001 will provide the momentum in MeV/c.
// The error can be obtained by invoking GetResultError() after
// invokation of GetMomentum().

Definition at line 627 of file NcTrack.cxx.

◆ GetMt()

Double_t NcTrack::GetMt ( Float_t scale = -1)
// Provide transverse mass value w.r.t. z-axis.
// By default the value is returned in the units as it was stored in the track
// structure. However, the user can select a different energy unit scale by
// specification of the scale parameter.
// The convention is that scale=1 corresponds to GeV, so specification
// of scale=0.001 will provide the transverse mass in MeV.
// The error on the value can be obtained by GetResultError()
// after invokation of GetMt().

Definition at line 1637 of file NcTrack.cxx.

◆ GetNdecay()

Int_t NcTrack::GetNdecay ( ) const
// Provide the number of decay produced tracks.

Definition at line 829 of file NcTrack.cxx.

◆ GetNhypotheses()

Int_t NcTrack::GetNhypotheses ( ) const
// Provide the number of track hypotheses.

Definition at line 1363 of file NcTrack.cxx.

◆ GetNsignals() [1/2]

Int_t NcTrack::GetNsignals ( ) const
// Provide the number of related NcSignals.

Definition at line 970 of file NcTrack.cxx.

◆ GetNsignals() [2/2]

Int_t NcTrack::GetNsignals ( const char * classname,
Int_t par = 0 ) const
// Provide the number of stored signals (derived) of the specified class.
//
// par = 0 ==> The signal itself has to be (derived) of the specified class
// 1 ==> The parent device of the signal has to be (derived) of the specified class
// 2 ==> The signal or the parent device has to be (derived) of the specified class
//
// The default is par=0.

Definition at line 983 of file NcTrack.cxx.

◆ GetParentTrack()

NcTrack * NcTrack::GetParentTrack ( )
// Provide pointer to the parent track.

Definition at line 1889 of file NcTrack.cxx.

◆ GetParticleCode()

Int_t NcTrack::GetParticleCode ( ) const
// Provide the user defined particle id code.

Definition at line 1867 of file NcTrack.cxx.

◆ GetPl()

Double_t NcTrack::GetPl ( Float_t scale = -1)
// Provide the longitudinal momentum value w.r.t. z-axis.
// By default the value is returned in the units as it was stored in the track
// structure. However, the user can select a different momentum unit scale by
// specification of the scale parameter.
// The convention is that scale=1 corresponds to GeV/c, so specification
// of scale=0.001 will provide the longitudinal momentum in MeV/c.
// Note : the returned value can also be negative.
// The error on the value can be obtained by GetResultError()
// after invokation of GetPl().

Definition at line 1552 of file NcTrack.cxx.

◆ GetProb()

Float_t NcTrack::GetProb ( ) const
// Provide the hypothesis probability for this track.

Definition at line 1911 of file NcTrack.cxx.

◆ GetPt()

Double_t NcTrack::GetPt ( Float_t scale = -1)
// Provide the transverse momentum value w.r.t. z-axis.
// By default the value is returned in the units as it was stored in the track
// structure. However, the user can select a different momentum unit scale by
// specification of the scale parameter.
// The convention is that scale=1 corresponds to GeV/c, so specification
// of scale=0.001 will provide the transverse momentum in MeV/c.
// The error on the value can be obtained by GetResultError()
// after invokation of GetPt().

Definition at line 1524 of file NcTrack.cxx.

◆ GetRapidity()

Double_t NcTrack::GetRapidity ( )
// Provide rapidity value w.r.t. z-axis.
// The error on the value can be obtained by GetResultError()
// after invokation of GetRapidity().
// Note : Also GetPseudoRapidity() is available since this class is
// derived from Nc4Vector.

Definition at line 1670 of file NcTrack.cxx.

◆ GetReferencePoint()

NcPosition * NcTrack::GetReferencePoint ( )
// Provide the position of the track reference-point.
// The reference-point is the point on the track in which the
// 3-momentum vector components have been defined.
// This reference point is the preferable point to start track extrapolations
// etc... which are sensitive to the components of the 3-momentum vector.

Definition at line 1485 of file NcTrack.cxx.

◆ GetSignal()

NcSignal * NcTrack::GetSignal ( Int_t j) const
// Provide the related NcSignal number j.
// Note : j=1 denotes the first signal.

Definition at line 1017 of file NcTrack.cxx.

◆ GetSignals()

TObjArray * NcTrack::GetSignals ( const char * classname,
Int_t par = 0,
TObjArray * signals = 0 )
// Provide references to the stored signals (derived) from the specified class.
//
// par = 0 ==> The signal itself has to be (derived) from the specified class
// 1 ==> The parent device of the signal has to be (derived) from the specified class
// 2 ==> The signal or the parent device has to be (derived) from the specified class
//
// The default is par=0.
//
// Note :
// ------
// In case signals=0 the selected signal pointers are returned via a multi-purpose array,
// which will be overwritten by subsequent selections (not restricted to signal selections).
// It is recommended to provide a user defined array via the argument "signals"
// to omit the danger of overwriting the selection and to allow to use the selected signal list
// amongst other selections.
// In case a user defined array "signals" is provided, this memberfunction returns 0 for the
// return argument.
//
// The default is signals=0.

Definition at line 1046 of file NcTrack.cxx.

◆ GetSignalValue()

Double_t NcTrack::GetSignalValue ( TString classname,
TString varname,
Int_t mode = 0,
Int_t par = 2 )
// Provide the total sum of the value of variable "varname" of all the
// associated signals (derived) from the specified class.
//
// par = 0 ==> The signal itself has to be (derived) of the specified class
// 1 ==> The parent device of the signal has to be (derived) of the specified class
// 2 ==> The signal or the parent device has to be (derived) of the specified class
//
// The default is par=2.
//
// The argument "mode" has the same meaning as in the memberfunction GetSignal()
// of the class NcSignal.
// Also here the default value is mode=0.

Definition at line 1172 of file NcTrack.cxx.

◆ GetTimestamp()

NcTimestamp * NcTrack::GetTimestamp ( )
// Provide the timestamp of this track.

Definition at line 1985 of file NcTrack.cxx.

◆ GetTrackHypothesis()

NcTrack * NcTrack::GetTrackHypothesis ( Int_t j = 0) const
// Provide the j-th track hypothesis.
// Note : j=1 denotes the first hypothesis.
// Default : j=0 ==> Hypothesis with highest probability.

Definition at line 1376 of file NcTrack.cxx.

◆ Init()

void NcTrack::Init ( )
protected
// Initialisation of pointers etc...

Definition at line 133 of file NcTrack.cxx.

◆ List()

void NcTrack::List ( TString f = "car",
TString u = "rad" )
virtual
// Provide current track and decay level 1 information within coordinate frame f.
//
// The string argument "u" allows to choose between different angular units
// in case e.g. a spherical frame is selected.
// u = "rad" : angles provided in radians
// "deg" : angles provided in degrees
//
// The defaults are f="car" and u="rad".

Definition at line 504 of file NcTrack.cxx.

◆ ListAll()

void NcTrack::ListAll ( TString f = "car",
TString u = "rad" )
virtual
// Provide complete track and decay information within the coordinate frame f.
//
// The string argument "u" allows to choose between different angular units
// in case e.g. a spherical frame is selected.
// u = "rad" : angles provided in radians
// "deg" : angles provided in degrees
//
// The defaults are f="car" and u="rad".

Definition at line 541 of file NcTrack.cxx.

◆ RemoveDecays()

void NcTrack::RemoveDecays ( )
// Remove all decay tracks from this track.

Definition at line 871 of file NcTrack.cxx.

◆ RemoveSignal()

void NcTrack::RemoveSignal ( NcSignal & s,
Int_t mode = 1 )
// Remove related NcSignal object from this track.
//
// mode = 0 : Only the reference to the specified signal is removed from
// the current track, without removing the (backward) reference(s)
// to this track from the NcSignal structure.
// 1 : The (backward) reference(s) to the current track are also automatically
// removed from the NcSignal (or derived) object specified in the
// input argument.
//
// The default is mode=1.

Definition at line 916 of file NcTrack.cxx.

◆ RemoveSignals()

void NcTrack::RemoveSignals ( Int_t mode = 1)
// Remove all related NcSignal objects from this track.
//
// mode = 0 : All signal references are removed from the current track,
// without removing the (backward) references to this track from
// the corresponding NcSignal objects.
// 1 : The (backward) references to the current track are also automatically
// removed from the corresponding NcSignal (or derived) objects.
//
// The default is mode=1.

Definition at line 941 of file NcTrack.cxx.

◆ RemoveTimestamp()

void NcTrack::RemoveTimestamp ( )
// Remove the timestamp from this track.

Definition at line 1996 of file NcTrack.cxx.

◆ RemoveTrackHypotheses()

void NcTrack::RemoveTrackHypotheses ( )
// Remove all track hypotheses from this track.

Definition at line 1348 of file NcTrack.cxx.

◆ RemoveTrackHypothesis()

void NcTrack::RemoveTrackHypothesis ( NcTrack & t)
// Remove the specified track hypothesis from this track.

Definition at line 1329 of file NcTrack.cxx.

◆ Reset()

void NcTrack::Reset ( )
virtual
// Reset all variables to 0 and delete all auto-generated decay tracks.
// Notes :
// -------
// 1) The scale for the energy/momentum units will not be changed.
// 2) The HypCopy mode is maintained as it was set (by the user) before.

Definition at line 321 of file NcTrack.cxx.

◆ Set3Momentum()

void NcTrack::Set3Momentum ( Nc3Vector & p)
// Set the track parameters according to the 3-momentum p.
// In case the mass was not yet set, the energy is set to correspond to m=0.

Definition at line 401 of file NcTrack.cxx.

◆ Set4Momentum()

void NcTrack::Set4Momentum ( Nc4Vector & p)
// Set the track parameters according to the 4-momentum p.

Definition at line 415 of file NcTrack.cxx.

◆ SetBeginPoint()

void NcTrack::SetBeginPoint ( NcPosition & p)
// Store the position of the track begin-point.

Definition at line 1423 of file NcTrack.cxx.

◆ SetCharge()

void NcTrack::SetCharge ( Float_t q)
// Set the particle charge.

Definition at line 444 of file NcTrack.cxx.

◆ SetClosestPoint()

void NcTrack::SetClosestPoint ( NcPosition & p)
// Set position p as the point of closest approach w.r.t. some reference.

Definition at line 1794 of file NcTrack.cxx.

◆ SetEndPoint()

void NcTrack::SetEndPoint ( NcPosition & p)
// Store the position of the track end-point.

Definition at line 1446 of file NcTrack.cxx.

◆ SetEscale()

void NcTrack::SetEscale ( Float_t scale)
// Indicate the energy/momentum scale as used by the user.
// The convention is that scale=1 indicates values in units
// of GeV, GeV/c or GeV/c**2.
// So, in case one decides to store values in units of MeV, MeV/c or MeV/c**2
// the scale indicator should be set to scale=0.001.
//
// By default scale=1 is set in the constructor.

Definition at line 1817 of file NcTrack.cxx.

◆ SetFitDetails() [1/2]

void NcTrack::SetFitDetails ( TObject & obj)
inline

Definition at line 85 of file NcTrack.h.

◆ SetFitDetails() [2/2]

void NcTrack::SetFitDetails ( TObject * obj)
// Enter the object containing the fit details.
// In case an object to hold fit details was already present, this
// will be deleted first before the new one is stored.
// This means that SetFitDetails(0) can be used to just remove the
// existing object with the fit details.
// All objects derived from TObject can be entered in this way.
// Obvious candidates for objects containing detailed fit information
// are functions (e.g. TF1) and histograms (e.g. TH1F).
// However, using an NcDevice object provides a very versatile facility
// to store the parameters of various fit procedures.
// In such a case the NcDevice can be used to provide the various fit
// definitions and the corresponding fit parameters can be entered as
// separate NcSignal objects which are stored as hits to the NcDevice.
// In addition various functions and histograms can be linked to the
// various NcSignal instances
// The latter procedure is based on the original idea of Adam Bouchta.
//
// Note : The entered object is owned by this NcTrack instance.
// As such, a private copy of obj will be stored using the Clone()
// memberfunction.
// In case the entered object contains pointers to other objects,
// the user has to provide the appropriate Clone() memberfunction
// for the class to which the entered object belongs.
// An example can be seen from NcTrack::Clone().

Definition at line 1922 of file NcTrack.cxx.

◆ SetHypCopy()

void NcTrack::SetHypCopy ( Int_t flag)
// (De)activate the creation of private copies of the added hypothesis tracks.
//
// flag = 0 : No private copies are made; pointers of original tracks are stored.
// 1 : Private copies of the tracks are made and these pointers are stored.
//
// Notes :
// -------
// In case a private copy is made, this is performed via the Clone() memberfunction.
// All tracks have the default TObject::Clone() memberfunction.
// However, tracks generally contain an internal (signal) data structure
// which may include pointers to other objects. Therefore it is recommended to provide
// for all tracks a specific copy constructor and override the default Clone()
// memberfunction using this copy constructor.
//
// Once the storage contains pointer(s) to track(s) one cannot change the HypCopy mode anymore.
// To change the HypCopy mode for an existing NcTrack containing hypothesis tracks, one first
// has to invoke Reset().

Definition at line 1209 of file NcTrack.cxx.

◆ SetId()

void NcTrack::SetId ( Int_t id)
// Set a user defined unique identifier for this track.

Definition at line 1772 of file NcTrack.cxx.

◆ SetImpactPoint()

void NcTrack::SetImpactPoint ( NcPosition & p,
TString q )
// Store the position of the impact-point in the plane "q=0".
// Here q denotes one of the axes X, Y or Z.
// Note : The character to denote the axis may be entered in lower or
// in uppercase.

Definition at line 1698 of file NcTrack.cxx.

◆ SetMass() [1/2]

void NcTrack::SetMass ( )
// Set the mass and error to the value of the hypothesis with highest prob.

Definition at line 1500 of file NcTrack.cxx.

◆ SetMass() [2/2]

void NcTrack::SetMass ( Double_t m,
Double_t dm = 0 )
// Set the particle mass.
// The default value for the error dm is 0.

Definition at line 430 of file NcTrack.cxx.

◆ SetParentTrack()

void NcTrack::SetParentTrack ( NcTrack * t)
// Set pointer to the parent track.

Definition at line 1878 of file NcTrack.cxx.

◆ SetParticleCode()

void NcTrack::SetParticleCode ( Int_t code)
// Set the user defined particle id code (e.g. the PDF convention).

Definition at line 1856 of file NcTrack.cxx.

◆ SetProb()

void NcTrack::SetProb ( Double_t prob)
// Set hypothesis probability for this track.

Definition at line 1900 of file NcTrack.cxx.

◆ SetReferencePoint()

void NcTrack::SetReferencePoint ( NcPosition & p)
// Store the position of the track reference-point.
// The reference-point is the point on the track in which the
// 3-momentum vector components have been defined.
// This reference point is the preferable point to start track extrapolations
// etc... which are sensitive to the components of the 3-momentum vector.

Definition at line 1469 of file NcTrack.cxx.

◆ SetTimestamp()

void NcTrack::SetTimestamp ( NcTimestamp & t)
// Store the timestamp for this track.

Definition at line 1973 of file NcTrack.cxx.

◆ ShowSignals()

void NcTrack::ShowSignals ( const char * classname,
Int_t par = 0,
Int_t mode = 1,
TString f = "car",
TString u = "rad" )
// Show all the associated signals (derived) from the specified class.
//
// par = 0 ==> The signal itself has to be (derived) of the specified class
// 1 ==> The parent device of the signal has to be (derived) of the specified class
// 2 ==> The signal or the parent device has to be (derived) of the specified class
//
// mode = 0 ==> Only the number of signals will be provided.
// 1 ==> Full listing of all the signals will be provided.
// 2 ==> Same as mode=1 but with additional location info of the owning device.
//
// Default values are par=0 and mode=1.
//
// The arguments "f" and "u" have the same meaning as in the memberfunction Data().

Definition at line 1126 of file NcTrack.cxx.

Member Data Documentation

◆ fBegin

NcPositionObj* NcTrack::fBegin
protected

Definition at line 103 of file NcTrack.h.

◆ fClosest

NcPositionObj* NcTrack::fClosest
protected

Definition at line 110 of file NcTrack.h.

◆ fCode

Int_t NcTrack::fCode
protected

Definition at line 111 of file NcTrack.h.

◆ fDecays

TObjArray* NcTrack::fDecays
protected

Definition at line 100 of file NcTrack.h.

◆ fEnd

NcPositionObj* NcTrack::fEnd
protected

Definition at line 104 of file NcTrack.h.

◆ fEscale

Float_t NcTrack::fEscale
protected

Definition at line 116 of file NcTrack.h.

◆ fFit

TObject* NcTrack::fFit
protected

Definition at line 114 of file NcTrack.h.

◆ fHypCopy

Int_t NcTrack::fHypCopy
protected

Definition at line 118 of file NcTrack.h.

◆ fHypotheses

TObjArray* NcTrack::fHypotheses
protected

Definition at line 102 of file NcTrack.h.

◆ fImpactXY

NcPositionObj* NcTrack::fImpactXY
protected

Definition at line 106 of file NcTrack.h.

◆ fImpactXZ

NcPositionObj* NcTrack::fImpactXZ
protected

Definition at line 107 of file NcTrack.h.

◆ fImpactYZ

NcPositionObj* NcTrack::fImpactYZ
protected

Definition at line 108 of file NcTrack.h.

◆ fParent

NcTrack* NcTrack::fParent
protected

Definition at line 112 of file NcTrack.h.

◆ fProb

Float_t NcTrack::fProb
protected

Definition at line 113 of file NcTrack.h.

◆ fQ

Float_t NcTrack::fQ
protected

Definition at line 99 of file NcTrack.h.

◆ fRef

NcPositionObj* NcTrack::fRef
protected

Definition at line 105 of file NcTrack.h.

◆ fSignals

TObjArray* NcTrack::fSignals
protected

Definition at line 101 of file NcTrack.h.

◆ fTemp

TObjArray* NcTrack::fTemp
protected

! Temporary storage for exchange of object pointers

Definition at line 117 of file NcTrack.h.

◆ fTstamp

NcTimestamp* NcTrack::fTstamp
protected

Definition at line 115 of file NcTrack.h.

◆ fUserId

Int_t NcTrack::fUserId
protected

Definition at line 109 of file NcTrack.h.


The documentation for this class was generated from the following files: