Continuation of TFlukaGeo based on TGeo.
[u/mrichter/AliRoot.git] / CRT / AliCRTModule.h
CommitLineData
582646d8 1#ifndef ALICRTMODULE_H
2#define ALICRTMODULE_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6/* $Id: */
7/////////////////////////////////
8// CRT module geometry manager //
9/////////////////////////////////
10
11#include <TNamed.h>
12
13class AliCRTModule : public TNamed {
14public:
15 AliCRTModule();
16 AliCRTModule(const char* name, const char* title);
17 AliCRTModule(const AliCRTModule& mod);
18 virtual ~AliCRTModule();
19
20 AliCRTModule& operator=(const AliCRTModule& mod);
21
60a4d8d4 22 void SetScintillatorThickness(Float_t thickness);
23 void SetScintillatorWidth(Float_t width);
24 void SetScintillatorLenght(Float_t length);
582646d8 25
60a4d8d4 26 void SetFrameThickness(Float_t thickness);
27 void SetFrameWidth(Float_t width);
28 void SetFrameLength(Float_t length);
582646d8 29
60a4d8d4 30 void SetNumberOfColumns(Int_t ncols);
31 void SetNumberOfRows(Int_t nrows);
582646d8 32
60a4d8d4 33 void SetZGap(Float_t zgap);
34 void SetXGap(Float_t xgap);
582646d8 35
60a4d8d4 36 Float_t ScintillatorThickness() const;
37 Float_t ScintillatorWidth() const;
38 Float_t ScintillatorLenght() const;
582646d8 39
60a4d8d4 40 Float_t FrameThickness() const;
41 Float_t FrameWidth() const;
42 Float_t FrameLength() const;
582646d8 43
60a4d8d4 44 Int_t NumberOfModules() const;
45 Int_t NumberOfColumns() const;
46 Int_t NumberOfRows() const;
582646d8 47
60a4d8d4 48 Float_t ZGap() const;
49 Float_t XGap() const;
582646d8 50
51private:
52 Float_t fScintillatorThickness; // Scintillator thickness
53 Float_t fScintillatorWidth; // Scintillator width
54 Float_t fScintillatorLength; // Scintillator length
55 Float_t fFrameThickness; // Aluminium frame thickness
56 Float_t fFrameWidth; // Aluminium frame width
57 Float_t fFrameLength; // Aliuminium frame length
58 Int_t fNColumns;//Number of modules per column per magnet face (z coordinate)
59 Int_t fNRows; // Number of module rows per magnet face (x coordinate)
60 Float_t fZGap; // Gap in Z betwen modules
61 Float_t fXGap; // Gap in X betwen modules
62 ClassDef(AliCRTModule, 1)// CRT module geometry manager
63};
64
60a4d8d4 65inline void AliCRTModule::SetScintillatorThickness(Float_t thick)
582646d8 66{ fScintillatorThickness = thick; }
67
60a4d8d4 68inline void AliCRTModule::SetScintillatorWidth(Float_t width)
582646d8 69{ fScintillatorWidth = width; }
70
60a4d8d4 71inline void AliCRTModule::SetScintillatorLenght(Float_t length)
582646d8 72{ fScintillatorLength = length; }
73
60a4d8d4 74inline void AliCRTModule::SetFrameThickness(Float_t thick)
582646d8 75{ fFrameThickness = thick; }
76
60a4d8d4 77inline void AliCRTModule::SetFrameWidth(Float_t width)
582646d8 78{ fFrameWidth = width; }
79
60a4d8d4 80inline void AliCRTModule::SetFrameLength(Float_t length)
582646d8 81{ fFrameLength = length; }
82
60a4d8d4 83inline void AliCRTModule::SetNumberOfColumns(Int_t ncols)
582646d8 84{ fNColumns = ncols; }
85
60a4d8d4 86inline void AliCRTModule::SetNumberOfRows(Int_t nrows)
582646d8 87{ fNRows = nrows; }
88
60a4d8d4 89inline void AliCRTModule::SetZGap(Float_t zgap)
582646d8 90{ fZGap = zgap; }
91
60a4d8d4 92inline void AliCRTModule::SetXGap(Float_t xgap)
582646d8 93{ fXGap = xgap; }
94
60a4d8d4 95inline Float_t AliCRTModule::ScintillatorThickness() const
582646d8 96{ return fScintillatorThickness; }
97
60a4d8d4 98inline Float_t AliCRTModule::ScintillatorWidth() const
582646d8 99{ return fScintillatorWidth; }
100
60a4d8d4 101inline Float_t AliCRTModule::ScintillatorLenght() const
582646d8 102{ return fScintillatorLength; }
103
60a4d8d4 104inline Float_t AliCRTModule::FrameThickness() const
582646d8 105{ return fFrameThickness; }
106
60a4d8d4 107inline Float_t AliCRTModule::FrameWidth() const
582646d8 108{ return fFrameWidth; }
109
60a4d8d4 110inline Float_t AliCRTModule::FrameLength() const
582646d8 111{ return fFrameLength; }
112
60a4d8d4 113inline Int_t AliCRTModule::NumberOfModules() const
582646d8 114{ return fNColumns*fNRows; }
115
60a4d8d4 116inline Int_t AliCRTModule::NumberOfColumns() const
582646d8 117{ return fNColumns; }
118
60a4d8d4 119inline Int_t AliCRTModule::NumberOfRows() const
582646d8 120{ return fNRows; }
121
60a4d8d4 122inline Float_t AliCRTModule::ZGap() const
582646d8 123{ return fZGap; }
124
60a4d8d4 125inline Float_t AliCRTModule::XGap() const
582646d8 126{ return fXGap; }
127#endif // ALICRTMODULE_H