Resolved merge conflict
[u/mrichter/AliRoot.git] / TRD / AliTRDgeometry.h
CommitLineData
f7336fa3 1#ifndef TRDgeometry_h
2#define TRDgeometry_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#include <TObject.h>
9#include <TMath.h>
10
11#include "AliRun.h"
12#include "AliRecPoint.h"
13
14#include "AliTRDconst.h"
15
16class AliTRDgeometry : public AliGeometry {
17
18 public:
19
20 AliTRDgeometry();
21 ~AliTRDgeometry();
22
23 virtual void CreateGeometry(Int_t *);
24 virtual Int_t IsVersion() const = 0;
25 virtual void Init();
26 virtual Bool_t Local2Global(Int_t d, Float_t *local, Float_t *global);
27 virtual Bool_t Local2Global(Int_t p, Int_t c, Int_t s, Float_t *local, Float_t *global);
28 virtual Bool_t Rotate(Int_t d, Float_t *pos, Float_t *rot);
29 virtual Bool_t RotateBack(Int_t d, Float_t *rot, Float_t *pos);
30
31 virtual void SetRowPadSize(Float_t size) { fRowPadSize = size; };
32 virtual void SetColPadSize(Float_t size) { fColPadSize = size; };
33 virtual void SetTimeBinSize(Float_t size) { fTimeBinSize = size; };
34
35 virtual Int_t GetDetector(Int_t p, Int_t c, Int_t s);
36 virtual Int_t GetPlane(Int_t d);
37 virtual Int_t GetChamber(Int_t d);
38 virtual Int_t GetSector(Int_t d);
39
40 virtual Int_t GetRowMax(Int_t p, Int_t c, Int_t s) { return fRowMax[p][c][s]; };
41 virtual Int_t GetColMax(Int_t p) { return fColMax[p]; };
42 virtual Int_t GetTimeMax() { return fTimeMax; };
43
44 virtual Float_t GetRow0(Int_t p, Int_t c, Int_t s) { return fRow0[p][c][s]; };
45 virtual Float_t GetCol0(Int_t p) { return fCol0[p]; };
46 virtual Float_t GetTime0(Int_t p) { return fTime0[p]; };
47
48 virtual Float_t GetRowPadSize() { return fRowPadSize; };
49 virtual Float_t GetColPadSize() { return fColPadSize; };
50 virtual Float_t GetTimeBinSize() { return fTimeBinSize; };
51
52 virtual void GetGlobal(const AliRecPoint * p, TVector3 & pos, TMatrix & mat);
53 virtual void GetGlobal(const AliRecPoint * p, TVector3 & pos);
54
55 protected:
56
57 Float_t fCwidth[kNplan]; // Width of the chambers
58
59 Int_t fRowMax[kNplan][kNcham][kNsect]; // Number of pad-rows
60 Int_t fColMax[kNplan]; // Number of pad-columns
61 Int_t fTimeMax; // Number of time buckets
62
63 Float_t fRow0[kNplan][kNcham][kNsect]; // Row-position of pad 0
64 Float_t fCol0[kNplan]; // Column-position of pad 0
65 Float_t fTime0[kNplan]; // Time-position of pad 0
66
67 Float_t fRowPadSize; // Pad size in z-direction
68 Float_t fColPadSize; // Pad size in rphi-direction
69 Float_t fTimeBinSize; // Size of the time buckets
70
71 ClassDef(AliTRDgeometry,1) // TRD geometry base class
72
73};
74
75#endif