KaliVeda
Toolkit for HIC analysis
|
Base class for azimuthally-symmetric multidetector arrays (obsolete)
Definition at line 34 of file KVASMultiDetArray.h.
#include <KVASMultiDetArray.h>
Private Member Functions | |
virtual void | AddToGroups (KVTelescope *kt1, KVTelescope *kt2) |
KVNameValueList * | DetectParticle_KV (KVNucleus *part) |
void | GetIDTelescopesForGroup (KVGroup *grp, TCollection *tel_list) |
void | MakeListOfDetectors () |
virtual void | MergeGroups (KVASGroup *kg1, KVASGroup *kg2) |
virtual void | set_up_single_stage_telescope (KVDetector *det, KVIDTelescope *idt, TCollection *l) |
Set up detector in single-stage identification telescope and add to idtels. | |
virtual void | set_up_telescope (KVDetector *de, KVDetector *e, KVIDTelescope *idt, TCollection *l) |
Set up detectors in de-e identification telescope and add to idtels. | |
void | SetGroups (KVLayer *, KVLayer *) |
Update the list of groups in the detector array by comparing all telescopes in two layers. | |
void | UpdateGroupsInRings (KVRing *r1, KVRing *r2) |
Calculate groups by comparing two rings in different layers. | |
Private Attributes | |
UInt_t | fCurrentLayerNumber |
used to number layers | |
UInt_t | fGr |
used to number groups | |
Additional Inherited Members | |
Public Types inherited from KVMultiDetArray | |
enum | EFilterType { kFilterType_Geo , kFilterType_GeoThresh , kFilterType_Full } |
filter types. values of fFilterType More... | |
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 KVMultiDetArray | |
static TGeoHMatrix * | GetVolumePositioningMatrix (Double_t distance, Double_t theta, Double_t phi, TGeoTranslation *postTrans=nullptr) |
static KVMultiDetArray * | MakeMultiDetector (const Char_t *dataset_name, Int_t run=-1, TString classname="KVMultiDetArray") |
static void | SetMakeMultiDetectorPhysicsParametersOnly (Bool_t on=kTRUE) |
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 | |
KVASMultiDetArray::KVASMultiDetArray | ( | ) |
Definition at line 56 of file KVASMultiDetArray.cpp.
|
virtual |
destroy (delete) the MDA and all the associated structure, detectors etc.
Definition at line 76 of file KVASMultiDetArray.cpp.
|
privatevirtual |
The two telescopes are in angular overlap. a) if neither are in groups already, create a new group to which they both belong b) if one of them is in a group already, add the orphan telescope to it c) if both are in groups already, merge the two groups
Definition at line 357 of file KVASMultiDetArray.cpp.
|
virtual |
Reimplemented from KVMultiDetArray.
Definition at line 683 of file KVASMultiDetArray.cpp.
void KVASMultiDetArray::AnalyseTelescopes | ( | KVReconstructedEvent * | event, |
TList * | kvtl | ||
) |
Definition at line 750 of file KVASMultiDetArray.cpp.
void KVASMultiDetArray::CalculateGroupsFromGeometry | ( | ) |
Definition at line 294 of file KVASMultiDetArray.cpp.
|
inlinevirtual |
Simulate detection of a charged particle by the array. The actual method called depends on the value of fROOTGeometry: fROOTGeometry=kTRUE: calls DetectParticle_TGEO, particle propagation performed using TGeo description of array and algorithms from ROOT TGeo package fROOTGeometry=kFALSE: calls DetectParticle_KV, uses simple KaliVeda geometry to simulate propagation of particle
The default value is given in .kvrootrc by variable KVASMultiDetArray.FilterUsesROOTGeometry
Reimplemented from KVMultiDetArray.
Definition at line 55 of file KVASMultiDetArray.h.
|
private |
Simulate detection of a single particle (nucleus) by multidetector array. We look for the group in the array that the particle will hit
If a group is found the detection of this particle by the different members of the group is simulated. The detectors concerned have their fEloss members set to the energy lost by the particle when it crosses them.
Returns a list (KVNameValueList pointer) of the crossed detectors with their name and energy loss if particle hits detector in array, 0 if not (i.e. particle in beam pipe or dead zone of the multidetector) INFO User has to delete the KVNameValueList after its use
find group in array hit by particle
Definition at line 480 of file KVASMultiDetArray.cpp.
return pointer to group in array according to given polar coordinates
Reimplemented from KVMultiDetArray.
Definition at line 511 of file KVASMultiDetArray.cpp.
|
privatevirtual |
Identify all the ways of identifying particles possible from the detectors in the group, create the appropriate KVIDTelescope objects and add them to the list pointed to by tel_list. USER'S RESPONSIBILITY TO DELETE CONTENTS OF LIST!!
Starting from each detector in the "detector layer" furthest from the target, we build ID telescopes from all pairs of aligned detectors. We then continue up through the layers of the group
For each pair of detectors, it is KVMultiDetArray::GetIDTelescopes which determines which KVIDTelescope class to use (specialise this method in KVMultiDetArray child classes). It must also make sure that each IDTelescope is added only once (i.e. check it is not already in the list).
Reimplemented from KVMultiDetArray.
Definition at line 594 of file KVASMultiDetArray.cpp.
find layer with name
Definition at line 69 of file KVASMultiDetArray.h.
find layer with number
Definition at line 74 of file KVASMultiDetArray.h.
find named ring in named layer
Definition at line 229 of file KVASMultiDetArray.cpp.
find numbered ring in named layer
Definition at line 246 of file KVASMultiDetArray.cpp.
find named ring in numbered layer
Definition at line 262 of file KVASMultiDetArray.cpp.
find numbered ring in numbered layer
Definition at line 278 of file KVASMultiDetArray.cpp.
return the solid angle (msr) of all the KVRing conditioned by the chosen KVLayer
Definition at line 90 of file KVASMultiDetArray.h.
|
inlinevirtual |
return the solid angle (msr) for a given KVRing conditioned by the chosen KVLayer
Definition at line 85 of file KVASMultiDetArray.h.
|
virtual |
Return pointer to telescope in array with name given by "name".
Reimplemented from KVMultiDetArray.
Definition at line 146 of file KVASMultiDetArray.cpp.
Create and fill list of telescopes at position (theta, phi) sorted according to distance from target (closest first). User must delete list after use.
Definition at line 536 of file KVASMultiDetArray.cpp.
compute & return the total solid angle (msr) of the array it is the sum of solid angles of all existing KVGroups if ROOT geometry is used, just use base class method
Reimplemented from KVMultiDetArray.
Definition at line 556 of file KVASMultiDetArray.cpp.
Definition at line 65 of file KVASMultiDetArray.cpp.
|
privatevirtual |
Set up list of all detectors in array This method is called after array geometry has been defined. We set the name of each detector by calling its KVDetector::GetArrayName() method (or overrides in child classes), as the name may depend on the position in the final array geometry.
Reimplemented from KVMultiDetArray.
Reimplemented in KVINDRA.
Definition at line 182 of file KVASMultiDetArray.cpp.
Merge two existing groups into a new single group. look through kg1 telescopes. set their "group" to kg2. if they are not already in kg2, add them to kg2. KVTelescope *tel = 0; TIter next(kg1->GetTelescopes()); while ((tel = (KVTelescope *) next())) { if (kg2->Contains(tel)) { tel->SetGroup(kg2); //make sure telescope has right group pointer } else { kg2->Add(tel); } } //remove kg1 from list and destroy it fGroups->Remove(kg1); delete kg1; //sort merged group and calculate dimensions kg2->Sort(); kg2->SetDimensions(); //renumber groups and reset group counter RenumberGroups();
Definition at line 436 of file KVASMultiDetArray.cpp.
|
privatevirtual |
Set up detector in single-stage identification telescope and add to idtels.
Reimplemented from KVMultiDetArray.
Definition at line 665 of file KVASMultiDetArray.cpp.
|
privatevirtual |
Set up detectors in de-e identification telescope and add to idtels.
Reimplemented from KVMultiDetArray.
Definition at line 640 of file KVASMultiDetArray.cpp.
Update the list of groups in the detector array by comparing all telescopes in two layers.
Definition at line 87 of file KVASMultiDetArray.cpp.
Calculate groups by comparing two rings in different layers.
Definition at line 121 of file KVASMultiDetArray.cpp.
|
private |
used to number layers
Definition at line 37 of file KVASMultiDetArray.h.
|
private |
used to number groups
Definition at line 38 of file KVASMultiDetArray.h.