KaliVeda
Toolkit for HIC analysis
Loading...
Searching...
No Matches
KVGeoNavigator Class Reference

Detailed Description

Base class for propagation of particles through array geometry.

This is a base class for propagation of charged particles (KVNucleus) in events (KVEvent) through any TGeoManager ROOT geometry. Classes derived from this one must override the method

virtual void ParticleEntersNewVolume(KVNucleus *)
Description of properties and kinematics of atomic nuclei.
Definition KVNucleus.h:126

in order to do something useful every time that a particle of the event enters a new volume (absorber, detector, etc.) of the geometry.

Then to use your derived class do something like:

MyGeoNavigator nav( gGeoManager );
while( nevents-- ) {
nav.PropagateEvent( event );
}
See also
KVRangeTableGeoNavigator, KVGeoImport

Definition at line 46 of file KVGeoNavigator.h.

#include <KVGeoNavigator.h>

Inheritance diagram for KVGeoNavigator:

Classes

class  KVGeoDetectorPath
 Link physical path to node in geometry with detector. More...
 

Public Member Functions

 KVGeoNavigator (TGeoManager *)
 Constructor. Call with pointer to geometry.
 
virtual ~KVGeoNavigator ()
 Destructor.
 
void AbsorbDetectorPaths (KVGeoNavigator *GN)
 
virtual void AddPointToCurrentTrack (Double_t, Double_t, Double_t)
 
const TClonesArrayCurrentStructures () const
 
void DrawTracks (KVNumberList *=nullptr)
 
void ExtractDetectorNameFromPath (KVString &)
 
TGeoVolumeGetCurrentDetectorNameAndVolume (KVString &, Bool_t &)
 
TGeoNodeGetCurrentDetectorNode () const
 
const TGeoHMatrixGetCurrentMatrix () const
 Returns pointer to internal copy of current global transformation matrix.
 
TGeoNodeGetCurrentNode () const
 
TString GetCurrentPath () const
 
TGeoVolumeGetCurrentVolume () const
 
const Char_tGetDetectorNameFormat () const
 
const TVector3GetEntryPoint () const
 
const TVector3GetExitPoint () const
 
TGeoManagerGetGeometry () const
 
Bool_t GetNameCorrespondance (const Char_t *, TString &)
 
Double_t GetStepSize () const
 
Int_t GetTrackID () const
 
void IncrementTrackID ()
 
Bool_t IsTracking () const
 
virtual void ParticleEntersNewVolume (KVNucleus *)
 
void PrintDetectorPaths ()
 
void PropagateEvent (KVEvent *, TVector3 *TheOrigin=0)
 
virtual void PropagateParticle (KVNucleus *, TVector3 *TheOrigin=0)
 
void ResetTrackID (Int_t id=0)
 
void SetDetectorNameFormat (const Char_t *fmt)
 
void SetNameCorrespondanceList (const Char_t *)
 
void SetNameCorrespondanceList (const TEnv *)
 copy TEnv of name correspondances
 
void SetStopPropagation (Bool_t stop=kTRUE)
 
void SetStructureNameFormat (const Char_t *type, const Char_t *fmt)
 
void SetTracking (Bool_t on=kTRUE)
 
Bool_t StopPropagation () const
 
- Public Member Functions inherited from KVBase
 KVBase ()
 Default constructor.
 
 KVBase (const Char_t *name, const Char_t *title="")
 Ctor for object with given name and type.
 
 KVBase (const KVBase &)
 copy ctor
 
virtual ~KVBase ()
 
virtual void Clear (Option_t *opt="")
 Clear object properties : name, type/title, number, label.
 
virtual void Copy (TObject &) const
 Make a copy of this object.
 
const Char_tGetLabel () const
 
UInt_t GetNumber () const
 
UInt_t GetNumberOfObjects () const
 
virtual TObjectGetObject () const
 
virtual const Char_tGetType () const
 
Bool_t HasLabel () const
 
virtual Bool_t IsCalled (const Char_t *name) const
 
Bool_t IsLabelled (const Char_t *l) const
 
virtual Bool_t IsType (const Char_t *typ) const
 
virtual void List ()
 
KVBaseoperator= (const KVBase &)
 copy assignment operator
 
virtual void Print (Option_t *option="") const
 
