]> git.uio.no Git - u/mrichter/AliRoot.git/blame - FMD/AliFMDDetector.cxx
Temporary reverting the changes introduced earlier to store the TGeo geometry. New...
[u/mrichter/AliRoot.git] / FMD / AliFMDDetector.cxx
CommitLineData
1a1fdef7 1/**************************************************************************
2 * Copyright(c) 2004, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
16/* $Id$ */
17
18//____________________________________________________________________
19//
20// Utility class to help implement the FMD geometry. This provides
21// the interface for the concrete geometry implementations of the FMD
22// sub-detectors.
23//
24// The AliFMDGeometry object owns the AliFMDDetector objects
25//
26// Latest changes by Christian Holm Christensen
27//
28#include "AliFMDDetector.h" // ALIFMDSUBDETECTOR_H
29#include "AliFMDRing.h" // ALIFMDRING_H
30#include <AliLog.h> // ALILOG_H
31
32//====================================================================
33ClassImp(AliFMDDetector)
34#if 0
35 ; // This is here to keep Emacs for indenting the next line
36#endif
37
38//____________________________________________________________________
39AliFMDDetector::AliFMDDetector(Int_t id, AliFMDRing* inner, AliFMDRing* outer)
40 : TNamed(Form("FMD%d", id), "Forward multiplicity ring"),
41 fId(id),
42 fInner(inner),
43 fOuter(outer)
44{
45 SetHoneycombThickness();
46 SetAlThickness();
47 SetInnerHoneyLowR(0);
48 SetInnerHoneyHighR(0);
49 SetInnerZ(0);
50 SetOuterZ(0);
51 SetOuterHoneyLowR(0);
52 SetOuterHoneyHighR(0);
53}
54
55//____________________________________________________________________
56void
57AliFMDDetector::Init()
58{
59 if (fInner) {
60 SetInnerHoneyLowR(fInner->GetLowR() + 1.);
61 SetInnerHoneyHighR(fInner->GetHighR() + 1.);
62 }
63 if (fOuter) {
64 SetOuterHoneyLowR(fOuter->GetLowR() + 1.);
65 SetOuterHoneyHighR(fOuter->GetHighR() + 1.);
66 }
67
68}
69
70//____________________________________________________________________
71AliFMDRing*
72AliFMDDetector::GetRing(Char_t id) const
73{
74 switch (id) {
75 case 'i':
76 case 'I': return GetInner();
77 case 'o':
78 case 'O': return GetOuter();
79 }
80 return 0;
81}
82
83//____________________________________________________________________
84Double_t
85AliFMDDetector::GetRingZ(Char_t id) const
86{
87 switch (id) {
88 case 'i':
89 case 'I': return GetInnerZ();
90 case 'o':
91 case 'O': return GetOuterZ();
92 }
93 return 0;
94}
95//____________________________________________________________________
96void
97AliFMDDetector::Detector2XYZ(Char_t ring,
98 UShort_t sector,
99 UShort_t strip,
100 Double_t& x,
101 Double_t& y,
102 Double_t& z) const
103{
104 AliFMDRing* r = GetRing(ring);
105 if (!r) return;
106 z = GetRingZ(ring);
107 r->Detector2XYZ(sector, strip, x, y, z);
108}
109
110//____________________________________________________________________
111//
112// EOF
113//