23 #ifndef KVD_RECPRC_CNXN 
   24 #define KVD_RECPRC_CNXN 1 
   26 #ifndef KVD_NORECPRC_CNXN 
   27 #define KVD_NORECPRC_CNXN 0 
   30 #include "KVMaterial.h" 
   31 #include "KVPosition.h" 
   33 #include "KVNucleus.h" 
   35 #include "KVGeoDetectorNode.h" 
   36 #include "KVUniqueNameList.h" 
   37 #include "KVDetectorSignal.h" 
  277 #if ROOT_VERSION_CODE >= ROOT_VERSION(3,4,0) 
  355       if (ELoss > 0) 
return ELoss;
 
  357       if (ELoss < 0) ELoss = 0;
 
  378                                           -1., 
Bool_t transmission = kTRUE);
 
  384                                const Char_t* type) 
const;
 
  482                if (!all) 
return kTRUE;
 
  489       return all && count_raw;
 
  504       return (s ? s->GetValue(params) : 0);
 
  515       if (s) s->SetValue(val);
 
  531       return (s ? s->GetInverseValue(
value, 
input, params) : 0);
 
#define ClassDef(name, id)
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void input
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t b
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void on
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void value
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
 
Base class for all detector calibrations.
 
Base class for output signal data produced by a detector.
 
virtual Bool_t IsRaw() const
 
void SetDetector(const KVDetector *d)
 
Base class for detector geometry description.
 
void SetDetectorSignalValue(const KVString &type, Double_t val) const
 
void SetNameOfArray(const TString &n)
 
KVMaterial * GetAbsorber(const Char_t *name) const
 
Double_t GetInverseDetectorSignalValue(const KVString &output, Double_t value, const KVString &input, const KVNameValueList ¶ms="") const
 
static KVDetector * MakeDetector(const Char_t *name, Float_t thick)
 
virtual const Char_t * GetArrayName()
 
TGeoHMatrix * GetActiveLayerMatrix() const
 
void IncrementIdentifiedParticles(Int_t n=1)
 
virtual Bool_t IsSimMode() const
 
virtual Bool_t IsOK() const
 
void SetMatrix(const TGeoHMatrix *m)
 
KVPosition fEWPosition
position of entrance window i.e. first volume in detector geometry
 
virtual Double_t GetMaxDeltaE(Int_t Z, Int_t A)
 
virtual void SetSimMode(Bool_t on=kTRUE)
 
const Char_t * GetMaterialName() const
 
KVUniqueNameList fParentStrucList
list of geometry structures which directly contain this detector
 
Int_t GetNumberOfAbsorberLayers() const
 
void IncrementUnidentifiedParticles(Int_t n=1)
 
virtual void GetVerticesInOwnFrame(TVector3 *, Double_t, Double_t)
 
virtual Double_t GetERes(Int_t Z, Int_t A, Double_t Einc)
 
virtual Double_t GetELostByParticle(KVNucleus *, TVector3 *norm=0)
 
Double_t ELossActive(Double_t *x, Double_t *par)
used to store depth of detector in parent telescope
 
TList * GetTelescopesForIdentification()
 
virtual void AddIDTelescope(TObject *idt)
Add ID telescope to list of telescopes to which detector belongs.
 
KVList * GetAlignedIDTelescopes()
 
KVList * fCalibrators
list of associated calibrator objects
 
KVGeoStrucElement * GetParentStructure(const Char_t *type, const Char_t *name="") const
 
KVGroup * GetGroup() const
 
void AddDetectorSignal(KVDetectorSignal *ds)
 
void GetRandomAngles(Double_t &th, Double_t &ph, Option_t *t="isotropic")
 
Bool_t fDetecting
=kTRUE if detector is "detecting", =kFALSE if not
 
virtual Double_t GetRange(Int_t Z, Int_t A, Double_t Einc)
 
virtual void SetEnergyLoss(Double_t e) const
 