Double_t ProtectedGetX (const TF1 *func, Double_t val, int &status, Double_t xmin=0.0, Double_t xmax=0.0) const
 
void SetLabel (const Char_t *lab)
 
virtual void SetNumber (UInt_t num)
 
virtual void SetType (const Char_t *str)
 
- Public Member Functions inherited from TNamed
 TNamed ()
 
 TNamed (const char *name, const char *title)
 
 TNamed (const TNamed &named)
 
 TNamed (const TString &name, const TString &title)
 
virtual ~TNamed ()
 
void Clear (Option_t *option="") override
 
TObjectClone (const char *newname="") const override
 
Int_t Compare (const TObject *obj) const override
 
void Copy (TObject &named) const override
 
virtual void FillBuffer (char *&buffer)
 
const char * GetName () const override
 
const char * GetTitle () const override
 
ULong_t Hash () const override
 
TClassIsA () const override
 
Bool_t IsSortable () const override
 
void ls (Option_t *option="") const override
 
TNamedoperator= (const TNamed &rhs)
 
void Print (Option_t *option="") const override
 
virtual void SetName (const char *name)
 
virtual void SetNameTitle (const char *name, const char *title)
 
virtual void SetTitle (const char *title="")
 
virtual Int_t Sizeof () const
 
void Streamer (TBuffer &) override
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
- Public Member Functions inherited from TObject
 TObject ()
 
 TObject (const TObject &object)
 
virtual ~TObject ()
 
void AbstractMethod (const char *method) const
 
virtual void AppendPad (Option_t *option="")
 
virtual void Browse (TBrowser *b)
 
ULong_t CheckedHash ()
 
virtual const char * ClassName () const
 
virtual void Delete (Option_t *option="")
 
virtual Int_t DistancetoPrimitive (Int_t px, Int_t py)
 
virtual void Draw (Option_t *option="")
 
virtual void DrawClass () const
 
virtual TObjectDrawClone (Option_t *option="") const
 
virtual void Dump () const
 
virtual void Error (const char *method, const char *msgfmt,...) const
 
virtual void Execute (const char *method, const char *params, Int_t *error=nullptr)
 
virtual void Execute (TMethod *method, TObjArray *params, Int_t *error=nullptr)
 
virtual void ExecuteEvent (Int_t event, Int_t px, Int_t py)
 
virtual void Fatal (const char *method, const char *msgfmt,...) const
 
virtual TObjectFindObject (const char *name) const
 
virtual TObjectFindObject (const TObject *obj) const
 
virtual Option_tGetDrawOption () const
 
virtual const char * GetIconName () const
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 
virtual Option_tGetOption () const
 
virtual UInt_t GetUniqueID () const
 
virtual Bool_t HandleTimer (TTimer *timer)
 
Bool_t HasInconsistentHash () const
 
virtual void Info (const char *method, const char *msgfmt,...) const
 
virtual Bool_t InheritsFrom (const char *classname) const
 
virtual Bool_t InheritsFrom (const TClass *cl) const
 
virtual void Inspect () const
 
void InvertBit (UInt_t f)
 
Bool_t IsDestructed () const
 
virtual Bool_t IsEqual (const TObject *obj) const
 
virtual Bool_t IsFolder () const
 
R__ALWAYS_INLINE Bool_t IsOnHeap () const
 
R__ALWAYS_INLINE Bool_t IsZombie () const
 
void MayNotUse (const char *method) const
 
virtual Bool_t Notify ()
 
void Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const
 
void operator delete (void *ptr)
 
void operator delete (void *ptr, void *vp)
 
void operator delete[] (void *ptr)
 
void operator delete[] (void *ptr, void *vp)
 
voidoperator new (size_t sz)
 
voidoperator new (size_t sz, void *vp)
 
voidoperator new[] (size_t sz)
 
voidoperator new[] (size_t sz, void *vp)
 
TObjectoperator= (const TObject &rhs)
 
virtual void Paint (Option_t *option="")
 
virtual void Pop ()
 
virtual Int_t Read (const char *name)
 
virtual void RecursiveRemove (TObject *obj)
 
void ResetBit (UInt_t f)
 
virtual void SaveAs (const char *filename="", Option_t *option="") const
 
virtual void SavePrimitive (std::ostream &out, Option_t *option="")
 
