37 if (fStrucNameFmt.HasParameter(
type)) {
67 GetNameCorrespondance(name.Data(), tmp);
124 if (itbit ==
"det") {
130 name +=
Form(itbit.
Data(), basename);
136 else if (itbit ==
"struc") {
141 if (el->
IsType(struc_typ))
break;
191 : fGeometry(
g), fCurrentStructures(
"KVGeoStrucElement", 50), fDetStrucNameCorrespList(nullptr),
192 fDetectorPaths(
kTRUE)
313 Warning(
"SetNameCorrespondanceList",
"File %s not found", listfile);
482 detector_volume = mother_vol;
489 return detector_volume;
688 while (!path.
End()) {
696 TString nums = struc_name(last_ + 1, struc_name.
Length() - last_ - 1);
840 else gtrack->
Draw(
"ogl");
843 else gtrack->
Draw(
"same");
ClassImp(KVPartitionList) void KVPartitionList
Initialisation.
char * Form(const char *fmt,...)
Visualise particle trajectories through array geometry.
void Draw(Option_t *option="")
Override Draw to add a TPolyMarker3D at the end of the track.
virtual Bool_t IsType(const Char_t *typ) const
virtual void SetNumber(UInt_t num)
const Char_t * GetType() const
static Bool_t SearchKVFile(const Char_t *name, TString &fullpath, const Char_t *kvsubdir="")
Base class container for multi-particle events.
KVNucleus * GetNextParticle(Option_t *opt="") const
Base class for propagation of particles through array geometry.
virtual void AddPointToCurrentTrack(Double_t, Double_t, Double_t)
void FormatStructureName(const Char_t *type, Int_t number, KVString &name)
Bool_t IsTracking() const
TGeoHMatrix fCurrentMatrix
current global transformation matrix
void PropagateEvent(KVEvent *, TVector3 *TheOrigin=0)
const TGeoHMatrix * GetCurrentMatrix() const
Returns pointer to internal copy of current global transformation matrix.
TClonesArray fCurrentStructures
list of current structures deduced from path
TString fCurrentPath
current full path to physical node
void FormatDetectorName(const Char_t *basename, KVString &name)
TGeoNode * fCurrentDetectorNode
node for current detector
void ExtractDetectorNameFromPath(KVString &)
KVUniqueNameList fDetectorPaths
correspondance between physical node and detector objects
TGeoNode * GetCurrentNode() const
TGeoNode * fMotherNode
mother node of current node
void SetTracking(Bool_t on=kTRUE)
KVGeoNavigator(TGeoManager *)
Constructor. Call with pointer to geometry.
KVNameValueList fStrucNameFmt
list of user-defined formats for structure names
void SetNameCorrespondanceList(const Char_t *)
TVector3 fExitPoint
position of particle on exiting volume
TEnv * fDetStrucNameCorrespList
list(s) of correspondance for renaming structures/detectors
void SetStopPropagation(Bool_t stop=kTRUE)
virtual void PropagateParticle(KVNucleus *, TVector3 *TheOrigin=0)
TGeoNode * GetCurrentDetectorNode() const
virtual void ParticleEntersNewVolume(KVNucleus *)
TString GetCurrentPath() const
TGeoVolume * GetCurrentVolume() const
Bool_t GetNameCorrespondance(const Char_t *, TString &)
Double_t fStepSize
distance to travel in volume
TGeoManager * fGeometry
geometry to navigate
Bool_t StopPropagation() const
TGeoNode * fCurrentNode
current node
virtual ~KVGeoNavigator()
Destructor.
TVector3 fEntryPoint
position of particle on entering volume
KVString fDetNameFmt
user-defined format for detector names
Int_t fCurStrucNumber
number of current parent structures
void ResetTrackID(Int_t id=0)
TGeoVolume * fCurrentVolume
current volume
void SetStructureNameFormat(const Char_t *type, const Char_t *fmt)
TGeoVolume * GetCurrentDetectorNameAndVolume(KVString &, Bool_t &)
void DrawTracks(KVNumberList *=nullptr)
Base class describing elements of array geometry.
void SetValue(const Char_t *name, value_type value)
Description of properties and kinematics of atomic nuclei.
Int_t GetZ() const
Return the number of proton / atomic number.
Strings used to represent a set of ranges of values.
Bool_t Contains(Int_t val) const
returns kTRUE if the value 'val' is contained in the ranges defined by the number list
TVector3 GetMomentum() const
KVNameValueList * GetParameters() const
virtual void SetOwner(Bool_t enable=kTRUE)
Extension of ROOT TString class which allows backwards compatibility with ROOT v3....
void Begin(TString delim) const
KVString Next(Bool_t strip_whitespace=kFALSE) const
virtual void Delete(Option_t *option="")
virtual void Clear(Option_t *option="")
TObject * ConstructedAt(Int_t idx)
virtual const char * GetValue(const char *name, const char *dflt) const
virtual Int_t ReadFile(const char *fname, EEnvLevel level)
TGeoHMatrix * GetCurrentMatrix() const
TGeoNode * GetCurrentNode() const
const Double_t * GetCurrentPoint() const
void SetCurrentDirection(Double_t *dir)
TGeoNode * GetMother(Int_t up=1) const
TGeoNode * FindNextBoundaryAndStep(Double_t stepmax=TGeoShape::Big(), Bool_t compsafe=kFALSE)
void SetCurrentPoint(Double_t *point)
TGeoNode * FindNode(Bool_t safe_start=kTRUE)
const char * GetPath() const
TGeoVolume * GetCurrentVolume() const
TObjArray * GetListOfTracks() const
TGeoVolume * GetMotherVolume() const
virtual const char * GetName() const
virtual void SetNameTitle(const char *name, const char *title)
void AbstractMethod(const char *method) const
virtual TObject * Clone(const char *newname="") const
virtual void Warning(const char *method, const char *msgfmt,...) const
Ssiz_t Last(char c) const
Bool_t BeginsWith(const char *s, ECaseCompare cmp=kExact) const
const char * Data() const
void Form(const char *fmt,...)
TString & Remove(EStripType s, char c)
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
Ssiz_t Index(const char *pat, Ssiz_t i=0, ECaseCompare cmp=kExact) const
void SetXYZ(Double_t x, Double_t y, Double_t z)
virtual const char * GetName() const
const long double g
masses