Bool_t ReplaceCalibrator(const Char_t *type, KVCalibrator *cal, const KVNameValueList &opts="")
 
KVList * GetHits() const
Return the list of particles hitting this detector in an event.
 
virtual Double_t GetTotalDeltaE(Int_t Z, Int_t A, Double_t Einc)
 
virtual TGeoVolume * GetGeoVolume()
 
virtual Double_t GetEnergy() const
 
Int_t GetNHits() const
Return the number of particles hitting this detector in an event.
 
virtual TF1 * GetEResFunction(Int_t Z, Int_t A)
 
virtual void SetSegment(UShort_t s)
 
TVector3 GetSurfaceNormal() const
 
KVList * GetListOfCalibrators() const
 
virtual Double_t GetEIncOfMaxDeltaE(Int_t Z, Int_t A)
 
void RemoveHit(KVNucleus *part)
 
Double_t GetSinTheta() const
 
virtual TGraph * DrawPunchThroughEsurAVsZ(Int_t massform=KVNucleus::kBetaMass)
 
Double_t GetSolidAngle() const
 
void AddAbsorber(KVMaterial *)
 
virtual Double_t GetEnergyLoss() const
 
virtual Double_t GetEResAfterDetector() const
 
KVList * GetIDTelescopes()
 
void SetShape(TGeoBBox *s)
 
TVector3 GetRandomPointOnSurface() const
 
void AddParentStructure(KVGeoStrucElement *elem)
 
Bool_t IsSingleLayer() const
 
Double_t GetTheta() const
 
Double_t fEResforEinc
used by GetIncidentEnergy & GetCorrectedEnergy
 
TGeoHMatrix * GetMatrix() const
 
virtual Int_t GetIndex() const
 
virtual Int_t FindZmin(Double_t ELOSS=-1., Char_t mass_formula=-1)
 
TF1 * fELossF
parametric function dE in active layer vs. incident energy
 
TList * fAlignedDetectors[2]
 
virtual void Clear(Option_t *opt="")
 
const KVPosition & GetEntranceWindow() const
 
Bool_t HasDetectorSignal(const KVString &type) const
 