void SetBit (UInt_t f)
 
void SetBit (UInt_t f, Bool_t set)
 
virtual void SetDrawOption (Option_t *option="")
 
virtual void SetUniqueID (UInt_t uid)
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
virtual void SysError (const char *method, const char *msgfmt,...) const
 
R__ALWAYS_INLINE Bool_t TestBit (UInt_t f) const
 
Int_t TestBits (UInt_t f) const
 
virtual void UseCurrentStyle ()
 
virtual void Warning (const char *method, const char *msgfmt,...) const
 
virtual Int_t Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0)
 
virtual Int_t Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0) const
 

Private Member Functions

void FormatDetectorName (const Char_t *basename, KVString &name)
 
void FormatStructureName (const Char_t *type, Int_t number, KVString &name)
 
KVDetectorGetDetectorFromPath (const Char_t *p)
 

Private Attributes

TGeoNodefCurrentDetectorNode
 node for current detector
 
TGeoHMatrix fCurrentMatrix
 current global transformation matrix
 
TGeoNodefCurrentNode
 current node
 
TString fCurrentPath
 current full path to physical node
 
TClonesArray fCurrentStructures
 list of current structures deduced from path
 
TGeoVolumefCurrentVolume
 current volume
 
Int_t fCurStrucNumber
 number of current parent structures
 
KVUniqueNameList fDetectorPaths
 correspondance between physical node and detector objects
 
KVString fDetNameFmt
 user-defined format for detector names
 
TEnvfDetStrucNameCorrespList
 list(s) of correspondance for renaming structures/detectors
 
TVector3 fEntryPoint
 position of particle on entering volume
 
TVector3 fExitPoint
 position of particle on exiting volume
 
TGeoManagerfGeometry
 geometry to navigate
 
TGeoNodefMotherNode
 mother node of current node
 
Double_t fStepSize
 distance to travel in volume
 
Bool_t fStopPropagation
 flag set by user when particle propagation should stop
 
KVNameValueList fStrucNameFmt
 list of user-defined formats for structure names
 
Int_t fTrackID
 track counter
 
Bool_t fTracking
 set to true when tracking particles
 

Additional Inherited Members

- Public Types inherited from KVBase
enum  EKaliVedaBits { kIsKaliVedaObject = BIT(23) }
 
- Public Types inherited from TObject
enum  EDeprecatedStatusBits
 
enum  EStatusBits
 
- Static Public Member Functions inherited from KVBase
static Bool_t AreEqual (Double_t x, Double_t y, Long64_t maxdif=1)
 Comparison between two 64-bit floating-point values.
 
static void BackupFileWithDate (const Char_t *path)
 
static void CombineFiles (const Char_t *file1, const Char_t *file2, const Char_t *newfilename, Bool_t keep=kTRUE)
 
static void Deprecated (const char *method, const char *advice)
 
static Bool_t FindClassSourceFiles (const Char_t *class_name, KVString &imp_file, KVString &dec_file, const Char_t *dir_name=".")
 
static Bool_t FindExecutable (TString &exec, const Char_t *path="$(PATH)")
 
static const Char_tFindFile (const Char_t *search, TString &wfil)
 
static const Char_tGetBINDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetDATABASEFilePath ()
 
static const Char_tGetDATADIRFilePath (const Char_t *namefile="")
 
static Bool_t GetDataSetEnv (const Char_t *dataset, const Char_t *type, Bool_t defval)
 
static const Char_tGetDataSetEnv (const Char_t *dataset, const Char_t *type, const Char_t *defval)
 
static Double_t GetDataSetEnv (const Char_t *dataset, const Char_t *type, Double_t defval)
 
static const Char_tGetETCDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetExampleFilePath (const Char_t *library, const Char_t *namefile)
 Return full path to example file for given library (="KVMultiDet", "BackTrack", etc.)
 
static const Char_tGetINCDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetKVBuildDate ()
 Returns KaliVeda build date.
 
static const Char_tGetKVBuildDir ()
 Returns top-level directory used for build.
 
static const Char_tGetKVBuildTime ()
 Returns KaliVeda build time.
 
static const Char_tGetKVBuildType ()
 Returns KaliVeda build type (cmake build: Release, Debug, RelWithDebInfo, ...)
 
static const Char_tGetKVBuildUser ()
 Returns username of person who performed build.
 
