]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONGeometryTransformStore.h
Access to angle alpha in TRD (M.Ivanov)
[u/mrichter/AliRoot.git] / MUON / AliMUONGeometryTransformStore.h
CommitLineData
89cc3034 1// $Id$
2//
3// Class AliMUONGeometryTransformStore
4// -----------------------------------
5// The class contains the array of transformations fDETransforms
6// of the detection elements from a defined reference frame (MUON chamber )
7// to the detection element frame.
8// The detection elements numbering:
9// DetElemId = chamberId*100 + [50] + detElemNum
10// where chamberId = 1, 2, ..., 14
11// detElemNum = 0, 1, ...
12// The number 50 is added to distinguish detector elements
13// in the left and the right hemispheres.
14//
15// Author: Ivana Hrivnacova, IPN Orsay
16
17#ifndef ALI_MUON_GEOMETRY_TRANSFORM_STORE_H
18#define ALI_MUON_GEOMETRY_TRANSFORM_STORE_H
19
20#include <Riostream.h>
21#include <TObject.h>
22#include <TObjArray.h>
23#include <TArrayI.h>
24
25#include "AliMUONGeometrySVMap.h"
26
27class TGeoCombiTrans;
28class TGeoTranslation;
29
30class AliMUONGeometryTransformStore : public TObject
31{
32 public:
33 AliMUONGeometryTransformStore(
34 Int_t firstDetElemId, Int_t nofDetElems,
35 AliMUONGeometrySVMap* svMap);
36 AliMUONGeometryTransformStore();
37 virtual ~AliMUONGeometryTransformStore();
38
39 // methods
40 void Add(Int_t detElemId,
41 const TString& alignedVolume,
42 const TGeoCombiTrans& transformation);
43
44 virtual void Print(Option_t* /*option*/) const;
45
46 // get methods
47 const TGeoCombiTrans* Get(Int_t detElemId) const;
48 const TGeoCombiTrans* FindBySensitiveVolume(const TString& volumePath) const;
49
50 protected:
51 AliMUONGeometryTransformStore(const AliMUONGeometryTransformStore& rhs);
52
53 // operators
54 AliMUONGeometryTransformStore& operator
55 = (const AliMUONGeometryTransformStore& rhs);
56
57 private:
58 // methods
59 Int_t GetDetElementIndex(Int_t detElemId) const;
60 Int_t GetDetElementId(Int_t detElemIndex) const;
61
62 // data members
63 static const Int_t fgkHemisphere; // The constant to distinguish
64 // the left/right hemispere
65
66 Int_t fFirstDetElemId; // The first detection element Id
67 Int_t fNofDetElems; // Number of detection elements
68 TObjArray fDETransforms; // The array of transformations
69 AliMUONGeometrySVMap* fSVMap; // The map of sensitive volumes
70 // and detector element id
71
72 ClassDef(AliMUONGeometryTransformStore,1) // MUON transformations store
73};
74
75#endif //ALI_MUON_GEOMETRY_TRANSFORM_STORE_H