]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONTriggerCircuitNew.h
Adding MuonSim.SetMakeTrigger(MUON); now required by the new CTP framework (Christian)
[u/mrichter/AliRoot.git] / MUON / AliMUONTriggerCircuitNew.h
1 #ifndef ALIMUONTRIGGERCIRCUITNEW_H
2 #define ALIMUONTRIGGERCIRCUITNEW_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 AliMUONTriggerCircuitNew
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
24 class AliMUONTriggerCircuitNew : public TObject 
25 {
26 public: 
27   AliMUONTriggerCircuitNew();  
28   virtual ~AliMUONTriggerCircuitNew(){;} 
29   
30   // initializations
31   void Init(Int_t iCircuit, const AliMUONTriggerCrateStore& crates);    
32   
33   //--- methods which return member data related info
34   Float_t GetY11Pos(Int_t istrip) const;
35   Float_t GetY21Pos(Int_t istrip) const;
36   Float_t GetX11Pos(Int_t istrip) const;
37   Int_t   DetElemId(Int_t ichamber, char side, Int_t iline);
38   void DecodeBoardName(const char* boardName, char& side,
39                        Int_t& iLine,
40                        Int_t& iCol);
41   Int_t DetElemId(Int_t ichamber, const char* localBoardName);
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 protected:
48     // copy constructor
49     AliMUONTriggerCircuitNew(const AliMUONTriggerCircuitNew& AliMUONTriggerCircuitNew); 
50   // assignment operator
51   AliMUONTriggerCircuitNew& operator=(const AliMUONTriggerCircuitNew& AliMUONTriggerCircuitNew); 
52   
53 private:
54     void LoadYPos(const AliMUONTriggerCrateStore& crates);
55   void LoadXPos(const AliMUONTriggerCrateStore& crates);
56   Int_t FirstStrip(const char* localBoardName);
57   void FillXstrips(const AliMUONGeometryTransformer* kGeomTransformer,
58                    const AliMpVSegmentation* seg,
59                    const Int_t detElemId, const Int_t icol, 
60                    const Int_t iFirstStrip, const Int_t iLastStrip,
61                    Int_t liStripCircuit, Float_t *tab);
62   
63   void FillYstrips(const AliMUONGeometryTransformer* kGeomTransformer,
64                    const AliMpVSegmentation* seg,
65                    const Int_t detElemId, const Int_t iFirstStrip,
66                    const Int_t iLastStrip, Int_t liStripCircuit,
67                    const Bool_t doubling);
68   void XYGlobal(
69                 const AliMUONGeometryTransformer* kGeomTransformer,
70                 Int_t detElemId, const AliMpPad& pad,
71                 Double_t xyGlobal[4]);    
72   
73   ClassDef(AliMUONTriggerCircuitNew,1) // Trigger Circuit class
74     
75 private:    
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 };
82 #endif