]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONTriggerCircuit.h
Merging of the three alignment macros into one
[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 <TArrayF.h>
17
18 class AliMpLocalBoard;
19 class AliMUONGeometryTransformer;
20 class AliMpPad;
21 class AliMpVSegmentation;
22
23 class AliMUONTriggerCircuit : public TObject 
24 {
25 public: 
26   AliMUONTriggerCircuit(const AliMUONGeometryTransformer* transformer);  
27   virtual ~AliMUONTriggerCircuit();
28      // copy constructor
29   AliMUONTriggerCircuit(const AliMUONTriggerCircuit& AliMUONTriggerCircuit); 
30   // assignment operator
31   AliMUONTriggerCircuit& operator=(const AliMUONTriggerCircuit& AliMUONTriggerCircuit); 
32
33   //--- methods which return member data related info
34   Float_t GetY11Pos(Int_t localBoardId, Int_t istrip) const;
35   Float_t GetY21Pos(Int_t localBoardId, Int_t istrip) const;
36   Float_t GetX11Pos(Int_t localBoardId, Int_t istrip) const;
37
38   //  void Print(Option_t* opt="") const;
39   //  void dump(const char* what, const Float_t* array, Int_t size);
40   //  void dump(const char* what, const Int_t* array, Int_t size);
41   
42   /// Set pointer to transformations
43   void  SetTransformer(const AliMUONGeometryTransformer* transformer) {fkTransformer = transformer;}
44   /// Get pointer to transformations
45   const AliMUONGeometryTransformer* GetTransformer() const {return fkTransformer;}
46   Float_t PtCal(Int_t localBoardId, Int_t istripX, Int_t idev, Int_t istripY) const;
47   
48 private:
49
50   void LoadYPos(AliMpLocalBoard* const localBoard);
51   void LoadXPos(AliMpLocalBoard* const localBoard);
52
53   Int_t FirstStrip(AliMpLocalBoard* localBoard);
54
55   void FillXstrips(const Int_t icol, 
56                    const Int_t iFirstStrip, const Int_t iLastStrip,
57                    Int_t liStripCircuit, TArrayF& ypos);
58   
59   void FillYstrips(const Int_t iFirstStrip,
60                    const Int_t iLastStrip, Int_t liStripCircuit,
61                    const Bool_t doubling);
62
63   void XYGlobal(const AliMpPad& pad,
64                 Double_t* xyGlobal);    
65   
66
67 private:    
68   TArrayF fXpos11[235];         ///< X position of Y strips in MC11
69   TArrayF fYpos11[235];         ///< Y position of X strips in MC11
70   TArrayF fYpos21[235];         ///< Y position of X strips in MC21
71
72   const AliMUONGeometryTransformer* fkTransformer; //!< pointer to transformation
73   const AliMpVSegmentation* fkCurrentSeg;          //!< current segmentation
74
75   Int_t fCurrentDetElem;                          //!< current detection elt id
76   Int_t fCurrentLocalBoard;                       //!< current local board id
77
78   ClassDef(AliMUONTriggerCircuit,1) // Trigger Circuit class
79 };
80 #endif