]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONTriggerCircuit.h
add GetTransformer (Christian)
[u/mrichter/AliRoot.git] / MUON / AliMUONTriggerCircuit.h
1 #ifndef ALIMUONTRIGGERCIRCUIT_H
2 #define ALIMUONTRIGGERCIRCUIT_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 // Revision of includes 07/05/2004
8 //
9 /// \ingroup base
10 /// \class AliMUONTriggerCircuit
11 /// \brief MUON Trigger circuit
12 ///
13 //  Author Philippe Crochet (LPCCFd)
14
15 #include <TObject.h>
16 #include <TObjArray.h>
17 #include "AliMpPad.h"
18 #include "AliMUONGeometryTransformer.h"
19 #include "AliMpVSegmentation.h"
20
21 class TObjArray;
22 class AliMUONTriggerCrateStore;
23 class AliMUONGeometryTransformer;
24
25 class AliMUONTriggerCircuit : public TObject 
26 {
27 public: 
28   AliMUONTriggerCircuit();  
29   virtual ~AliMUONTriggerCircuit();
30      // copy constructor
31   AliMUONTriggerCircuit(const AliMUONTriggerCircuit& AliMUONTriggerCircuit); 
32   // assignment operator
33   AliMUONTriggerCircuit& operator=(const AliMUONTriggerCircuit& AliMUONTriggerCircuit); 
34
35   // initializations
36   void Init(Int_t iCircuit, const AliMUONTriggerCrateStore& crates);    
37   
38   //--- methods which return member data related info
39   Float_t GetY11Pos(Int_t istrip) const;
40   Float_t GetY21Pos(Int_t istrip) const;
41   Float_t GetX11Pos(Int_t istrip) const;
42   Int_t   DetElemId(Int_t ichamber, char side, Int_t iline);
43   void DecodeBoardName(const char* boardName, char& side,
44                        Int_t& iLine,
45                        Int_t& iCol);
46   Int_t DetElemId(Int_t ichamber, const char* localBoardName);
47   
48   //  void Print(Option_t* opt="") const;
49   //  void dump(const char* what, const Float_t* array, Int_t size);
50   //  void dump(const char* what, const Int_t* array, Int_t size);
51   
52   /// Set pointer to transformations
53   void  SetTransformer(const AliMUONGeometryTransformer* transformer) {fTransformer = transformer;}
54   /// Get pointer to transformations
55   const AliMUONGeometryTransformer* GetTransformer() {return fTransformer;}
56
57 private:
58
59   void LoadYPos(const AliMUONTriggerCrateStore& crates);
60   void LoadXPos(const AliMUONTriggerCrateStore& crates);
61   Int_t FirstStrip(const char* localBoardName);
62
63   void FillXstrips(const AliMpVSegmentation* seg,
64                    const Int_t detElemId, const Int_t icol, 
65                    const Int_t iFirstStrip, const Int_t iLastStrip,
66                    Int_t liStripCircuit, Float_t *tab);
67   
68   void FillYstrips(const AliMpVSegmentation* seg,
69                    const Int_t detElemId, const Int_t iFirstStrip,
70                    const Int_t iLastStrip, Int_t liStripCircuit,
71                    const Bool_t doubling);
72
73   void XYGlobal(Int_t detElemId, const AliMpPad& pad,
74                 Double_t xyGlobal[4]);    
75   
76
77 private:    
78   Int_t fILocalBoard;          ///< local board number
79   Float_t fXpos11[16];         ///< X position of Y strips in MC11
80   Float_t fYpos11[31];         ///< Y position of X strips in MC11
81   Float_t fYpos21[63];         ///< Y position of X strips in MC21
82
83   const AliMUONGeometryTransformer* fTransformer; //!< pointer to transformation
84
85   ClassDef(AliMUONTriggerCircuit,1) // Trigger Circuit class
86 };
87 #endif