static const Char_tGetKVSourceDir ()
 Returns top-level directory of source tree used for build.
 
static const Char_tGetKVVersion ()
 Returns KaliVeda version string.
 
static const Char_tGetLIBDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetListOfPlugins (const Char_t *base)
 
static const Char_tGetListOfPluginURIs (const Char_t *base)
 
static const Char_tGetPluginURI (const Char_t *base, const Char_t *plugin)
 
static void GetTempFileName (TString &base)
 
static const Char_tGetTEMPLATEDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetWORKDIRFilePath (const Char_t *namefile="")
 
static const Char_tgitBranch ()
 Returns git branch of sources.
 
static const Char_tgitCommit ()
 Returns last git commit of sources.
 
static void InitEnvironment ()
 
static bool is_gnuinstall ()
 
static Bool_t IsThisAPlugin (const TString &uri, TString &base)
 
static TPluginHandlerLoadPlugin (const Char_t *base, const Char_t *uri="0")
 
static Bool_t OpenContextMenu (const char *method, TObject *obj, const char *alt_method_name="")
 
static void OpenTempFile (TString &base, std::ofstream &fp)
 
static void PrintSplashScreen ()
 Prints welcome message and infos on version etc.
 
static Bool_t SearchAndOpenKVFile (const Char_t *name, KVSQLite::database &dbfile, const Char_t *kvsubdir="")
 
static Bool_t SearchAndOpenKVFile (const Char_t *name, std::ifstream &file, const Char_t *kvsubdir="", KVLockfile *locks=0)
 
static Bool_t SearchAndOpenKVFile (const Char_t *name, std::ofstream &file, const Char_t *kvsubdir="", KVLockfile *locks=0)
 
static Bool_t SearchKVFile (const Char_t *name, TString &fullpath, const Char_t *kvsubdir="")
 
static const Char_tWorkingDirectory ()
 
- Static Public Member Functions inherited from TNamed
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
- Static Public Member Functions inherited from TObject
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
static Longptr_t GetDtorOnly ()
 
static Bool_t GetObjectStat ()
 
static void SetDtorOnly (void *obj)
 
static void SetObjectStat (Bool_t stat)
 
- Public Attributes inherited from TObject
 kBitMask
 
 kCanDelete
 
 kCannotPick
 
 kHasUUID
 
 kInconsistent
 
 kInvalidObject
 
 kIsOnHeap
 
 kIsReferenced
 
 kMustCleanup
 
 kNoContextMenu
 
 kNotDeleted
 
 kObjInCanvas
 
 kOverwrite
 
 kSingleKey
 
 kWriteDelete
 
 kZombie
 
- Protected Member Functions inherited from TObject
virtual void DoError (int level, const char *location, const char *fmt, va_list va) const
 
void MakeZombie ()
 
- Protected Attributes inherited from TNamed
TString fName
 
TString fTitle
 
- Protected Attributes inherited from TObject
 kOnlyPrepStep
 

Constructor & Destructor Documentation

◆ KVGeoNavigator()

KVGeoNavigator::KVGeoNavigator ( TGeoManager g)

Constructor. Call with pointer to geometry.

Definition at line 176 of file KVGeoNavigator.cpp.

◆ ~KVGeoNavigator()

KVGeoNavigator::~KVGeoNavigator ( )
virtual

Destructor.

Definition at line 190 of file KVGeoNavigator.cpp.

Member Function Documentation

◆ AbsorbDetectorPaths()

void KVGeoNavigator::AbsorbDetectorPaths ( KVGeoNavigator GN)
inline

Add all contents of GN->fDetectorPaths to our list.

Remove ownership of these paths from GN - our dtor will delete them

Definition at line 208 of file KVGeoNavigator.h.

◆ AddPointToCurrentTrack()

virtual void KVGeoNavigator::AddPointToCurrentTrack ( Double_t  ,
Double_t  ,
Double_t   
)
inlinevirtual

Reimplemented in KVRangeTableGeoNavigator.

Definition at line 205 of file KVGeoNavigator.h.

◆ CurrentStructures()

const TClonesArray & KVGeoNavigator::CurrentStructures ( ) const
inline

Definition at line 201 of file KVGeoNavigator.h.

◆ DrawTracks()