KVMaterial * GetAbsorber(Int_t i) const
Returns pointer to the i-th absorber in the detector (i=0 first absorber, i=1 second,...
 
void remove_signal_for_calibrator(KVCalibrator *K)
 
KVList * fAbsorbers
list of absorbers making up the detector
 
TVector3 GetVolumeCentre() const
 
TF1 * fEResF
parametric function Eres residual energy after all layers of detector
 
KVDetectorSignal * AddDetectorSignal(const KVString &type)
 
virtual void DeduceACQParameters(KVEvent *, KVNumberList &)
 
virtual Double_t GetSmallestEmaxValid(Int_t Z, Int_t A)
 
TVector3 GetActiveLayerSurfaceCentre() const
 
Bool_t HasSameStructureAs(const KVDetector *) const
 
void SetThickness(Double_t thick)
 
virtual Bool_t Fired(Option_t *opt="any") const
 
virtual void AddToGeometry()
 
virtual Double_t GetIncidentEnergy(Int_t Z, Int_t A, Double_t delta_e=-1.0, enum SolType type=kEmax)
 
virtual KVDetectorSignal * GetDetectorSignal(const KVString &type) const
 
virtual void ReadDefinitionFromFile(const Char_t *)
 
Double_t GetTotalThicknessInCM()
 
Bool_t IsCalibrated() const
 
void SetDetecting(Bool_t yes=kTRUE)
 
virtual TF1 * GetELossFunction(Int_t Z, Int_t A)
 
Double_t GetSurfaceArea(int npoints=100000) const
 
void SetActiveLayer(KVMaterial *actif)
 
Bool_t BelongsToUnidentifiedParticle() const
 
Double_t RangeDet(Double_t *x, Double_t *par)
 
KVMaterial * GetActiveLayer() const
 
const Char_t * GetNameOfArray() const
 
virtual void RemoveCalibrators()
 
virtual Double_t GetEntranceWindowSurfaceArea()
Return surface area of first layer of detector in cm2.
 
virtual TGraph * DrawPunchThroughEnergyVsZ(Int_t massform=KVNucleus::kBetaMass)
 
KVUniqueNameList fDetSignals
list of signals associated with detector
 
virtual Double_t GetPunchThroughEnergy(Int_t Z, Int_t A)
 
Int_t fUnidentP
temporary counters, determine state of identified/unidentified particle flags
 
TF1 * fRangeF
parametric function range of particles in detector
 
Bool_t AddDetectorSignalExpression(const KVString &type, const KVString &_expr)
 
Double_t GetDetectorSignalValue(const KVString &type, const KVNameValueList ¶ms="") const
 
virtual void SetEnergy(Double_t e) const
 
virtual Double_t GetParticleEIncFromERes(KVNucleus *, TVector3 *norm=0)
 
virtual void SetEResAfterDetector(Double_t e)
 
virtual Double_t GetCalibratedEnergy() const
 
KVGeoDetectorNode fNode
positioning information relative to other detectors
 
void SetActiveLayerMatrix(const TGeoHMatrix *)
Set ROOT geometry global matrix transformation to coordinate frame of active layer volume.
 
UShort_t GetSegment() const
 
virtual Bool_t IsDetecting() const
 
TVector3 GetSurfaceCentre() const
 
virtual void Copy(TObject &obj) const
 
void RemoveParentStructure(KVGeoStrucElement *elem)
 
const KVSeqCollection & GetListOfDetectorSignals() const
 
KVList * fParticles
list of particles hitting detector in an event
 
virtual TList * GetAlignedDetectors(UInt_t direction=1)
 
KVGeoDetectorNode * GetNode()
 
Double_t GetDistance() const
 
Bool_t fSimMode
stores lists of aligned detectors in both directions
 
TString fNameOfArray
list of ID telescopes used for particle ID
 
Bool_t BelongsToIdentifiedParticle() const
 
void SetEntranceWindowMatrix(const TGeoHMatrix *)
Set ROOT geometry global matrix transformation to coordinate frame of entrance window.
 
virtual Double_t GetDeltaE(Int_t Z, Int_t A, Double_t Einc)
 
Double_t EResDet(Double_t *x, Double_t *par)
 
TGeoBBox * GetActiveLayerShape() const
 
KVList * GetListOfAbsorbers() const
 
virtual Double_t GetDepthInTelescope() const
 
Double_t fDepthInTelescope
used to store value calculated by GetTotalThicknessInCM
 
virtual void Reset(Option_t *opt="")
 
TVector3 GetActiveLayerVolumeCentre() const
 
const TVector3 GetCentreOfEntranceWindow() const
 
KVMaterial * fActiveLayer
The active absorber in the detector.
 
void AddHit(KVNucleus *part)
 
KVCalibrator * GetCalibrator(const Char_t *name, const Char_t *type) const
 
virtual Double_t GetIncidentEnergyFromERes(Int_t Z, Int_t A, Double_t Eres)
 
Int_t fIdentP
temporary counters, determine state of identified/unidentified particle flags
 
Double_t GetMisalignmentAngle() const
 
virtual Bool_t IsPresent() const
 
virtual Double_t GetDeltaEFromERes(Int_t Z, Int_t A, Double_t Eres)
 
TVector3 GetRandomDirection(Option_t *t="isotropic")
 
void SetEntranceWindowShape(TGeoBBox *)
Set ROOT geometry shape of entrance window.
 
Bool_t fPresent
=kTRUE if detector is present, =kFALSE if it has been removed
 
void ResetAlignedDetectors(UInt_t direction=1)
 
virtual void DetectParticle(KVNucleus *, TVector3 *norm=0)
 
void SetActiveLayerShape(TGeoBBox *)
Set ROOT geometry shape of active layer volume.
 
void SetAnalysed(Bool_t b=kTRUE)
 
void SetGain(Double_t gain)
 
TString fFName
dynamically generated full name of detector
 
virtual void Print(Option_t *option="") const
 
Bool_t fSingleLayer
=kTRUE if detector has a single absorber layer
 
virtual Double_t GetLinearRange(Int_t Z, Int_t A, Double_t Einc)
 
virtual TF1 * GetRangeFunction(Int_t Z, Int_t A)
 
virtual Double_t GetCorrectedEnergy(KVNucleus *, Double_t e=-1., Bool_t transmission=kTRUE)
 
void init()
default initialisations
 
Bool_t AddCalibrator(KVCalibrator *cal, const KVNameValueList &opts="")
 
Double_t GetCosTheta() const
 
Double_t fTotThickness
just a counter so that missing calibrator warning is given only once
 
void SetPresent(Bool_t yes=kTRUE)
 
TGeoBBox * GetShape() const
 
virtual void SetMaterial(const Char_t *type)
 
Abstract base class container for multi-particle events.
 
Information on relative positions of detectors & particle trajectories.
 
Base class describing elements of array geometry.
 
Group of detectors which can be treated independently of all others in array.
 
Extended TList class which owns its objects by default.
 
Description of physical materials used to construct detectors & targets; interface to range tables.
 
virtual void SetEnergyLoss(Double_t e) const
 
virtual Double_t GetThickness() const
 
virtual Double_t GetEnergyLoss() const
 
Handles lists of named parameters with different types, a list of KVNamedParameter objects.
 
Description of properties and kinematics of atomic nuclei.
 
Strings used to represent a set of ranges of values.
 
Base class used for handling geometry in a multidetector array.
 
virtual void GetRandomAngles(Double_t &th, Double_t &ph, Option_t *t="isotropic")
 
virtual TVector3 GetRandomDirection(Option_t *t="isotropic")
 
virtual void SetShape(TGeoBBox *)
 
virtual Double_t GetSolidAngle(void) const
 
virtual Double_t GetTheta() const
 
Bool_t ROOTGeo() const
Returns kTRUE if ROOT geometry is used, kFALSE if not.
 
virtual TVector3 GetSurfaceCentre() const
 
virtual TGeoHMatrix * GetMatrix() const
 
virtual Double_t GetPhi() const
 
virtual Double_t GetDistance(void) const
 
virtual TVector3 GetVolumeCentre() const
 
virtual Double_t GetSurfaceArea(int npoints=100000) const
 
virtual Double_t GetSinTheta() const
 
virtual TVector3 GetSurfaceNormal() const
 
virtual Double_t GetMisalignmentAngle() const
 
virtual void SetMatrix(const TGeoHMatrix *)
 
virtual TGeoBBox * GetShape() const
 
virtual Double_t GetCosTheta() const
 
virtual TVector3 GetDirection()
 
virtual TVector3 GetRandomPointOnSurface() const
 
KaliVeda extensions to ROOT collection classes.
 
T * get_object(const TString &name) const
 
virtual void Clear(Option_t *option="")
 
virtual void SetCleanup(Bool_t enable=kTRUE)
 
virtual TObject * FindObjectByType(const Char_t *) const
 
virtual void Add(TObject *obj)
 
virtual TObject * FindObjectWithNameAndType(const Char_t *name, const Char_t *type) const
 
virtual TObject * Remove(TObject *obj)
Remove object from list.
 
virtual TObject * FindObject(const char *name) const
 
Extension of ROOT TString class which allows backwards compatibility with ROOT v3....
 
Optimised list in which named objects can only be placed once.
 
virtual void Add(TObject *obj)
 
virtual Int_t GetEntries() const
 
const char * GetName() const override
 
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const