KaliVeda
1.12/06
Heavy-Ion Analysis Toolkit
|
Base class for describing the geometry of a detector array.
See the chapter in the KaliVeda Users' Guide
Definition at line 59 of file KVMultiDetArray.h.
Public Types | |
enum | EFilterType { kFilterType_Geo , kFilterType_GeoThresh , kFilterType_Full } |
filter types. values of fFilterType More... | |
![]() | |
enum | EKaliVedaBits { kIsKaliVedaObject = BIT(23) } |
![]() | |
enum | EDeprecatedStatusBits |
enum | EStatusBits |
Static Public Member Functions | |
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 Bool_t | AreEqual (Double_t x, Double_t y, Long64_t maxdif=1) |
Comparison between two 64-bit floating-point values. More... | |
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.) More... | |
static const Char_t * | GetINCDIRFilePath (const Char_t *namefile="") |
static const Char_t * | GetKVBuildDate () |
Returns KaliVeda build date. More... | |
static const Char_t * | GetKVBuildDir () |
Returns top-level directory used for build. More... | |
static const Char_t * | GetKVBuildTime () |
Returns KaliVeda build date. More... | |
static const Char_t * | GetKVBuildType () |
Returns KaliVeda build type (cmake build: Release, Debug, RelWithDebInfo, ...) More... | |
static const Char_t * | GetKVBuildUser () |
Returns username of person who performed build. More... | |
static const Char_t * | GetKVSourceDir () |
Returns top-level directory of source tree used for build. More... | |
static const Char_t * | GetKVVersion () |
Returns KaliVeda version string. More... | |
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. More... | |
static const Char_t * | gitCommit () |
Returns last git commit of sources. More... | |
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. More... | |
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 Longptr_t | GetDtorOnly () |
static Bool_t | GetObjectStat () |
static void | SetDtorOnly (void *obj) |
static void | SetObjectStat (Bool_t stat) |
Protected Types | |
enum | { kIsRemoving = BIT(14) , kParamsSet = BIT(15) , kIsBuilt = BIT(16) , kIsBeingDeleted = BIT(17) , kIDParamsSet = BIT(18) , kCalParamsSet = BIT(19) } |
Protected Attributes | |
KVNumberList | fAcceptECodes |
list of acceptable calibration codes for reconstructed nuclei More... | |
KVNumberList | fAcceptIDCodes |
list of acceptable identification codes for reconstructed nuclei More... | |
KVSeqCollection * | fACQParams |
list of data acquisition parameters associated to detectors More... | |
TList * | fCalibStatusDets |
used by GetStatusIDTelescopes More... | |
UInt_t | fCurrentRun |
Number of the current run used to call SetParameters. More... | |
TString | fDataSet |
name of associated dataset, used with MakeMultiDetector() More... | |
Int_t | fFilterType |
type of filtering (used by DetectEvent) More... | |
KVUniqueNameList | fFiredACQParams |
list of fired acquisition parameters after reading raw data event More... | |
Bool_t | fHandledRawData |
set to true if multidetector handles data in last call to HandleRawData More... | |
KVDetectorEvent * | fHitGroups |
list of hit groups in simulation More... | |
KVSeqCollection * | fIDTelescopes |
deltaE-E telescopes in groups More... | |
KVRangeTableGeoNavigator * | fNavigator |
for propagating particles through array geometry More... | |
TString | fPartSeedCond |
condition for seeding new reconstructed particles More... | |
KVNameValueList | fReconParameters |
general purpose list of parameters for storing information on data reconstruction More... | |
Bool_t | fROOTGeometry |
=kTRUE use ROOT geometry More... | |
Bool_t | fSimMode |
=kTRUE in "simulation mode" (use for calculating response to simulated events) More... | |
TList * | fStatusIDTelescopes |
used by GetStatusIDTelescopes More... | |
KVTarget * | fTarget |
target used in experiment More... | |
KVUniqueNameList | fTrajectories |
list of all possible trajectories through detectors of array More... | |
KVUpDater * | fUpDater |
used to set parameters for multidetector More... | |
![]() | |
KVUniqueNameList | fDetectors |
detectors in this structure element More... | |
KVUniqueNameList | fParentStrucList |
parent structures More... | |
KVUniqueNameList | fStructures |
daughter structures More... | |
![]() | |
TString | fLabel |
label for the object More... | |
![]() | |
TString | fName |
TString | fTitle |
![]() | |
kOnlyPrepStep | |
Static Protected Attributes | |
static Bool_t | fBuildTarget = kFALSE |
static Bool_t | fCloseGeometryNow = kTRUE |
static Bool_t | fMakeMultiDetectorSetParameters = kTRUE |
Friends | |
class | KVExpSetUp |
class | KVGeoImport |
Additional Inherited Members | |
![]() | |
kBitMask | |
kCanDelete | |
kCannotPick | |
kHasUUID | |
kInconsistent | |
kInvalidObject | |
kIsOnHeap | |
kIsReferenced | |
kMustCleanup | |
kNoContextMenu | |
kNotDeleted | |
kObjInCanvas | |
kOverwrite | |
kSingleKey | |
kWriteDelete | |
kZombie | |
#include <KVMultiDetArray.h>
|
protected |
Enumerator | |
---|---|
kIsRemoving | |
kParamsSet | |
kIsBuilt | |
kIsBeingDeleted | |
kIDParamsSet | |
kCalParamsSet |
Definition at line 71 of file KVMultiDetArray.h.
filter types. values of fFilterType
Enumerator | |
---|---|
kFilterType_Geo | |
kFilterType_GeoThresh | |
kFilterType_Full |
Definition at line 251 of file KVMultiDetArray.h.
KVMultiDetArray::KVMultiDetArray | ( | ) |
Default constructor.
Definition at line 73 of file KVMultiDetArray.cpp.
Constructor with name and optional type.
Definition at line 86 of file KVMultiDetArray.cpp.
|
virtual |
destroy (delete) the MDA and all the associated structure, detectors etc.
Definition at line 168 of file KVMultiDetArray.cpp.
|
inlinevirtual |
Calling this method disables any selection of "OK" reconstructed particles according to their calibration code status.
Reimplemented in KVExpSetUp.
Definition at line 530 of file KVMultiDetArray.h.
|
inlinevirtual |
Calling this method disables any selection of "OK" reconstructed particles according to their identification code status.
Reimplemented in KVExpSetUp.
Definition at line 495 of file KVMultiDetArray.h.
|
inline |
Set list of (numeric) calibration codes which are acceptable for analysis of reconstructed particles with this array.
The argument may be given either as a list of explicit numerical values in a string, using the KVNumberList formatting rules:
or as a set of symbolic values, variables etc.:
Default list may be set with variable:
If called several times, only the last list of values will be taken into account.
Definition at line 504 of file KVMultiDetArray.h.
|
inline |
Set list of (numeric) identification codes which are acceptable for analysis of reconstructed particles with this array.
The argument may be given either as a list of explicit numerical values in a string, using the KVNumberList formatting rules:
or as a set of symbolic values, variables etc.:
Default list may be set with variable:
If called several times, only the last list of values will be taken into account.
Definition at line 469 of file KVMultiDetArray.h.
|
virtual |
Set status (IsOK) of particle by comparing its identification/calibration codes with those set as acceptable in fAcceptIDCodes and fAcceptECodes. The default lists are defined in variables of the form [DataSet].[name].ReconstructedNuclei.AcceptIDCodes: [list] [DataSet].[name].ReconstructedNuclei.AcceptECodes: [list] where DataSet is an optional dataset name for dataset-specific lists name is the name of the multidetector array list is a numeric list (KVNumberList format) If either list is empty, no selection is made for the corresponding code
Reimplemented in KVExpSetUp.
Definition at line 3866 of file KVMultiDetArray.cpp.
void KVMultiDetArray::AddACQParam | ( | KVACQParam * | par | ) |
Add an acquisition parameter corresponding to a detector of the array. The fACQParams list is added to the list of cleanups (gROOT->GetListOfCleanups). Each acq-param has its kMustCleanup bit set. Thus, if the acq-param is deleted (e.g. by the detector which owns it), it is automatically removed from the fACQParams list by ROOT.
Definition at line 1645 of file KVMultiDetArray.cpp.
|
inlineprotected |
Definition at line 145 of file KVMultiDetArray.h.
|
virtual |
Loop over detectors in group, starting from the furthest from the target, and working inwards. Calls KVReconstructedEvent::AnalyseDetectors
Reimplemented in KVASMultiDetArray.
Definition at line 1952 of file KVMultiDetArray.cpp.
|
protected |
Eliminate any trajectories which are just sub-trajectories of others For each trajectory in list fTrajectories, we add a reference to the trajectory to each node on the trajectory
Definition at line 3664 of file KVMultiDetArray.cpp.
Reimplemented in KVFAZIA, KVExpSetUp, and KVINDRA.
Definition at line 222 of file KVMultiDetArray.cpp.
|
inlineprotectedvirtual |
Reimplemented in KVINDRA.
Definition at line 112 of file KVMultiDetArray.h.
void KVMultiDetArray::CalculateDetectorSegmentationIndex | ( | ) |
*** Set 'segmentation' index of detectors *** This is essential for particle reconstruction, judging whether particles can be identified independently of any others in the same group etc. Basically, any detector with >1 detector placed directly behind it has a seg. index = 0 if <=1 detector is directly behind, the seg. index = 1 This method is used for arrays imported from ROOT geometries.
Definition at line 3113 of file KVMultiDetArray.cpp.
void KVMultiDetArray::CalculateIdentificationGrids | ( | ) |
For each IDtelescope in array, calculate an identification grid.
Definition at line 4486 of file KVMultiDetArray.cpp.
|
protected |
Calculate all possible (sub-)trajectories for particle reconstruction (GetReconTrajectories())
Definition at line 3590 of file KVMultiDetArray.cpp.
|
inline |
Definition at line 360 of file KVMultiDetArray.h.
|
inline |
Turns on ROOT geometry if not already in use
Definition at line 448 of file KVMultiDetArray.h.
|
virtual |
Sets status of detectors (KVDetector::IsPresent() and KVDetector::IsWorking()) for a given run of a dataset.
If 'myname' is given, we look in database table "myname.OoODets"
Reimplemented in KVExpSetUp.
Definition at line 4504 of file KVMultiDetArray.cpp.
Reset all groups (lists of detected particles etc.) and detectors in groups (energy losses, ACQparams etc. etc.) and the target if there is one
Reimplemented from KVBase.
Reimplemented in KVExpSetUp.
Definition at line 1619 of file KVMultiDetArray.cpp.
|
protectedvirtual |
Reimplemented in KVExpSetUp.
Definition at line 3970 of file KVMultiDetArray.cpp.
|
inline |
Definition at line 227 of file KVMultiDetArray.h.
|
virtual |
Definition at line 606 of file KVMultiDetArray.cpp.
|
protected |
Deduce the "groups" in the array from the trajectories Any trajectories with 1 or more common detectors define a group. The group is constituted of all detectors belonging to the trajectories of the group.
Definition at line 3791 of file KVMultiDetArray.cpp.
|
protected |
Track over all possible particle trajectories calling GetIDTelescopes(KVDetector*,KVDetector*) for each pair of (present & functioning) detectors. This will create all possible KVIDTelescope identification objects and put them in list fIDTelescopes
Definition at line 3622 of file KVMultiDetArray.cpp.
|
virtual |
Simulate detection of event by multidetector array.
optional argument detection_frame(="" by default) can be used to give name of inertial reference frame (defined for all particles of 'event') to be used. e.g. if the simulated event's default reference frame is the centre of mass frame, before calling this method you should create the 'laboratory' or 'detector' frame with KVEvent::SetFrame(...), and then give the name of the 'LAB' or 'DET' frame as 3rd argument here.
For each particle in the event we calculate first its energy loss in the target (if the target has been defined, see KVMultiDetArray::SetTarget). By default these energy losses are calculated from a point half-way along the beam-direction through the target (taking into account the orientation of the target), if you want random depths for each event call GetTarget()->SetRandomized() before using DetectEvent().
If the particle escapes the target then we look for the group in the array that it will hit. If there is one, then the detection of this particle by the different members of the group is simulated. The actual geometry and algorithms used to calculate the particle's trajectory depend on the value of fROOTGeometry (modify with SetROOTGeometry(kTRUE/kFALSE): if kTRUE: we use the ROOT TGeo description of the array generated by CreateGeoManager(). In this case, CreateGeoManager() must be called once in order to set up the geometry. if kFALSE: we use the simplistic KaliVeda geometry, i.e. detectors are only defined by min/max polar & azimuthal angles.
The detectors concerned have their fEloss members set to the energy lost by the particle when it crosses them.
Give tags to the simulated particles via KVNucleus::AddGroup() method Two general tags :
After the filtered process, a reconstructed event are obtain from the fired groups corresponding to detection group where at least one detector havec an active layer energy loss greater than zero this reconstructed event are available for the user in the KVReconstructedEvent* rec_event argument This pointer is cleared and also the multidet array at the beginning of the method
INFO to the user :
=== FILTER TYPES === Use gMultiDetArray->SetFilterType(...) with one of the following values: KVMultiDetArray::kFilterType_Geo geometric filter only, particles are kept if they hit detector in the array energy losses are not calculated, particle energies are irrelevant KVMultiDetArray::kFilterType_GeoThresh particles are kept if they have enough energy to leave the target, and enough energy to cross at least one detector of the array —> for these two cases, accepted particles are copied into the 'reconstructed' event with their original simulated energy, charge and mass, although angles are randomized to reflect detector granularity
KVMultiDetArray::kFilterType_Full full simulation of detection of particles by the array. the calibration parameters for the chosen run (call to gMultiDetArray->SetParameters(...)) are inverted in order to calculate pseudo-raw data from the calculated energy losses. the resulting pseudo-raw
The event given as input to the method may contain extra information in its parameter list concerning the simulation. The parameter list of the event is copied into that of the reconstructed event, therefore these informations can be accessed from the reconstructed event using the method rec_event->GetParameters()
For filter types KVMultiDetArray::kFilterType_Geo and KVMultiDetArray::kFilterType_GeoThresh, for which there is a 1-to-1 correspondance between simulated and reconstructed particles, we copy the list of parameters associated to each input particle into the output particle. Note that this list contains full informations on the detection of each particle (see Users Guide chapter on Filtering)
You can visualise the trajectories of particles for individual events in the 3D OpenGL viewer. To enable this: gMultiDetArray->GetNavigator()->SetTracking(kTRUE) Then you can do: gMultiDetArray->DetectEvent(...) gMultiDetArray->Draw("tracks") The geometry of the array with the tracks overlaid will be displayed.
Definition at line 816 of file KVMultiDetArray.cpp.
|
inlinevirtual |
Reimplemented in KVASMultiDetArray.
Definition at line 306 of file KVMultiDetArray.h.
KVNameValueList * KVMultiDetArray::DetectParticle_TGEO | ( | KVNucleus * | part | ) |
Use ROOT geometry to propagate particle through the array, calculating its energy losses in all absorbers, and setting the energy loss members of the active detectors on the way.
It is assumed that the ROOT geometry has been generated and is pointed to by gGeoManager.
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 list of energy losses in active layers of detectors
Definition at line 1449 of file KVMultiDetArray.cpp.
Given the name of a detector, simulate detection of a given particle by the complete corresponding group. The particle's theta and phi are set at random within the limits of detector entrance window
Definition at line 2091 of file KVMultiDetArray.cpp.
Use OpenGL viewer to view multidetector geometry (only for ROOT geometries)
If option="tracks" we draw any tracks corresponding to the last simulated event whose detection was simulated with DetectEvent If option="tracks:[numberlist]" with a list of numbers, it will be interpreted as a KVNumberList containing the Z of tracks to be drawn e.g. option="tracks:1-92" draw only tracks with 1<=Z<=92 (no neutrons) option="tracks:2" draw only helium isotopes
Reimplemented from TObject.
Definition at line 3486 of file KVMultiDetArray.cpp.
|
virtual |
Creates and fills a TGraph with the punch through energy in MeV vs. Z for the given detector, for Z=1-92. The mass of each nucleus is calculated according to the given mass formula (see KVNucleus).
Definition at line 2935 of file KVMultiDetArray.cpp.
|
virtual |
Creates and fills a TGraph with the punch through energy in MeV/nucleon vs. Z for the given detector, for Z=1-92. The mass of each nucleus is calculated according to the given mass formula (see KVNucleus).
Definition at line 2960 of file KVMultiDetArray.cpp.
|
virtual |
Creates and fills a TGraph with the Z vs. the punch-through velocity paralllel to the beam direction in cm/ns for the given detector, for Z=1-92. The mass of each nucleus is calculated according to the given mass formula (see KVNucleus).
Definition at line 2986 of file KVMultiDetArray.cpp.
|
virtual |
Called when required to fill KVReconstructedNucleus::fDetList with pointers to the detectors whose names are stored in KVReconstructedNucleus::fDetNames.
Reimplemented in KVExpSetUp, and KVFAZIA.
Definition at line 3840 of file KVMultiDetArray.cpp.
void KVMultiDetArray::FillHistogramsForAllIDTelescopes | ( | KVSeqCollection * | list | ) |
Fill TH2F histograms for all IDTelescopes of the array.
Definition at line 3556 of file KVMultiDetArray.cpp.
Fill list of ID telescopes with which this grid is associated from list of names read from ascii file.
Definition at line 3457 of file KVMultiDetArray.cpp.
|
virtual |
Perform multi-hit and coherency analysis of filtered event. round=1,2,... depending on number of times method has been called Returns number of particles whose status were changed. When this becomes zero, the coherency analysis is finished
Definition at line 647 of file KVMultiDetArray.cpp.
|
inline |
Definition at line 465 of file KVMultiDetArray.h.
|
inline |
Definition at line 461 of file KVMultiDetArray.h.
|
inline |
Definition at line 294 of file KVMultiDetArray.h.
|
inline |
Definition at line 283 of file KVMultiDetArray.h.
|
protectedvirtual |
Create and add to list all ID telescopes made of this detector and the aligned detectors placed in front of it.
If list=0 then we store pointers to the ALREADY EXISTING ID telescopes in det->fIDTelAlign. (first clear det->fIDTelAlign)
Definition at line 3140 of file KVMultiDetArray.cpp.
|
inlinevirtual |
Reimplemented in KVExpSetUp.
Definition at line 540 of file KVMultiDetArray.h.
|
inlineprotectedvirtual |
The following methods are used by the current implementation of the filter. They should be removed in future implementations.
return a general identification code for particles badly identified with this type of ID telescope redefine in child classes; default returns 14.
Reimplemented in KVINDRA.
Definition at line 178 of file KVMultiDetArray.h.
TList * KVMultiDetArray::GetCalibrationStatusOfDetectors | ( | ) |
Fill and return pointer to list fCalibStatusDets which contains a list for each type of detector in the array, each list contains a list "OK" with the detectors which are calibrated, and a list "NOT OK" with the others.
The returned TList object must not be deleted (it belongs to the KVMultiDetArray).
Definition at line 2625 of file KVMultiDetArray.cpp.
|
inlineprotectedvirtual |
return a general identification code for particles identified with this type of ID telescope after coherency analysis redefine in child classes; default returns 6.
Reimplemented in KVINDRA.
Definition at line 185 of file KVMultiDetArray.h.
|
inline |
Definition at line 364 of file KVMultiDetArray.h.
|
inline |
Definition at line 575 of file KVMultiDetArray.h.
|
virtual |
First step in event reconstruction based on current status of detectors in array. Fills the given KVDetectorEvent with the list of all groups which have fired. i.e. loop over all groups of the array and test whether KVGroup::Fired() returns true or false.
If the list of fired acquisition parameters 'fired_params' is given, then we use this list to find, first, the associated fired detectors, then, the associated groups. If not given, or if it is empty, we may use the internal fFiredACQParams list.
Call method detev->Clear() before reading another event in order to reset all of the hit groups (including all detectors etc.) and emptying the list.
Reimplemented in KVExpSetUp, KVINDRA, and KVFAZIA.
Definition at line 1866 of file KVMultiDetArray.cpp.
|
protected |
Definition at line 4124 of file KVMultiDetArray.cpp.
|
inline |
Definition at line 289 of file KVMultiDetArray.h.
TGeoManager * KVMultiDetArray::GetGeometry | ( | ) | const |
Return pointer to the (ROOT) geometry of the array.
Definition at line 2766 of file KVMultiDetArray.cpp.
Return pointer to group with name.
Definition at line 1595 of file KVMultiDetArray.cpp.
Reimplemented in KVASMultiDetArray.
Definition at line 274 of file KVMultiDetArray.h.
return pointer to group in array which contains detector or telescope with name "name"
Definition at line 1572 of file KVMultiDetArray.cpp.
|
inlinevirtual |
By default, for historical reasons, this returns 5
Reimplemented in KVINDRA, and KVFAZIA.
Definition at line 584 of file KVMultiDetArray.h.
KVIDTelescope * KVMultiDetArray::GetIDTelescope | ( | const Char_t * | name | ) | const |
Return pointer to DeltaE-E ID Telescope with "name".
Definition at line 1557 of file KVMultiDetArray.cpp.
|
protectedvirtual |
Create one or more KVIDTelescope particle-identification objects from the two detectors
The different ID telescopes are defined as 'Plugin' objects in the file $KVROOT/KVFiles/.kvrootrc :
This method is called by DeduceIdentificationTelescopesFromGeometry in order to set up all ID telescopes of the array.
Returns number of ID telescopes created
Reimplemented in KVINDRA.
Definition at line 254 of file KVMultiDetArray.cpp.
|
protectedvirtual |
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 group, we build ID telescopes from all pairs of aligned detectors.
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 in KVASMultiDetArray.
Definition at line 3217 of file KVMultiDetArray.cpp.
KVSeqCollection * KVMultiDetArray::GetIDTelescopesWithType | ( | const Char_t * | type | ) |
Create, fill and return pointer to a list of KVIDTelescopes with the given type (label) in the array. WARNING! - check pointer is not zero (we return NULL if ID telescopes list is not defined or empty)
Delete the KVList after use (it does not own the KVIDTelescopes).
Definition at line 2601 of file KVMultiDetArray.cpp.
KVUniqueNameList * KVMultiDetArray::GetIDTelescopeTypes | ( | ) |
Create, fill and return pointer to a list of TObjString containing the name of each type of ID telescope (actually the label) in the array.
Delete the list after use (it owns the TObjString objects)
Definition at line 2572 of file KVMultiDetArray.cpp.
|
protected |
Definition at line 4144 of file KVMultiDetArray.cpp.
|
inline |
Definition at line 313 of file KVMultiDetArray.h.
|
inlineprotectedvirtual |
return a general identification code for particles which cannot be identified correctly due to pile-up in a delta-E detector redefine in child classes; default returns 8.
Reimplemented in KVINDRA.
Definition at line 192 of file KVMultiDetArray.h.
KVGeoNavigator * KVMultiDetArray::GetNavigator | ( | ) | const |
Definition at line 2776 of file KVMultiDetArray.cpp.
|
inlineprotectedvirtual |
return a general calibration code for correctly calibrated particles redefine in child classes; default returns 1.
Reimplemented in KVINDRA, and KVFAZIA.
Definition at line 205 of file KVMultiDetArray.h.
|
inline |
Definition at line 558 of file KVMultiDetArray.h.
|
inlinevirtual |
get condition used to seed reconstructed particles
Definition at line 547 of file KVMultiDetArray.h.
|
virtual |
Calculate incident energy of particle (Z,A) required to punch through given detector, taking into account any detectors which the particle must first cross in order to reach it.
Definition at line 2906 of file KVMultiDetArray.cpp.
|
inline |
any information placed in this list during event reconstruction will be stored in the KVReconstructedEvent generated
Definition at line 214 of file KVMultiDetArray.h.
|
inline |
any information placed in this list during event reconstruction will be stored in the KVReconstructedEvent generated
Definition at line 220 of file KVMultiDetArray.h.
|
virtual |
Create and return pointer to new KVGroupReconstructor for reconstructing particles in the given group. Returns nullptr if group is not part of this array.
Plugins for specific arrays can be defined as plugins using the name of the array: +Plugin.KVGroupReconstructor: my_array my_group_reconstructor my_lib "my_group_reconstructor()"
Reimplemented in KVExpSetUp, KVINDRA, and KVFAZIA.
Definition at line 3751 of file KVMultiDetArray.cpp.
TList * KVMultiDetArray::GetStatusOfIDTelescopes | ( | ) |
Fill and return pointer to list fStatusIDTelescopes which contains a list for each type of ID telescope in the array, each list contains a list "OK" with the ID telescopes which have IsReadyForID()=kTRUE, and a list "NOT OK" with the others.
The returned TList object must not be deleted (it belongs to the KVMultiDetArray).
Definition at line 2522 of file KVMultiDetArray.cpp.
|
inline |
Definition at line 325 of file KVMultiDetArray.h.
|
virtual |
Calculate the energy loss in the current target of the multidetector for the reconstructed charged particle 'ion', assuming that the current energy and momentum of this particle correspond to its state on leaving the target.
WARNING: for this correction to work, the target must be in the right 'state':
gMultiDetArray->GetTarget()->SetIncoming(kFALSE); gMultiDetArray->GetTarget()->SetOutgoing(kTRUE);
(see KVTarget::GetParticleEIncFromERes).
The returned value is the energy lost in the target in MeV. The energy/momentum of 'ion' are not affected.
Definition at line 2739 of file KVMultiDetArray.cpp.
|
virtual |
Return pointer to telescope in array with name given by "name".
Reimplemented in KVASMultiDetArray.
Definition at line 1546 of file KVMultiDetArray.cpp.
Returns total solid angle of array in [msr]. This is the sum of the solid angles of all detectors in the array which have no other detectors in front of them (i.e. closer to the target position). If the array has partially overlapping detectors, this will not be correct: in this case a Monte Carlo approach should be used
Reimplemented in KVASMultiDetArray.
Definition at line 377 of file KVMultiDetArray.h.
|
inline |
Get list of all possible trajectories for particles traversing array
Definition at line 442 of file KVMultiDetArray.h.
KVUpDater * KVMultiDetArray::GetUpDater | ( | ) |
Return pointer to KVUpDater defined by dataset for this multidetector, the class used is defined as a plugin like this:
However, if a dataset defines a variable like this:
[dataset].ExpSetUp.Updater.[multidetector name]: [name_of_dataset for plugin]
then we use the updater plugin defined for the given dataset
Definition at line 2202 of file KVMultiDetArray.cpp.
|
static |
Method for positioning volumes in detector geometries
Given:
distance [cm] = distance from target (origin) to the CENTRE of the volume in position theta [deg] = polar angle of vector from target to centre of volume in position phi [deg] = azimuthal angle of vector
this method generates the matrix which is required to position the volume as required while also turning the volume so that the side nearest the target (i.e. the entrance window of the detector) remains perpendicular to the vector joining the origin and the centre of the volume.
If required, a further translation can be given which will be applied to the volume after it has been placed with the required orientation at the nominal distance. This can be used e.g. for detector misalignment, when detectors are in a structure which guarantees their line of sight to be orthogonal to their surface at a nominal distance, but the nominal distance is not respected.
Example of use:
Definition at line 3060 of file KVMultiDetArray.cpp.
|
inlineprotected |
return a general identification code for particles partially identified with an estimated lower-limit for their charge
Definition at line 199 of file KVMultiDetArray.h.
|
protectedvirtual |
General method for reading raw data in old GANIL ebyedat format Values of all KVACQParam objects appearing in the event are updated
Definition at line 3910 of file KVMultiDetArray.cpp.
|
protectedvirtual |
Update array according to last event read using the KVMFMDataFileReader object (it is assumed that KVRawDataReader::GetNextEvent() was called before calling this method)
Return kTRUE if raw data was treated
Definition at line 4362 of file KVMultiDetArray.cpp.
|
protectedvirtual |
Method used to treat raw data in MFM format read by KVMFMDataFileReader A generic method is provided to treat MFM-encapsulated ebyedat data
Return kTRUE if raw data was treated
Reimplemented in KVExpSetUp, and KVFAZIA.
Definition at line 4407 of file KVMultiDetArray.cpp.
|
protectedvirtual |
General method for reading raw data in MFM-encapsulated ebyedat format Values of all KVACQParam objects appearing in the event are updated Fills list of hit acquisition parameters. Returns kTRUE if at least one parameter belonging to the array is present.
Any unknown parameters in the event (i.e. ones for which no KVACQParam object has been defined) are written in the fReconParameters list with names "ACQPAR.[array name].[parameter name]"
Reimplemented in KVINDRA.
Definition at line 4438 of file KVMultiDetArray.cpp.
|
protectedvirtual |
Method used to handle merged MFM frames We call handle_raw_data_event_mfmframe() for each frame contained in the merge
Definition at line 4384 of file KVMultiDetArray.cpp.
|
protectedvirtual |
Reimplemented in KVFAZIA.
Definition at line 4474 of file KVMultiDetArray.cpp.
|
inline |
Definition at line 569 of file KVMultiDetArray.h.
Bool_t KVMultiDetArray::HandleRawDataBuffer | ( | MFMBufferReader & | bufrdr | ) |
Update array according to last event read from MFM buffer (it is assumed that MFMBufferReader::ReadNextFrame() was called before calling this method)
Return kTRUE if raw data was treated
All fired acquisition parameters are written in the fReconParameters list, ready to be copied to the reconstructed event
Definition at line 4036 of file KVMultiDetArray.cpp.
Bool_t KVMultiDetArray::HandleRawDataEvent | ( | KVRawDataReader * | rawdata | ) |
Update array according to last event read using the KVRawDataReader object (it is assumed that KVRawDataReader::GetNextEvent() was called before calling this method)
Return kTRUE if raw data was treated
All fired acquisition parameters are written in the fReconParameters list, ready to be copied to the reconstructed event
Definition at line 3992 of file KVMultiDetArray.cpp.
|
inline |
Definition at line 356 of file KVMultiDetArray.h.
Basic initialisation called by constructor. Creates detectors list fDetectors, groups list fGroups, identification telescopes list fIDTelescopes
Cleanups The fDetectors and fACQParams lists contain references to objects which are referenced & owned by other objects. We use the ROOT automatic garbage collection to make sure that any object deleted elsewhere is removed automatically from these lists.
The fGroups & fIDTelescopes lists contain objects owned by the multidetector array, but which may be deleted by other objects (or as a result of the deletion of other objects: i.e. if all the detectors in a group are deleted, the group itself is destroyed). We use the ROOT automatic garbage collection to make sure that any object deleted elsewhere is removed automatically from these lists.
Definition at line 113 of file KVMultiDetArray.cpp.
void KVMultiDetArray::InitialiseRawDataReading | ( | KVRawDataReader * | r | ) |
Call this method just after opening a raw data file in order to perform any necessary initialisations, depending on the type of data
Definition at line 3774 of file KVMultiDetArray.cpp.
|
virtual |
Calls Initialize() method of each identification telescope (see KVIDTelescope and derived classes) and sets the general identification code defined for each telescope.
Calling this method is essential before identification of particles is attempted.
Reimplemented in KVExpSetUp.
Definition at line 2387 of file KVMultiDetArray.cpp.
|
inline |
Definition at line 343 of file KVMultiDetArray.h.
|
inlinevirtual |
Definition at line 337 of file KVMultiDetArray.h.
|
inline |
Definition at line 332 of file KVMultiDetArray.h.
|
inline |
Return kTRUE if the geometry of this multidetector is described by ROOT geometry i.e. if the detectors have ROOT geometry volume & shape informations (we only test the first detector)
Definition at line 424 of file KVMultiDetArray.h.
|
inlinevirtual |
Returns simulation mode of array: IsSimMode()=kTRUE : we are in simulation mode (calculation of energy losses etc.) IsSimMode()=kFALSE: we are analysing/reconstruction experimental data
Definition at line 410 of file KVMultiDetArray.h.
We first look for a file with the name given by
[dataset].[name].OoODetectors: [name.OoODetectors.dat]
which should contain the runlists for each malfunctioning detector. If found we add to the experiment database a table '[name].OoO Detectors' where [name] is the name of this array.
Then we look for a file with the name given by
[dataset].[name].CalibrationFiles: [CalibrationFiles.dat]
which should contain the names of files to read with each type of calibration If found we add to the experiment database a table '[name].Calibrations' where [name] is the name of this array, containing all calibrations as KVDBParameterSet objects with the name of the detector concerned.
Reimplemented in KVExpSetUp, and KVFAZIA.
Definition at line 4099 of file KVMultiDetArray.cpp.
void KVMultiDetArray::MakeHistogramsForAllIDTelescopes | ( | KVSeqCollection * | list, |
Int_t | dimension = 100 |
||
) |
Create TH2F histograms for all IDTelescopes of the array They will be added to the list histograms will have resolution of dimension*dimension
Definition at line 3536 of file KVMultiDetArray.cpp.
|
protectedvirtual |
Reimplemented in KVASMultiDetArray, and KVINDRA.
Definition at line 1607 of file KVMultiDetArray.cpp.
|
static |
Static function which will create and 'Build' the multidetector object corresponding to a given run of dataset 'dataset_name'. Any previously existing multidetector will be deleted. We first activate the given dataset if not already done
Multidetector arrays are defined as 'Plugin' objects in the file $KVROOT/KVFiles/.kvrootrc :
Plugin.KVMultiDet: [dataset_name] [classname] [library] "[constructor]()"
The constructors/macros are always without arguments
Dataset name is stored in fDataSet
Definition at line 2125 of file KVMultiDetArray.cpp.
|
inline |
Definition at line 352 of file KVMultiDetArray.h.
|
protectedvirtual |
Perform any operations to finalise the description of the multidetector which can only be done once the geometry is closed, e.g. use KVGeoImport to set up nodes, trajectories, detectors, idtelescopes, etc. This has to be kept separate for use with KVExpSetUp which first fills a single ROOT geometry with all component KVMultiDetArray geometries, then closes the geometry only when all have been built.
Reimplemented in KVINDRA, and KVFAZIA.
Definition at line 3945 of file KVMultiDetArray.cpp.
|
protectedvirtual |
reset acquisition parameters etc. before reading new raw data event
Reimplemented in KVExpSetUp, and KVFAZIA.
Definition at line 3924 of file KVMultiDetArray.cpp.
|
protectedvirtual |
Casse tous les liens entre les detecteurs d un meme groupe Retire de la liste gMultiDetArray->GetListOfIDTelescopes() les telescopes associes et les efface apres les avoir retires des grilles auxquelles ils etaient associees pour preparer l ajout ou le retrait d un detecteur voir KVDetector::SetPresent()
Definition at line 3260 of file KVMultiDetArray.cpp.
void KVMultiDetArray::PrintCalibStatusOfDetectors | ( | ) |
Print full status report on calibration of detectors in array, using informations stored in fCalibStatusDets (see GetCalibrationStatusOfDetectors).
Definition at line 2673 of file KVMultiDetArray.cpp.
void KVMultiDetArray::PrintStatusOfIDTelescopes | ( | ) |
Print full status report on ID telescopes in array, using informations stored in fStatusIDTelescopes (see GetStatusOfIDTelescopes).
Definition at line 2444 of file KVMultiDetArray.cpp.
|
protected |
Read a calibration file with the format
The [RunList]
is optional: if not given, the calibration will be applied to all runs in the database.
If different parameters are required for different sets of runs, they should be written in different files (all of which are listed in CalibrationFiles.dat
or [array].CalibrationFiles.dat
).
The [CalibClass]
, if given, must correspond to a KVCalibrator plugin name. The list of plugin names and the corresponding classes can be retrieved with
KVCalibrator objects are added to detectors as required by the contents of calibration files. If any detector has an existing calibrator of type [CalibType]
which is not of the given class it will be replaced with a new calibrator corresponding to the plugin.
The [CalibOptions]
is optional: list in [CalibOptions]
will be used to complete set-up of any new calibrator objects by calling the KVCalibrator::SetOptions() method.
[CalibOptions]
should hold a comma-separated list of parameter=value
pairs which will be used to fill a KVNameValueList for the method call. See the KVCalibrator::SetOptions() method.
[ZRange]
is an option if several calibrations need to be used to provide the same signal for certain detectors depending on the atomic number Z of the particle detected.
Definition at line 4226 of file KVMultiDetArray.cpp.
Definition at line 4165 of file KVMultiDetArray.cpp.
Read all identification grids from the file and add them to the IDGridManager object used by this array. This method sets up the links between each grid and the IDtelescope(s) it is to be used for, unlike calling
gIDGridManager->ReadAsciiFile(grids)
which does not.
Returns kFALSE if there is a problem reading the file
Definition at line 2416 of file KVMultiDetArray.cpp.
Read a file containing runlists for each temporarily non-functioning detector.
The file should be in TEnv format like so:
i.e. more than one detector can be associated with the same runs (comma-separated list of detector names) and the list of runs are given using KVNumberList syntax.
The data is added to the database in a table '[name].OoO Detectors' with the name of this array.
Definition at line 4578 of file KVMultiDetArray.cpp.
|
virtual |
Use the KVDetectorEvent (list of hit groups) in order to fill the KVReconstructedEvent with reconstructed nuclei
Reconstruction of detected particles
Definition at line 1925 of file KVMultiDetArray.cpp.
void KVMultiDetArray::RecursiveTrajectoryClustering | ( | KVGeoDetectorNode * | N, |
KVUniqueNameList & | tried_trajectories, | ||
KVUniqueNameList & | multitraj_nodes, | ||
KVUniqueNameList & | detectors_of_group | ||
) |
Definition at line 3703 of file KVMultiDetArray.cpp.
Remove (i.e. destroy) all the telescopes belonging to the group in array which contains detector or telescope with name "name"
Definition at line 2073 of file KVMultiDetArray.cpp.
Remove (i.e. destroy) all the telescopes belonging to a given group if (grp) { grp->Destroy(); }
Definition at line 2058 of file KVMultiDetArray.cpp.
|
protectedvirtual |
Number groups according to position in list fGroups and set fGr counter to the number of groups in the list
Definition at line 624 of file KVMultiDetArray.cpp.
void KVMultiDetArray::ReplaceDetector | ( | const Char_t * | name, |
KVDetector * | new_kvd | ||
) |
Replace (and destroy) the named detector in the array with a detector based on the prototype given by the pointer new_kvd. KVDetector *kvd = GetDetector(name); if (!kvd) { Warning("ReplaceDetector", "Detector %s not found", name); return; } //get telescope of detector, so we know where to put the replacement KVTelescope *tel = kvd->GetTelescope(); if (!tel) { Error("ReplaceDetector", "Detector %s is not in a telescope", name); return; } tel->ReplaceDetector(kvd, new_kvd);
Definition at line 1519 of file KVMultiDetArray.cpp.
|
protectedvirtual |
Set up detector in single-stage identification telescope and add to fIDTelescopes and to l.
Reimplemented in KVASMultiDetArray.
Definition at line 584 of file KVMultiDetArray.cpp.
|
protectedvirtual |
Set up detectors in de-e identification telescope and add to fIDTelescopes and to l.
Reimplemented in KVASMultiDetArray.
Definition at line 554 of file KVMultiDetArray.cpp.
|
protectedvirtual |
Set up acquisition parameters in all detectors of the array + any acquisition parameters which are not directly related to a detector.
Override the method SetArrayACQParams() in order to add any acquisition parameters not directly related to a detector.
For the detector acquisition parameters, we loop over all detectors of the array and call each detector's SetACQParams() method, if it has not already been done (i.e. if the detector has no associated parameters). Each specific implementation of a KVDetector class should redefine the KVDetector::SetACQParams() method in order to give the detector in question the necessary acquisition parameters (KVACQParam objects).
The list of acquisition parameters of each detector is then used to 1) add to fACQParams list of all acquisition parameters of the array 2) set as "not working" the acquisition parameters for which environment variables such as [dataset name].KVACQParam.[acq par name].Working: NO are set in a .kvrootrc file. 3) set bitmask for each detector used to determine which acquisition parameters are taken into account by KVDetector::Fired based on the environment variables [classname].Fired.ACQParameterList.[type]: PG,GG,T where [classname]=KVDetector by default, or the name of some class derived from KVDetector which calls the method KVDetector::SetKVDetectorFiredACQParameterListFormatString() in its constructor.
Definition at line 1693 of file KVMultiDetArray.cpp.
|
virtual |
Method called by SetACQParams() in order to define any acquisition parameters which are not directly related to any detectors of the array. This implementation does nothing: override it in derived classes if needed.
Reimplemented in KVINDRA.
Definition at line 1758 of file KVMultiDetArray.cpp.
Sets up calibrators for all detectors with a defined calibration for run Set parameters for all detectors with links to table "Calibrations" for run If 'myname' is given, we look in "myname.Calibrations" Reset all calibrators of all detectors first
Reimplemented in KVExpSetUp.
Definition at line 1773 of file KVMultiDetArray.cpp.
Definition at line 368 of file KVMultiDetArray.h.
|
protectedvirtual |
This method has effect only if detector is present
If detecting=kTRUE (default), detector is detecting If detecting=kFALSE, detector has been switch off or no gas or just dead Does nothing if:
Definition at line 3397 of file KVMultiDetArray.cpp.
|
virtual |
Look for a file in the dataset directory with the name given by .kvrootrc variable:
KVMultiDetArray.DetectorThicknesses: or dataset.KVMultiDetArray.DetectorThicknesses:
and, if it exists, we use it to set the real thicknesses of the detectors. Any detector which is not in the file will be left with its nominal thickness.
EXAMPLE FILE:
thickness of detector DET01 in default units DET01: 56.4627
DET03 has several layers DET03.Abs0: 61.34 DET03.Abs1: 205.62
!!! WARNING !!! Single-layer detectors: The units are those defined by default for the detector's Get/SetThickness methods. Multi-layer: Each layer is a KVMaterial object. The thickness MUST be given in centimetres (default thickness unit for KVMaterial).
Definition at line 2808 of file KVMultiDetArray.cpp.
Modify the transparency of detector volumes in OpenGL view.
Definition at line 3575 of file KVMultiDetArray.cpp.
Definition at line 260 of file KVMultiDetArray.h.
void KVMultiDetArray::SetGeometry | ( | TGeoManager * | g | ) |
Define the geometry of the array with a valid ROOT geometry (TGeoManager instance) If no name and/or title are defined for the array, the name and title of the TGeoManager object will be used for the array. ROOT geometry will be used by default from now on.
Definition at line 2888 of file KVMultiDetArray.cpp.
For each grid which is valid for this run, we call the KVIDTelescope::SetIDGrid method of each associated ID telescope.
Definition at line 3434 of file KVMultiDetArray.cpp.
|
inlineprotectedvirtual |
Set the general identification code for particles identified in a given identification telescope.
As these codes are mostly array-specific, this method should be overridden in specific implementations.
Reimplemented in KVINDRA, and KVFAZIA.
Definition at line 121 of file KVMultiDetArray.h.
|
virtual |
Initialisation of all ACTIVE identification telescopes in the array, i.e. those appearing in a line in the .kvrootrc file such as this:
[dataset name].ActiveIdentifications: [type1] [type2] ...
The 'types' given correspond to the value given by KVIDTelescope::GetLabel(), these are the identifiers used to retrieve the different plugin classes in GetIDTelescopes(KVDetector*,KVDetector*,KVList*).
For each type of identification in the list, we retrieve the first identification telescope with this label from the list of all ID telescopes, in order to call its KVIDTelescope::SetIdentificationParameters() method. This method (when rederived in child classes of KVIDTelescope) initialises the identification objects for ALL of the ID telescopes of the same type (class) in the array.
Note that, in general, the parameters of the identifications for a given run are not set until SetParameters or SetRunIdentificationParameters is called.
Definition at line 2330 of file KVMultiDetArray.cpp.
Set the minimum number of particles which are "OK" in the event (usually a KVReconstructedEvent) for it to be retained for analysis. This could, for example, depend on the experimental multiplicity trigger used during the run. This default version sets a minimum of 1 "OK" particle
Reimplemented in KVINDRA.
Definition at line 3893 of file KVMultiDetArray.cpp.
void KVMultiDetArray::SetNavigator | ( | KVGeoNavigator * | geo | ) |
Definition at line 3524 of file KVMultiDetArray.cpp.
Set run-dependent parameters of the array.
if physics_parameters_only==false, identification and calibration parameters are set. if physics_parameters_only==true, just the minimum necessary for physics analysis of reduced data are set.
This can only be done if gDataSet has been set i.e. a dataset has been chosen, otherwise this just has the effect of setting the current run number
Definition at line 2236 of file KVMultiDetArray.cpp.
set condition used to seed reconstructed particles
Definition at line 552 of file KVMultiDetArray.h.
|
protectedvirtual |
If present=kTRUE (default), detector is present If present=kFALSE, detector has been removed This method does nothing is required state is already current state.
Methode applicable seulement pour un detecteur etant le seul dans un telescope ex les ChIo pour Indra
This method as always to be call before call the SetDetecting() method
Definition at line 3326 of file KVMultiDetArray.cpp.
|
virtual |
Take values 'ACQPAR.[array_name].[par_name]' in the parameter list and use them to set values of raw acquisition parameters (EBYEDAT)
Reimplemented in KVExpSetUp, and KVFAZIA.
Definition at line 4062 of file KVMultiDetArray.cpp.
|
virtual |
Copy any parameters in fReconParameters in to the reconstructed event parameter list.
Reimplemented in KVExpSetUp, and KVINDRA.
Definition at line 3960 of file KVMultiDetArray.cpp.
Call with on=kTRUE if array uses ROOT geometry for tracking Call SetGeometry(TGeoManager*) first with a valid geometry.
Reimplemented in KVINDRA.
Definition at line 3013 of file KVMultiDetArray.cpp.
Set calibration parameters for run. This can only be done if gDataSet has been set i.e. a dataset has been chosen Otherwise this just has the effect of setting the current run number
Definition at line 2292 of file KVMultiDetArray.cpp.
Set identification parameters for run. This can only be done if gDataSet has been set i.e. a dataset has been chosen Otherwise this just has the effect of setting the current run number
Definition at line 2266 of file KVMultiDetArray.cpp.
Set simulation mode of array (and of all detectors in array) If on=kTRUE (default), we are in simulation mode (calculation of energy losses etc.) If on=kFALSE, we are analysing/reconstruction experimental data
Definition at line 402 of file KVMultiDetArray.h.
Define the target used for a given experimental set-up. For material names, see KVMaterial. The thickness is in mg/cm2. Use SetTarget(0) to remove the existing target.
Definition at line 1974 of file KVMultiDetArray.cpp.
Adopt KVTarget object for use as experimental target i.e. we make a clone of the object pointed to by 'targ'. Therefore, any subsequent modifications to the target should be made to the object whose pointer is returned by GetTarget(). This object will be deleted with the detector array, or when the target is changed.
Calling SetTarget(0) will remove any existing target.
Definition at line 2002 of file KVMultiDetArray.cpp.
Define the target material used for a given experimental set-up. For material names, see KVDetector.
Definition at line 2025 of file KVMultiDetArray.cpp.
Define the target thickness (mg/cm2) used for a given experimental set-up. Need to define material first
Definition at line 2040 of file KVMultiDetArray.cpp.
|
protected |
Attempt to find a plugin KVIDTelescope class for making an ID telescope with the given signature/uri uri is tried both with & without prepended dataset name (if set) Returns true if successful (the new ID telescope will be added to internal list fIDTelescopes and also to TCollection* l) dataset-specific version takes precedence over default
Definition at line 521 of file KVMultiDetArray.cpp.
|
protected |
Attempt to find a plugin KVIDTelescope class for making a single-detector ID telescope from detector d with the given signature/uri Both original & all-upper-case versions of uri are tried. uri is tried both with & without prepended dataset name (if set) Returns true if successful (the new ID telescope will be added to internal list fIDTelescopes and also to TCollection l) dataset-specific version takes precedence over default
Definition at line 481 of file KVMultiDetArray.cpp.
|
protected |
Attempt to find a plugin KVIDTelescope class for making an ID telescope from detectors de & e. We look for plugins with the following signatures (uri):
[array name].[de-type]-[e-type] [array name].[de-type][thickness]-[e-type] [array name].[de-type]-[e-type][thickness] [array name].[de-type][thickness]-[e-type][thickness]
where 'type' is the type of the detector in UPPER or lowercase letters 'thickness' is the nearest-integer thickness of the detector. In addition, if a dataset is set (gDataSet!=nullptr) we try also for dataset-specific plugins:
[dataset].[array name].[de-type][thickness]-[e-type][thickness] [dataset].[array name].[de-type][thickness]-[e-type] [dataset].[array name].[de-type]-[e-type][thickness] [dataset].[array name].[de-type]-[e-type]
if no plugin is found, we return a KVIDTelescope base class object
Returns 1 (we always generate exactly one telescope)
Definition at line 368 of file KVMultiDetArray.cpp.
|
protected |
Attempt to find a plugin KVIDTelescope class for making a single-detector ID telescope from detector *d We look for plugins with the following signatures (uri):
[array name].[type] [array_name].[type][thickness]
where 'type' is the type of the detector in UPPER or lowercase letters 'thickness' is the nearest-integer thickness of the detector as returned by d->GetThickness() In addition, if a dataset is set (gDataSet!=nullptr) we try also for dataset-specific plugins:
[dataset].[array name].[type] [dataset].[array name].[type][thickness]
Returns number of generated telescopes
Definition at line 313 of file KVMultiDetArray.cpp.
|
protected |
Attempt to find a plugin KVIDTelescope class for making an ID telescope with the given signature/uri Both original & all-upper-case versions of uri are tried. uri is tried both with & without prepended dataset name (if set) Returns true if successful (the new ID telescope will be added to internal list fIDTelescopes and also to TCollection* l)
Definition at line 457 of file KVMultiDetArray.cpp.
|
protected |
Attempt to find a plugin KVIDTelescope class for making a single-detector ID telescope from detector d with the given signature/uri Both original & all-upper-case versions of uri are tried. uri is tried both with & without prepended dataset name (if set) Returns true if successful (the new ID telescope will be added to internal list fIDTelescopes and also to TCollection l)
Definition at line 434 of file KVMultiDetArray.cpp.
|
friend |
Definition at line 62 of file KVMultiDetArray.h.
|
friend |
Definition at line 61 of file KVMultiDetArray.h.
|
protected |
list of acceptable calibration codes for reconstructed nuclei
Definition at line 103 of file KVMultiDetArray.h.
|
protected |
list of acceptable identification codes for reconstructed nuclei
Definition at line 102 of file KVMultiDetArray.h.
|
protected |
list of data acquisition parameters associated to detectors
Definition at line 85 of file KVMultiDetArray.h.
Definition at line 67 of file KVMultiDetArray.h.
|
protected |
used by GetStatusIDTelescopes
Definition at line 81 of file KVMultiDetArray.h.
Definition at line 66 of file KVMultiDetArray.h.
|
protected |
Number of the current run used to call SetParameters.
Definition at line 89 of file KVMultiDetArray.h.
|
protected |
name of associated dataset, used with MakeMultiDetector()
Definition at line 88 of file KVMultiDetArray.h.
|
protected |
type of filtering (used by DetectEvent)
Definition at line 96 of file KVMultiDetArray.h.
|
protected |
list of fired acquisition parameters after reading raw data event
Definition at line 86 of file KVMultiDetArray.h.
|
protected |
set to true if multidetector handles data in last call to HandleRawData
Definition at line 107 of file KVMultiDetArray.h.
|
protected |
list of hit groups in simulation
Definition at line 83 of file KVMultiDetArray.h.
|
protected |
deltaE-E telescopes in groups
Definition at line 84 of file KVMultiDetArray.h.
Definition at line 68 of file KVMultiDetArray.h.
|
protected |
for propagating particles through array geometry
Definition at line 98 of file KVMultiDetArray.h.
|
protected |
condition for seeding new reconstructed particles
Definition at line 105 of file KVMultiDetArray.h.
|
protected |
general purpose list of parameters for storing information on data reconstruction
Definition at line 109 of file KVMultiDetArray.h.
|
protected |
=kTRUE use ROOT geometry
Definition at line 94 of file KVMultiDetArray.h.
|
protected |
=kTRUE in "simulation mode" (use for calculating response to simulated events)
Definition at line 92 of file KVMultiDetArray.h.
|
protected |
used by GetStatusIDTelescopes
Definition at line 80 of file KVMultiDetArray.h.
|
protected |
target used in experiment
Definition at line 70 of file KVMultiDetArray.h.
|
protected |
list of all possible trajectories through detectors of array
Definition at line 100 of file KVMultiDetArray.h.
|
protected |
used to set parameters for multidetector
Definition at line 90 of file KVMultiDetArray.h.