void KVGeoNavigator::DrawTracks ( KVNumberList zlist = nullptr)

When using ROOT geometry, after calling PropagateEvent() to simulate detection of some particles, you can call this method to overlay the tracks of the corresponding particles on the 3D geometry of the array

If KVNumberList pointer is given, use it to limit Z of drawn tracks

Definition at line 806 of file KVGeoNavigator.cpp.

◆ ExtractDetectorNameFromPath()

void KVGeoNavigator::ExtractDetectorNameFromPath ( KVString detname)

We analyse the current path in order to construct the full (unique) name of the detector, i.e. if the current path is

/TOP_1/STRUCT_BLOCK_2/CHIO_WALL_1/DET_CHIO_2/WINDOW_1

then the default name of the detector will be BLOCK_2_CHIO_2 (see below to override this).

This method also fills the fCurrentStructures array with elements deduced from the path, e.g. if the path is

/TOP_1/STRUCT_BLOCK_2/STRUCT_QUARTET_1/DET_SI1-T1
#define T1

then by default

fCurrentStructures[0] = KVGeoStrucElement(name = "BLOCK_2", type = "BLOCK", number = 2)
fCurrentStructures[1] = KVGeoStrucElement(name = "QUARTET_1", type = "QUARTET", number = 1)
TClonesArray fCurrentStructures
list of current structures deduced from path
Base class describing elements of array geometry.

and the default name of the detector will be BLOCK_2_QUARTET_1_SI1-T1

STRUCTURE & DETECTOR NAME FORMATTING

Structures

The default names for structures are taken from the node name by stripping off the STRUCT_ prefix. It is assumed that the remaining string is of the form

"[structure type]_[structure number]"

(the structure number is always taken after the last occurence of '_' in the node name). This is the name that will be used by default for the structure.

However, this format can be change by calling method

SetStructureNameFormat("[structure type]", "[format]")
void SetStructureNameFormat(const Char_t *type, const Char_t *fmt)

where format can contain any of the following tokens:

$type$ - will be replaced by the structure type name
$type%[fmt]$ - will be replaced by the structure type name using given format
$number$ - will be replaced by the structure number
$number%[fmt]$ - will be replaced by the structure number using given format
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t format
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
char name[80]

Example: to change the name of the block in the previous example to "B-02":

SetStructureNameFormat("BLOCK", "$type%.1s$-$number%02d$")

Detectors

The default base names for detectors are taken from the node name by stripping off the DET_ prefix. In order to ensure that all detectors have unique names, by default we prefix the names of the parent structures to the basename in order to generate the full name of the detector:

[struc1-name]_[struc2-name]_..._[detector-basename]
#define _(A, B)

However, this format can be changed by calling method

void SetDetectorNameFormat(const Char_t *fmt)

where format can contain any of the following tokens:

$det:name$ - will be replaced by the detector basename
$struc:[type]:name$ - will be replaced by the name of the parent structure of given type
$struc:[type]:type$ - will be replaced by the type of the parent structure of given type
$struc:[type]:number$ - will be replaced by the number of the parent structure of given type

plus additional formatting information as for SetStructureNameFormat() (see above).

Example: to change the name of the SI1-T1 detector in the previous example to SI1-T1-Q1-B2:

SetDetectorNameFormat("$det:name$-Q$struc:QUARTET:number$-B$struc:BLOCK:number$");

Or if you also change the format of the structure names:

SetStructureNameFormat("BLOCK", "$type%.1s$$number$");
SetStructureNameFormat("QUARTET", "$type%.1s$$number$");
SetDetectorNameFormat("$det:name$-$struc:QUARTET:name$-$struc:BLOCK:name$");

Definition at line 579 of file KVGeoNavigator.cpp.

◆ FormatDetectorName()

void KVGeoNavigator::FormatDetectorName ( const Char_t basename,
KVString name 
)
private

If a format for naming detectors has been defined by a call to SetDetectorNameFormat(const Char_t *), we use it to format the name in the TString.

If no format was given we prefix the names of the parent structures to the basename in order to generate the full name of the detector:

[struc1-name]_[struc2-name]_..._[detector-basename]

If SetNameCorrespondanceList(const Char_t *) was used, we use it to translate any names resulting from this formatting to their final value.

Definition at line 82 of file KVGeoNavigator.cpp.

