Line data Source code
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 GetX11Pos(Int_t localBoardId, Int_t istrip) const;
35 : Float_t GetY11Pos(Int_t localBoardId, Int_t istrip) const;
36 : Float_t GetY21Pos(Int_t localBoardId, Int_t istrip) const;
37 : Float_t GetZ11Pos(Int_t localBoardId, Int_t istrip) const;
38 : Float_t GetZ21Pos(Int_t localBoardId, Int_t istrip) const;
39 : Float_t GetX11Width(Int_t localBoardId, Int_t istrip) const;
40 : Float_t GetY11Width(Int_t localBoardId, Int_t istrip) const;
41 : Float_t GetY21Width(Int_t localBoardId, Int_t istrip) const;
42 :
43 : // void Print(Option_t* opt="") const;
44 : // void dump(const char* what, const Float_t* array, Int_t size);
45 : // void dump(const char* what, const Int_t* array, Int_t size);
46 :
47 : /// Set pointer to transformations
48 0 : void SetTransformer(const AliMUONGeometryTransformer* transformer) {fkTransformer = transformer;}
49 : /// Get pointer to transformations
50 0 : const AliMUONGeometryTransformer* GetTransformer() const {return fkTransformer;}
51 : Float_t PtCal(Int_t localBoardId, Int_t istripX, Int_t idev, Int_t istripY) const;
52 :
53 : private:
54 :
55 : void LoadYPos(AliMpLocalBoard* const localBoard);
56 : void LoadXPos(AliMpLocalBoard* const localBoard);
57 :
58 : Int_t FirstStrip(AliMpLocalBoard* localBoard);
59 :
60 : void FillXstrips(const Int_t icol,
61 : const Int_t iFirstStrip, const Int_t iLastStrip,
62 : Int_t liStripCircuit, const Bool_t is11);
63 :
64 : void FillYstrips(const Int_t iFirstStrip,
65 : const Int_t iLastStrip, Int_t liStripCircuit,
66 : const Bool_t doubling);
67 :
68 : void XYGlobal(const AliMpPad& pad,
69 : Double_t* xyGlobal);
70 :
71 :
72 : private:
73 : TArrayF fXpos11[235]; ///< X position of Y strips in MC11
74 : TArrayF fYpos11[235]; ///< Y position of X strips in MC11
75 : TArrayF fYpos21[235]; ///< Y position of X strips in MC21
76 : TArrayF fZpos11[235]; ///< Z position of X strips in MC11
77 : TArrayF fZpos21[235]; ///< Z position of X strips in MC21
78 : TArrayF fXwidth11[235]; ///< width of Y strips in MC11
79 : TArrayF fYwidth11[235]; ///< width of X strips in MC11
80 : TArrayF fYwidth21[235]; ///< width of X strips in MC21
81 :
82 : const AliMUONGeometryTransformer* fkTransformer; //!<! pointer to transformation
83 : const AliMpVSegmentation* fkCurrentSeg; //!<! current segmentation
84 :
85 : Int_t fCurrentDetElem; //!<! current detection elt id
86 : Int_t fCurrentLocalBoard; //!<! current local board id
87 :
88 18 : ClassDef(AliMUONTriggerCircuit,2) // Trigger Circuit class
89 : };
90 : #endif
|