KaliVeda
Toolkit for HIC analysis
|
Associates two detectors placed one behind the other.
An assembly of one or more layers of detectors, usually any particle traversing the layer closest to the target will then traverse all subsequent layers of the telescope (if it has sufficient energy).
Telescope structures own their detectors, and will delete them when the telescope is deleted.
As detectors are added, we automatically set the KVDetectorNode information as they are supposed to be placed one behind the other.
In imported ROOT geometries (see KVGeoImport), you can trigger the creation of a KVTelescope structure by using a node name of the type
Definition at line 36 of file KVTelescope.h.
#include <KVTelescope.h>
Public Member Functions | |
KVTelescope () | |
virtual | ~KVTelescope () |
void | Add (KVBase *element) |
virtual void | AddToGeometry () |
Construct and position a TGeoVolume shape to represent this telescope in the current geometry. | |
virtual void | DetectParticle (KVNucleus *kvp, KVNameValueList *nvl=0) |
Float_t | GetDepth () const |
get depth of entire telescope in mm (sum of depths of detectors) | |
Float_t | GetDepth (Int_t ndet) const |
get depth of detector ndet(=1,2,...) in mm | |
Double_t | GetDepthInCM (Int_t ndet) const |
KVDetector * | GetDetector (Int_t n) const |
Int_t | GetDetectorRank (KVDetector *kvd) |
returns position (1=front, 2=next, etc.) detector in the telescope structure | |
virtual TGeoVolume * | GetGeoVolume () |
Create and return TGeoVolume representing detectors in this telescope. | |
Int_t | GetSize () const |
Double_t | GetTotalLengthInCM () const |
void | ResetDetectors () |
Reset Energy losses to be ready for the next event. | |
virtual void | SetAzimuthalAngle (Double_t ph) |
override KVPosition methods to apply to all detectors | |
virtual void | SetAzimuthalMinMax (Double_t min, Double_t max) |
virtual void | SetAzimuthalWidth (Double_t aw) |
void | SetDepth (UInt_t ndet, Float_t depth) |
set the depth of detector number ndet(=1,2,...) in mm. | |
virtual void | SetPolarAngle (Double_t th) |
virtual void | SetPolarMinMax (Double_t min, Double_t max) |
virtual void | SetPolarWidth (Double_t pw) |
Public Member Functions inherited from KVGeoStrucElement | |
KVGeoStrucElement () | |
Default constructor. | |
KVGeoStrucElement (const Char_t *name, const Char_t *type="") | |
Create a geometry structure element with given name and type. | |
virtual | ~KVGeoStrucElement () |
Destructor. | |
void | Clear (Option_t *opt="") |
Empty lists of detectors, daughter structures, and parent structures. | |
void | ClearDetectors (const Char_t *type="") |
void | ClearStructures (const Char_t *type="") |
virtual Bool_t | Contains (KVBase *name) const |
virtual Bool_t | Fired (Option_t *opt="any") const |
KVDetector * | GetDetector (const Char_t *name) const |
Return detector in this structure with given name. | |
KVDetector * | GetDetectorAny (const Char_t *name) |
KVDetector * | GetDetectorByType (const Char_t *type) const |
Return detector in this structure with given type. | |
KVSeqCollection * | GetDetectorNameList (const Char_t *name) const |
KVSeqCollection * | GetDetectors () |
const KVSeqCollection * | GetDetectors () const |
KVSeqCollection * | GetDetectorTypeList (const Char_t *type) const |
const KVSeqCollection * | GetParents () const |
KVGeoStrucElement * | GetParentStructure (const Char_t *type, const Char_t *name="") const |
KVGeoStrucElement * | GetStructure (const Char_t *name) const |
KVGeoStrucElement * | GetStructure (const Char_t *type, const Char_t *name) const |
Get structure with type and name. | |
KVGeoStrucElement * | GetStructure (const Char_t *type, Int_t num) const |
Get structure with type and number. | |
const KVSeqCollection * | GetStructures () const |
KVSeqCollection * | GetStructureTypeList (const Char_t *type) const |
bool | OwnsDaughters () const |
bool | OwnsDetectors () const |
void | Print (Option_t *option="") const |
virtual void | Remove (KVBase *) |
void | SetOwnsDaughters (Bool_t yes=kTRUE) |
void | SetOwnsDetectors (Bool_t yes=kTRUE) |
void | Sort (Bool_t order=kSortAscending) |
void | SortDetectors (Bool_t order=kSortAscending) |
void | SortStructures (Bool_t order=kSortAscending) |
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 | Copy (TObject &) const |
Make a copy of this object. | |
const Char_t * | GetLabel () const |
UInt_t | GetNumber () const |
UInt_t | GetNumberOfObjects () const |
virtual TObject * | GetObject () const |
virtual const Char_t * | GetType () 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 () |
KVBase & | operator= (const KVBase &) |
copy assignment operator | |
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 |
TObject * | Clone (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 |
TClass * | IsA () const override |
Bool_t | IsSortable () const override |
void | ls (Option_t *option="") const override |
TNamed & | operator= (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 TObject * | DrawClone (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 TObject * | FindObject (const char *name) const |
virtual TObject * | FindObject (const TObject *obj) const |
virtual Option_t * | GetDrawOption () const |
virtual const char * | GetIconName () const |
virtual char * | GetObjectInfo (Int_t px, Int_t py) const |
virtual Option_t * | GetOption () 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) |
void * | operator new (size_t sz) |
void * | operator new (size_t sz, void *vp) |
void * | operator new[] (size_t sz) |
void * | operator new[] (size_t sz, void *vp) |
TObject & | operator= (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 |
Public Member Functions inherited from KVPosition | |
KVPosition () | |
KVPosition (Double_t thmin, Double_t thmax, Double_t phmin, Double_t phmax, Double_t dist=0.0) | |
virtual | ~KVPosition () |
Double_t | GetAzimuthalWidth (Double_t phmin=-1., Double_t phimax=-1.) const |
void | GetCornerCoordinates (TVector3 *, Double_t=0) |
void | GetCornerCoordinatesInOwnFrame (TVector3 *, Double_t=0) |
virtual Double_t | GetCosTheta () const |
virtual TVector3 | GetDirection () |
virtual Double_t | GetDistance (void) const |
virtual TGeoHMatrix * | GetMatrix () const |
virtual Double_t | GetMisalignmentAngle () const |
virtual Double_t | GetPhi () const |
Double_t | GetPhiMax () const |
Double_t | GetPhiMin () const |
virtual void | GetRandomAngles (Double_t &th, Double_t &ph, Option_t *t="isotropic") |
virtual TVector3 | GetRandomDirection (Option_t *t="isotropic") |
TRotation | GetRandomIsotropicRotation () |
virtual TVector3 | GetRandomPointOnSurface () const |
virtual TGeoBBox * | GetShape () const |
virtual Double_t | GetSinTheta () const |
virtual Double_t | GetSolidAngle (void) const |
virtual Double_t | GetSurfaceArea (int npoints=100000) const |
virtual TVector3 | GetSurfaceCentre () const |
virtual TVector3 | GetSurfaceNormal () const |
virtual Double_t | GetTheta () const |
Double_t | GetThetaMax () const |
Double_t | GetThetaMin () const |
virtual TVector3 | GetVolumeCentre () const |
void | GetWidthsFromDimension (Double_t lin_dim) |
void | init () |
default initialiser | |
Bool_t | IsAlignedWith (KVPosition *pos) |
kTRUE if one of the two solid angle elements is completely contained within the other. | |
Bool_t | IsAzimuthallyWiderThan (KVPosition *pos) |
Bool_t | IsInPhiRange (const Double_t phi) |
Bool_t | IsInPolarRange (const Double_t theta) |
kTRUE if given angle theta is within the polar range of this solid angle element | |
Bool_t | IsOverlappingWith (KVPosition *pos) |
kTRUE if there is at least partial overlap between two solid angle elements | |
Bool_t | IsSmallerThan (KVPosition *pos) |
kTRUE if "this" is entirely contained within "pos" | |
Bool_t | ROOTGeo () const |
Returns kTRUE if ROOT geometry is used, kFALSE if not. | |
void | SetDistance (Double_t d) |
virtual void | SetMatrix (const TGeoHMatrix *) |
void | SetPhi (Double_t p) |
void | SetPhiMinMax (Double_t min, Double_t max) |
virtual void | SetShape (TGeoBBox *) |
void | SetTheta (Double_t t) |
Private Member Functions | |
void | init () |
Private Attributes | |
Float_t * | fDepth |
[fNdets] depth of each element starting from nearest target | |
Int_t | fNdets |
number of detectors in telescope | |
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_t * | FindFile (const Char_t *search, TString &wfil) |
static const Char_t * | GetBINDIRFilePath (const Char_t *namefile="") |
static const Char_t * | GetDATABASEFilePath () |
static const Char_t * | GetDATADIRFilePath (const Char_t *namefile="") |
static Bool_t | GetDataSetEnv (const Char_t *dataset, const Char_t *type, Bool_t defval) |
static const Char_t * | GetDataSetEnv (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_t * | GetETCDIRFilePath (const Char_t *namefile="") |
static const Char_t * | GetExampleFilePath (const Char_t *library, const Char_t *namefile) |
Return full path to example file for given library (="KVMultiDet", "BackTrack", etc.) | |
static const Char_t * | GetINCDIRFilePath (const Char_t *namefile="") |
static const Char_t * | GetKVBuildDate () |
Returns KaliVeda build date. | |
static const Char_t * | GetKVBuildDir () |
Returns top-level directory used for build. | |
static const Char_t * | GetKVBuildTime () |
Returns KaliVeda build time. | |
static const Char_t * | GetKVBuildType () |
Returns KaliVeda build type (cmake build: Release, Debug, RelWithDebInfo, ...) | |
static const Char_t * | GetKVBuildUser () |
Returns username of person who performed build. | |
static const Char_t * | GetKVSourceDir () |
Returns top-level directory of source tree used for build. | |
static const Char_t * | GetKVVersion () |
Returns KaliVeda version string. | |
static const Char_t * | GetLIBDIRFilePath (const Char_t *namefile="") |
static const Char_t * | GetListOfPlugins (const Char_t *base) |
static const Char_t * | GetListOfPluginURIs (const Char_t *base) |
static const Char_t * | GetPluginURI (const Char_t *base, const Char_t *plugin) |
static void | GetTempFileName (TString &base) |
static const Char_t * | GetTEMPLATEDIRFilePath (const Char_t *namefile="") |
static const Char_t * | GetWORKDIRFilePath (const Char_t *namefile="") |
static const Char_t * | gitBranch () |
Returns git branch of sources. | |
static const Char_t * | gitCommit () |
Returns last git commit of sources. | |
static void | InitEnvironment () |
static bool | is_gnuinstall () |
static Bool_t | IsThisAPlugin (const TString &uri, TString &base) |
static TPluginHandler * | LoadPlugin (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_t * | WorkingDirectory () |
Static Public Member Functions inherited from TNamed | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static const char * | DeclFileName () |
Static Public Member Functions inherited from TObject | |
static TClass * | Class () |
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 | |
KVTelescope::KVTelescope | ( | ) |
Definition at line 23 of file KVTelescope.cpp.
|
virtual |
Definition at line 50 of file KVTelescope.cpp.
Add a detector or a daughter structure to this telescope. For detectors we set up the KVDetectorNode (in front of - behind relationships) information.
Reimplemented from KVGeoStrucElement.
Definition at line 65 of file KVTelescope.cpp.
|
virtual |
Construct and position a TGeoVolume shape to represent this telescope in the current geometry.
Definition at line 296 of file KVTelescope.cpp.
|
virtual |
Simulates the passage of a charged particle through all detectors of the telescope, in the order in which they were added to it (corresponding to rank given by GetDetectorRank()). Begin_Html img src="http://indra.in2p3.fr/KaliVedaDoc/images/kvtelescope_detectparticle.gif"> End_Html It should be noted that (1) the small variations in effective detector thickness due to the particle's angle of incidence are not, for the moment, taken into account (2) the simplified description of detector geometry used here does not take into account trajectories such as that marked "b" shown in the figure. All particles impinging on the first detector of the telescope are assumed to pass through all subsequent detectors as in "c" (unless they stop in one of the detectors)
The KVNameValueList, if it's defined, allows to store the energy loss in the different detectors the particle goes through exemple : for a Silicon-CsI telescope named SI_CSI_0401 , you will obtain: { KVNucleus nn(6,12); nn.SetKE(1000); KVTelescope* tel = gMultiDetArray->GetTelescope("SI_CSI_0401"); KVNameValueList* nvl = new KVNameValueList; tel->DetectParticle(&nn,nvl); nvl->Print(); } Collection name='KVNameValueList', class='KVNameValueList', size=2 OBJ: TNamed SI_0401 8.934231 OBJ: TNamed CSI_0401 991.065769 The energy loss in each detector corresponds to those lost in active layer
Definition at line 112 of file KVTelescope.cpp.
Float_t KVTelescope::GetDepth | ( | ) | const |
get depth of entire telescope in mm (sum of depths of detectors)
Definition at line 246 of file KVTelescope.cpp.
get depth of detector ndet(=1,2,...) in mm
Definition at line 224 of file KVTelescope.cpp.
return depth inside telescope of detector number ndet in centimetres
Definition at line 74 of file KVTelescope.h.
|
inline |
returns the nth detector in the telescope structure
Definition at line 50 of file KVTelescope.h.
Int_t KVTelescope::GetDetectorRank | ( | KVDetector * | kvd | ) |
returns position (1=front, 2=next, etc.) detector in the telescope structure
Definition at line 159 of file KVTelescope.cpp.
|
virtual |
Create and return TGeoVolume representing detectors in this telescope.
Definition at line 266 of file KVTelescope.cpp.
|
inline |
returns number of detectors in telescope
Definition at line 62 of file KVTelescope.h.
Double_t KVTelescope::GetTotalLengthInCM | ( | ) | const |
calculate total length of telescope from entrance of first detector to backside of last detector
Definition at line 330 of file KVTelescope.cpp.
default initialisation. a KVList is created to hold telescope detectors. the telescope owns its detectors and will delete them when deleted itself.
Definition at line 35 of file KVTelescope.cpp.
void KVTelescope::ResetDetectors | ( | ) |
Reset Energy losses to be ready for the next event.
Definition at line 184 of file KVTelescope.cpp.
override KVPosition methods to apply to all detectors
Reimplemented from KVPosition.
Definition at line 85 of file KVTelescope.h.
Reimplemented from KVPosition.
Definition at line 110 of file KVTelescope.h.
Reimplemented from KVPosition.
Definition at line 105 of file KVTelescope.h.
set the depth of detector number ndet(=1,2,...) in mm.
Definition at line 196 of file KVTelescope.cpp.
Reimplemented from KVPosition.
Definition at line 90 of file KVTelescope.h.
Reimplemented from KVPosition.
Definition at line 100 of file KVTelescope.h.
Reimplemented from KVPosition.
Definition at line 95 of file KVTelescope.h.
|
private |
[fNdets] depth of each element starting from nearest target
Definition at line 40 of file KVTelescope.h.
|
private |
number of detectors in telescope
Definition at line 39 of file KVTelescope.h.