◆ FormatStructureName()

void KVGeoNavigator::FormatStructureName ( const Char_t type,
Int_t  number,
KVString name 
)
private

If a format for naming structures of given type has been defined by a call to SetStructureNameFormat(const Char_t *, const Char_t *), we use it to format the name in the TString.

If no format was given, we use by default "[type]_[number]".

If SetNameCorrespondanceList(const Char_t *) was used, we use it to translate any names resulting from this formatting to their final value.

Definition at line 26 of file KVGeoNavigator.cpp.

◆ GetCurrentDetectorNameAndVolume()

TGeoVolume * KVGeoNavigator::GetCurrentDetectorNameAndVolume ( KVString detector_name,
Bool_t multilayer 
)

Returns the name of the current detector (if we are inside a detector) and whether it is a multilayer or simple detector.

Returns nullptr if we are not inside a detector volume.

N.B. the returned volume corresponds to the whole detector (even if it has several layers). For a multilayer detector, GetCurrentVolume() returns the volume for the current layer.

See ExtractDetectorNameFromPath() for details on detector name formatting.

Definition at line 437 of file KVGeoNavigator.cpp.

◆ GetCurrentDetectorNode()

TGeoNode * KVGeoNavigator::GetCurrentDetectorNode ( ) const

Returns the node corresponding to the current detector volume

N.B. the returned node corresponds to the whole detector (even if it has several layers).

Definition at line 483 of file KVGeoNavigator.cpp.

◆ GetCurrentMatrix()

const TGeoHMatrix * KVGeoNavigator::GetCurrentMatrix ( ) const

Returns pointer to internal copy of current global transformation matrix.

Definition at line 418 of file KVGeoNavigator.cpp.

◆ GetCurrentNode()

TGeoNode * KVGeoNavigator::GetCurrentNode ( ) const
inline

Definition at line 167 of file KVGeoNavigator.h.

◆ GetCurrentPath()

TString KVGeoNavigator::GetCurrentPath ( ) const
inline

Definition at line 186 of file KVGeoNavigator.h.

◆ GetCurrentVolume()

TGeoVolume * KVGeoNavigator::GetCurrentVolume ( ) const
inline

Definition at line 163 of file KVGeoNavigator.h.

◆ GetDetectorFromPath()

KVDetector * KVGeoNavigator::GetDetectorFromPath ( const Char_t p)
inlineprivate

Fast look-up of detector from full path to physical node This can only be used AFTER a KVGeoImport of the geometry

Definition at line 90 of file KVGeoNavigator.h.

◆ GetDetectorNameFormat()

const Char_t * KVGeoNavigator::GetDetectorNameFormat ( ) const
inline

Definition at line 147 of file KVGeoNavigator.h.

◆ GetEntryPoint()

const TVector3 & KVGeoNavigator::GetEntryPoint ( ) const
inline

Definition at line 176 of file KVGeoNavigator.h.

◆ GetExitPoint()

const TVector3 & KVGeoNavigator::GetExitPoint ( ) const
inline

Definition at line 180 of file KVGeoNavigator.h.

◆ GetGeometry()

TGeoManager * KVGeoNavigator::GetGeometry ( ) const
inline

Definition at line 159 of file KVGeoNavigator.h.

◆ GetNameCorrespondance()

Bool_t KVGeoNavigator::GetNameCorrespondance ( const Char_t name,
TString tran 
)

IF name correspondance lists have been set with SetNameCorrespondanceList(const Char_t*), look up new name for 'name'.

If found, returns kTRUE and 'tran' is the 'translated' name, otherwise returns kFALSE and tran=name.

Definition at line 326 of file KVGeoNavigator.cpp.

◆ GetStepSize()

Double_t KVGeoNavigator::GetStepSize ( ) const
inline

Definition at line 172 of file KVGeoNavigator.h.

◆ GetTrackID()

Int_t KVGeoNavigator::GetTrackID ( ) const
inline

Definition at line 106 of file KVGeoNavigator.h.

◆ IncrementTrackID()

void KVGeoNavigator::IncrementTrackID ( )
inline

Definition at line 110 of file KVGeoNavigator.h.

◆ IsTracking()

Bool_t KVGeoNavigator::IsTracking ( ) const
inline

Definition at line 118 of file KVGeoNavigator.h.

