Code from MUON-dev joined
[u/mrichter/AliRoot.git] / MUON / AliMUONTriggerCircuit.h
1 #ifndef ALIMUONTRIGGERCIRCUIT_H
2 #define ALIMUONTRIGGERCIRCUIT_H
3
4 #include "TObjArray.h"
5 #include <iostream.h>
6 #include "AliMUONSegmentationTrigger.h"
7
8 class AliMUONSegmentationTrigger;
9 //----------------------------------------------
10 class AliMUONTriggerCircuit : 
11 public TObject {
12  public: 
13   AliMUONTriggerCircuit();  
14   virtual ~AliMUONTriggerCircuit(){;} 
15   // copy constructor
16   AliMUONTriggerCircuit(const AliMUONTriggerCircuit& AliMUONTriggerCircuit); 
17   // assignment operator
18   AliMUONTriggerCircuit& operator=(const AliMUONTriggerCircuit& AliMUONTriggerCircuit); 
19
20   // initializations
21   void Init(Int_t iCircuit);    
22   
23   // get calculated pt
24   Float_t PtCal(Int_t istripX, Int_t idev, Int_t istripY);
25
26   //--- methods which return member data related info
27   Int_t   GetIdCircuit();
28   Int_t   GetIdModule();
29   Int_t   GetNstripX();
30   Int_t   GetNstripY();
31   Int_t   GetPosCircuit();
32   Int_t   GetIdCircuitD();
33   Int_t   GetICircuitD();
34   Int_t   GetIdCircuitU();
35   Int_t   GetICircuitU();
36   Int_t   GetX2m();
37   Int_t   GetX2ud();
38   void    GetOrMud(Int_t orMud[2]);
39   Int_t   GetXcode(Int_t chamber, Int_t istrip);
40   Int_t   GetYcode(Int_t chamber, Int_t istrip);
41   Float_t GetY11Pos(Int_t istrip);
42   Float_t GetY21Pos(Int_t istrip);
43   Float_t GetX11Pos(Int_t istrip);
44  
45   //  Get reference to segmentation model
46   virtual AliMUONSegmentation*  SegmentationModel(Int_t isec) {
47       return (AliMUONSegmentation *) (*fSegmentation)[isec-1];
48   }
49
50  protected:
51   TObjArray            *fSegmentation;    // pointer to segmentation
52
53  private:
54   Int_t CircuitNumber(Int_t idCircuit);
55   Int_t ModuleNumber(Int_t idModule); 
56   Int_t Module(Int_t idCircuit);
57   Int_t Position(Int_t idCircuit);
58   void LoadX2();
59   void LoadXCode();
60   void LoadYCode();
61   void LoadYPos();
62   void LoadXPos();
63   
64   ClassDef(AliMUONTriggerCircuit,1) // Trigger Circuit class
65     
66  private:    
67   Int_t fidCircuit;            // circuit Id number
68   Int_t fx2m;                  // internal info needed by TriggerDecision
69   Int_t fx2ud;                 // internal info needed by TriggerDecision
70   Int_t fOrMud[2];             // internal info needed by TriggerDecision
71   Int_t fXcode[4][32];         // code of X strips
72   Int_t fYcode[4][32];         // code of Y strips 
73   Float_t fXpos11[16];         // X position of Y strips in MC11
74   Float_t fYpos11[31];         // Y position of X strips in MC11
75   Float_t fYpos21[63];         // Y position of X strips in MC21
76
77 };
78 #endif
79
80
81