- Adding check and flagging for HG present
[u/mrichter/AliRoot.git] / MUON / AliMUONTriggerCircuit.h
CommitLineData
8ff54bb6 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//
f3a2eb6b 9/// \ingroup base
8ff54bb6 10/// \class AliMUONTriggerCircuit
11/// \brief MUON Trigger circuit
12///
78649106 13// Author Philippe Crochet (LPCCFd)
8ff54bb6 14
15#include <TObject.h>
7103ac2d 16#include <TArrayF.h>
17
7103ac2d 18class AliMpLocalBoard;
da142235 19class AliMUONGeometryTransformer;
20class AliMpPad;
21class AliMpVSegmentation;
8ff54bb6 22
23class AliMUONTriggerCircuit : public TObject
24{
25public:
7103ac2d 26 AliMUONTriggerCircuit(const AliMUONGeometryTransformer* transformer);
8ff54bb6 27 virtual ~AliMUONTriggerCircuit();
28 // copy constructor
29 AliMUONTriggerCircuit(const AliMUONTriggerCircuit& AliMUONTriggerCircuit);
30 // assignment operator
31 AliMUONTriggerCircuit& operator=(const AliMUONTriggerCircuit& AliMUONTriggerCircuit);
32
8ff54bb6 33 //--- methods which return member data related info
bdfb6eef 34 Float_t GetX11Pos(Int_t localBoardId, Int_t istrip) const;
7103ac2d 35 Float_t GetY11Pos(Int_t localBoardId, Int_t istrip) const;
36 Float_t GetY21Pos(Int_t localBoardId, Int_t istrip) const;
bdfb6eef 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;
7103ac2d 42
8ff54bb6 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
71a2d3aa 47 /// Set pointer to transformations
da142235 48 void SetTransformer(const AliMUONGeometryTransformer* transformer) {fkTransformer = transformer;}
745f40c7 49 /// Get pointer to transformations
da142235 50 const AliMUONGeometryTransformer* GetTransformer() const {return fkTransformer;}
afeb2b33 51 Float_t PtCal(Int_t localBoardId, Int_t istripX, Int_t idev, Int_t istripY) const;
52
8ff54bb6 53private:
54
da142235 55 void LoadYPos(AliMpLocalBoard* const localBoard);
56 void LoadXPos(AliMpLocalBoard* const localBoard);
8ff54bb6 57
7103ac2d 58 Int_t FirstStrip(AliMpLocalBoard* localBoard);
59
60 void FillXstrips(const Int_t icol,
8ff54bb6 61 const Int_t iFirstStrip, const Int_t iLastStrip,
bdfb6eef 62 Int_t liStripCircuit, const Bool_t is11);
8ff54bb6 63
7103ac2d 64 void FillYstrips(const Int_t iFirstStrip,
8ff54bb6 65 const Int_t iLastStrip, Int_t liStripCircuit,
66 const Bool_t doubling);
67
7103ac2d 68 void XYGlobal(const AliMpPad& pad,
69 Double_t* xyGlobal);
8ff54bb6 70
71
72private:
7103ac2d 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
bdfb6eef 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
8ff54bb6 81
da142235 82 const AliMUONGeometryTransformer* fkTransformer; //!< pointer to transformation
83 const AliMpVSegmentation* fkCurrentSeg; //!< current segmentation
7103ac2d 84
85 Int_t fCurrentDetElem; //!< current detection elt id
86 Int_t fCurrentLocalBoard; //!< current local board id
8ff54bb6 87
bdfb6eef 88 ClassDef(AliMUONTriggerCircuit,2) // Trigger Circuit class
8ff54bb6 89};
90#endif