1#include "KVTelescope.h"
77 d->GetNode()->AddInFront(ld);
163 Warning(
"GetDetectorRank",
"Detector does not belong to this telescope!");
203 "Add detectors to telescope before setting depth.");
206 if ((
int) ndet >
fNdets) {
208 "Cannot set depth for detector %d in %d-member telescope.",
228 Error(
"GetDepth",
"Depths have not been set.");
231 if ((
int) ndet >
fNdets) {
233 "Cannot get depth for detector %d in %d-member telescope.",
250 Error(
"GetDepth",
"Depths have not been set.");
254 for (
int ndet = 0; ndet <
fNdets; ndet++) {
271 if (no_of_dets == 1) {
286 mother_vol->
AddNode(det_vol, 1, tran);
R__EXTERN TGeoManager * gGeoManager
char * Form(const char *fmt,...)
Base class for KaliVeda framework.
virtual void SetType(const Char_t *str)
Base class for detector geometry description.
KVGeoStrucElement * GetParentStructure(const Char_t *type, const Char_t *name="") const
virtual TGeoVolume * GetGeoVolume()
virtual Double_t GetEnergy() const
KVGeoDetectorNode * GetNode()
Double_t GetTotalThicknessInCM()
virtual Double_t GetDepthInTelescope() const
virtual void DetectParticle(KVNucleus *, TVector3 *norm=0)
void AddBehind(KVDetector *)
void SetOwnsDetectors(Bool_t yes=kTRUE)
virtual void Add(KVBase *)
const KVSeqCollection * GetDetectors() const
Handles lists of named parameters with different types, a list of KVNamedParameter objects.
void SetValue(const Char_t *name, value_type value)
Description of properties and kinematics of atomic nuclei.
Double_t GetEnergy() const
virtual Double_t GetTheta() const
void SetDistance(Double_t d)
virtual Double_t GetPhi() const
virtual Double_t GetDistance(void) const
KaliVeda extensions to ROOT collection classes.
Associates two detectors placed one behind the other.
Int_t fNdets
number of detectors in telescope
virtual TGeoVolume * GetGeoVolume()
Create and return TGeoVolume representing detectors in this telescope.
Double_t GetTotalLengthInCM() const
void SetDepth(UInt_t ndet, Float_t depth)
set the depth of detector number ndet(=1,2,...) in mm.
KVDetector * GetDetector(Int_t n) const
Int_t GetDetectorRank(KVDetector *kvd)
returns position (1=front, 2=next, etc.) detector in the telescope structure
Float_t * fDepth
[fNdets] depth of each element starting from nearest target
void ResetDetectors()
Reset Energy losses to be ready for the next event.
void Add(KVBase *element)
Double_t GetDepthInCM(Int_t ndet) const
Float_t GetDepth() const
get depth of entire telescope in mm (sum of depths of detectors)
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)
virtual Int_t GetEntries() const
TGeoVolumeAssembly * MakeVolumeAssembly(const char *name)
TGeoVolume * GetTopVolume() const
void SetAngles(Double_t phi, Double_t theta, Double_t psi)
virtual TGeoNode * AddNode(TGeoVolume *vol, Int_t copy_no, TGeoMatrix *mat=nullptr, Option_t *option="")
const char * GetName() const override
virtual void Warning(const char *method, const char *msgfmt,...) const
virtual void Execute(const char *method, const char *params, Int_t *error=nullptr)
virtual Bool_t InheritsFrom(const char *classname) const
virtual void Error(const char *method, const char *msgfmt,...) const
double dist(AxisAngle const &r1, AxisAngle const &r2)