50 KVTelescope::~KVTelescope()
72 Int_t ndets = GetSize();
77 d->GetNode()->AddInFront(ld);
142 TIter next(GetDetectors());
163 Warning(
"GetDetectorRank",
"Detector does not belong to this telescope!");
167 TIter next(GetDetectors());
203 "Add detectors to telescope before setting depth.");
206 if ((
int) ndet > fNdets) {
208 "Cannot set depth for detector %d in %d-member telescope.",
214 fDepth[ndet - 1] = depth;
215 GetDetector(ndet)->SetDistance(GetDistance() + depth *
KVUnits::mm);
228 Error(
"GetDepth",
"Depths have not been set.");
231 if ((
int) ndet > fNdets) {
233 "Cannot get depth for detector %d in %d-member telescope.",
237 return fDepth[ndet - 1];
250 Error(
"GetDepth",
"Depths have not been set.");
254 for (
int ndet = 0; ndet < fNdets; ndet++) {
270 int no_of_dets = GetDetectors()->GetEntries();
271 if (no_of_dets == 1) {
273 return GetDetector(1)->GetGeoVolume();
277 Double_t tot_len_tel = GetTotalLengthInCM();
279 TIter next(GetDetectors());
286 mother_vol->
AddNode(det_vol, 1, tran);
310 Double_t tot_len_tel = GetTotalLengthInCM();
334 int no_of_dets = GetDetectors()->GetEntries();
335 Double_t tot_len_tel = GetDepthInCM(no_of_dets) + GetDetector(no_of_dets)->GetTotalThicknessInCM();
ClassImp(KVPartitionList) void KVPartitionList
Initialisation.
R__EXTERN TGeoManager * gGeoManager
char * Form(const char *fmt,...)
Base class for KaliVeda framework.
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
Double_t GetTotalThicknessInCM()
KVGeoDetectorNode * GetNode()
virtual Double_t GetDepthInTelescope() const
virtual void DetectParticle(KVNucleus *, TVector3 *norm=0)
void AddBehind(KVDetector *)
virtual void Add(KVBase *)
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
KaliVeda extensions to ROOT collection classes.
Associates two detectors placed one behind the other.
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.
Int_t GetDetectorRank(KVDetector *kvd)
returns position (1=front, 2=next, etc.) detector in the telescope structure
void ResetDetectors()
Reset Energy losses to be ready for the next event.
void Add(KVBase *element)
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)
TGeoVolumeAssembly * MakeVolumeAssembly(const char *name)
TGeoVolume * GetTopVolume() const
void SetAngles(Double_t phi, Double_t theta, Double_t psi)
virtual void AddNode(TGeoVolume *vol, Int_t copy_no, TGeoMatrix *mat=0, Option_t *option="")
virtual const char * GetName() const
virtual Bool_t InheritsFrom(const char *classname) const
double dist(AxisAngle const &r1, AxisAngle const &r2)