◆ ParticleEntersNewVolume()

void KVGeoNavigator::ParticleEntersNewVolume ( KVNucleus )
virtual

User-overridable method, to be redefined in child classes.

This method is called every time that a propagated particle enters a new volume in the geometry. The user then has access to the following informations:

If required, propagation of the particle can be stopped at any time by calling SetStopPropagation()

Reimplemented in KVGeoImport, and KVRangeTableGeoNavigator.

Definition at line 390 of file KVGeoNavigator.cpp.

◆ PrintDetectorPaths()

void KVGeoNavigator::PrintDetectorPaths ( )
inline

Definition at line 217 of file KVGeoNavigator.h.

◆ PropagateEvent()

void KVGeoNavigator::PropagateEvent ( KVEvent TheEvent,
TVector3 TheOrigin = 0 
)

Propagate a set of particles through the geometry.

By default, propagates particles from (0,0,0) (world coordinates), unless a different origin is given.

Definition at line 356 of file KVGeoNavigator.cpp.

◆ PropagateParticle()

void KVGeoNavigator::PropagateParticle ( KVNucleus part,
TVector3 TheOrigin = 0 
)
virtual

Propagate a particle through the geometry in the direction of its momentum, until we reach the boundary of the geometry, or until fStopPropagation is set to kFALSE.

Propagation will also stop if we encounter a volume whose name begins with "DEADZONE" Define point of origin of particles

Reimplemented in KVRangeTableGeoNavigator, and KVGeoImport.

Definition at line 703 of file KVGeoNavigator.cpp.

◆ ResetTrackID()

void KVGeoNavigator::ResetTrackID ( Int_t  id = 0)
inline

Definition at line 102 of file KVGeoNavigator.h.

◆ SetDetectorNameFormat()

void KVGeoNavigator::SetDetectorNameFormat ( const Char_t fmt)
inline

The default base names for detectors are taken from the node name by stripping off the DET_ prefix. In order to ensure that all detectors have unique names, by default we prefix the names of the parent structures to the basename in order to generate the full name of the detector:

[struc1-name]_[struc2-name]_..._[detector-basename]

However, this format can be changed by calling method

where format can contain any of the following tokens:

$det:name$ - will be replaced by the detector basename
$struc:[type]:name$ - will be replaced by the name of the parent structure of given type
$struc:[type]:type$ - will be replaced by the type of the parent structure of given type
$struc:[type]:number$ - will be replaced by the number of the parent structure of given type

plus additional formatting information as for SetStructureNameFormat()

Definition at line 124 of file KVGeoNavigator.h.

◆ SetNameCorrespondanceList() [1/2]

void KVGeoNavigator::SetNameCorrespondanceList ( const Char_t listfile)

Allows to provide a list of "translations" for naming structures/detectors "listfile" must be a file in TEnv format, e.g.

SI_06_1_A1: SI_0601
SI_06_1_A2: SI_0602
SI_06_1_B1: SI_0701
SI_06_1_B2: SI_0702
SI_06_2_A1: SI_0603
SI_06_2_A2: SI_0604
SI_06_2_B1: SI_0703

The name before ':' is the name of the detector or structure as deduced from the geometry, including any formatting due to SetStructureNameFormat() or SetDetectorNameFormat().

The name after ':' is the name that will be used 'externally', e.g. by a KVMultiDetArray created from the geometry using KVGeoImport.

Several lists can be combined by calling this method several times.

"listfile" can be an absolute path name; if not, we look for it in $KVROOT/KVFiles/data, or in $HOME, or (finally) in $PWD.

Definition at line 270 of file KVGeoNavigator.cpp.

◆ SetNameCorrespondanceList() [2/2]

void KVGeoNavigator::SetNameCorrespondanceList ( const TEnv list)

copy TEnv of name correspondances

Definition at line 311 of file KVGeoNavigator.cpp.

◆ SetStopPropagation()

void KVGeoNavigator::SetStopPropagation ( Bool_t  stop = kTRUE)
inline

Definition at line 195 of file KVGeoNavigator.h.

◆ SetStructureNameFormat()

void KVGeoNavigator::SetStructureNameFormat ( const Char_t type,
const Char_t fmt 
)

The default names for structures are taken from the node name by stripping off the STRUCT_ prefix. It is assumed that the remaining string is of the form

