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