"[structure type]_[structure number]"

This is the name that will be used by default for the structure.

However, this format can be change by calling this method

SetStructureNameFormat("[structure type]", "[format]")

where format can contain any of the following tokens:

$type$ - will be replaced by the structure type name
$type%[fmt]$ - will be replaced by the structure type name using given format
$number$ - will be replaced by the structure number
$number%[fmt]$ - will be replaced by the structure number using given format

This is the name that will be used by default for the structure.

Definition at line 219 of file KVGeoNavigator.cpp.

◆ SetTracking()

void KVGeoNavigator::SetTracking ( Bool_t  on = kTRUE)
inline

Definition at line 114 of file KVGeoNavigator.h.

◆ StopPropagation()

Bool_t KVGeoNavigator::StopPropagation ( ) const
inline

Definition at line 191 of file KVGeoNavigator.h.

Member Data Documentation

◆ fCurrentDetectorNode

TGeoNode* KVGeoNavigator::fCurrentDetectorNode
private

node for current detector

Definition at line 51 of file KVGeoNavigator.h.

◆ fCurrentMatrix

TGeoHMatrix KVGeoNavigator::fCurrentMatrix
private

current global transformation matrix

Definition at line 52 of file KVGeoNavigator.h.

◆ fCurrentNode

TGeoNode* KVGeoNavigator::fCurrentNode
private

current node

Definition at line 50 of file KVGeoNavigator.h.

◆ fCurrentPath

TString KVGeoNavigator::fCurrentPath
private

current full path to physical node

Definition at line 53 of file KVGeoNavigator.h.

◆ fCurrentStructures

TClonesArray KVGeoNavigator::fCurrentStructures
private

list of current structures deduced from path

Definition at line 54 of file KVGeoNavigator.h.

◆ fCurrentVolume

TGeoVolume* KVGeoNavigator::fCurrentVolume
private

current volume

Definition at line 49 of file KVGeoNavigator.h.

◆ fCurStrucNumber

Int_t KVGeoNavigator::fCurStrucNumber
private

number of current parent structures

Definition at line 55 of file KVGeoNavigator.h.

◆ fDetectorPaths

KVUniqueNameList KVGeoNavigator::fDetectorPaths
private

correspondance between physical node and detector objects

Definition at line 89 of file KVGeoNavigator.h.

◆ fDetNameFmt

KVString KVGeoNavigator::fDetNameFmt
private

user-defined format for detector names

Definition at line 65 of file KVGeoNavigator.h.

◆ fDetStrucNameCorrespList

TEnv* KVGeoNavigator::fDetStrucNameCorrespList
private

list(s) of correspondance for renaming structures/detectors

Definition at line 66 of file KVGeoNavigator.h.

◆ fEntryPoint

TVector3 KVGeoNavigator::fEntryPoint
private

position of particle on entering volume

Definition at line 58 of file KVGeoNavigator.h.

◆ fExitPoint

TVector3 KVGeoNavigator::fExitPoint
private

position of particle on exiting volume

Definition at line 59 of file KVGeoNavigator.h.

◆ fGeometry

TGeoManager* KVGeoNavigator::fGeometry
private

geometry to navigate

Definition at line 48 of file KVGeoNavigator.h.

◆ fMotherNode

TGeoNode* KVGeoNavigator::fMotherNode
private

mother node of current node

Definition at line 56 of file KVGeoNavigator.h.

◆ fStepSize

Double_t KVGeoNavigator::fStepSize
private

distance to travel in volume

Definition at line 57 of file KVGeoNavigator.h.

◆ fStopPropagation

Bool_t KVGeoNavigator::fStopPropagation
private

flag set by user when particle propagation should stop

Definition at line 60 of file KVGeoNavigator.h.

◆ fStrucNameFmt

KVNameValueList KVGeoNavigator::fStrucNameFmt
private

list of user-defined formats for structure names

Definition at line 64 of file KVGeoNavigator.h.

◆ fTrackID

Int_t KVGeoNavigator::fTrackID
private

track counter

Definition at line 61 of file KVGeoNavigator.h.

◆ fTracking

Bool_t KVGeoNavigator::fTracking
private

set to true when tracking particles

Definition at line 62 of file KVGeoNavigator.h.