]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONLocalTriggerBoard.h
- Revised comments and adapted them for Doxygen
[u/mrichter/AliRoot.git] / MUON / AliMUONLocalTriggerBoard.h
index 4962a2b55e6c56f85e5cb38f5c581189d6cc0292..d598ba2adf0647540febcb0b53f7f62708d0cf8e 100644 (file)
@@ -5,7 +5,14 @@
 
 /* $Id$ */
 
-//*-- Author: Rachid Guernane (LPCCFd)
+/// \ingroup sim 
+/// \class AliMUONLocalTriggerBoard
+/// \brief Implementation of local trigger board objects
+///
+/// A local trigger board has as input a bit pattern and returns 
+/// the local trigger response after comparison w/ a LUT
+///
+/// \author Rachid Guernane (LPCCFd)
 
 #include "AliMUONTriggerBoard.h"
 
@@ -14,54 +21,67 @@ class AliMUONTriggerLut;
 class AliMUONLocalTriggerBoard : public AliMUONTriggerBoard 
 {
    public: 
+
+     enum ESwitch { 
+       kX2d = 0,
+       kX2m,
+       kX2u,
+       kOR0,
+       kOR1,
+       kENY,
+       kZeroAllYLSB,
+       kZeroDown,
+       kZeroMiddle,
+       kZeroUp };
+       
       AliMUONLocalTriggerBoard();
-      AliMUONLocalTriggerBoard(const char *name, Int_t a);
+      AliMUONLocalTriggerBoard(const char *name, Int_t a, AliMUONTriggerLut* lut);
       virtual ~AliMUONLocalTriggerBoard() {;}
+      
+      Bool_t HasLUT() const { return (fLUT != 0); }
+      
+      void SetLUT(AliMUONTriggerLut* lut) { fLUT = lut; }
 
       virtual void     Setbit(Int_t strip, Int_t cathode, Int_t chamber);
       virtual void     SetbitM(Int_t strip, Int_t cathode, Int_t chamber);
 
-      virtual void     Pattern(Option_t *option = "X Y"); // default option displays X then Y bp
+      virtual void     Pattern(Option_t *option = "X Y") const; // default option displays X then Y bp
 
       virtual void     Reset();
 
       virtual void     SetSwitch(Int_t i, Int_t value) {fSwitch[i] = value;}
 
-      virtual UShort_t GetSwitch(Int_t i) {return fSwitch[i];}
+      virtual UShort_t GetSwitch(Int_t i) const {return fSwitch[i];}
 
       virtual void     SetTC(Bool_t con) {fTC = con;}
 
-      virtual Bool_t   GetTC() {return fTC;}
+      virtual Bool_t   GetTC() const {return fTC;}
 
-               virtual void     SetNumber(Int_t nb) {fNumber = nb;}
+      virtual void     SetNumber(Int_t nb) {fNumber = nb;}
 
-               virtual Int_t    GetNumber() {return fNumber;}
+      virtual Int_t    GetNumber() const {return fNumber;}
 
       virtual void     Module(char *mod);
 
-      virtual void     GetX34(UShort_t *X) {for (Int_t i=0;i<2;i++) X[i] = fXY[0][i+2];}
+      virtual void     GetX34(UShort_t *X) const {for (Int_t i=0;i<2;i++) X[i] = fXY[0][i+2];}
 
       virtual void     SetX34(UShort_t *X) {for (Int_t i=0;i<2;i++) fXY[0][i+2] = X[i];}
 
-      virtual void     GetY(UShort_t *Y) {for (Int_t i=0;i<4;i++) Y[i] = fXY[1][i];}
+      virtual void     GetY(UShort_t *Y) const {for (Int_t i=0;i<4;i++) Y[i] = fXY[1][i];}
 
       virtual void     SetY(UShort_t *Y) {for (Int_t i=0;i<4;i++) fXY[1][i] = Y[i];}
 
-      virtual void     GetXY(UShort_t XY[2][4]) {for (Int_t i=0;i<2;i++) for (Int_t j=0;j<4;j++) XY[i][j] = fXY[i][j];}
+      virtual void     GetXY(UShort_t XY[2][4]) const {for (Int_t i=0;i<2;i++) for (Int_t j=0;j<4;j++) XY[i][j] = fXY[i][j];}
 
-      virtual UShort_t GetXY(Int_t i, Int_t j) {return fXY[i][j];} 
+      virtual UShort_t GetXY(Int_t i, Int_t j) const {return fXY[i][j];} 
 
       virtual void     SetXY(UShort_t XY[2][4]) {for (Int_t i=0;i<2;i++) for (Int_t j=0;j<4;j++) fXY[i][j] = XY[i][j];}
 
-      virtual void     Conf();
+      virtual void     Conf() const;
 
       virtual void     Response();
 
-//    inclusive masking
-      virtual void     Mask(UShort_t M[2][4]);
-
-//    exclusive masking
-      virtual void     Mask(char *in, UShort_t M);
+      virtual void     Mask(Int_t index, UShort_t value);
 
       virtual void     TrigX(Int_t ch1q[16], Int_t ch2q[16], Int_t ch3q[32], Int_t ch4q[32], 
                              Int_t coinc44);
@@ -77,66 +97,65 @@ class AliMUONLocalTriggerBoard : public AliMUONTriggerBoard
 
       virtual void     SetXYD(UShort_t V[2][4]) {for (Int_t i=0;i<2;i++) for (Int_t j=0;j<4;j++) fXYD[i][j] = V[i][j];}
 
-      virtual void     Scan(Option_t *option = "");
+      virtual void     Scan(Option_t *option = "") const;
 
-      virtual Int_t    GetI();
+      virtual Int_t    GetI() const;
 
       virtual void     LocalTrigger();
 
-      virtual Int_t    Triggered() {return fOutput;}
+      virtual Int_t    Triggered() const {return fOutput;}
 
-      virtual Int_t    GetStripX11() {return fStripX11;}
+      virtual Int_t    GetStripX11() const {return fStripX11;}
 
-      virtual Int_t    GetStripY11() {return fStripY11;}
+      virtual Int_t    GetStripY11() const {return fStripY11;}
 
-      virtual Int_t    GetDev() {return fDev;}
+      virtual Int_t    GetDev() const {return fDev;}
       
-               virtual void     SetCrate(TString crate) {fCrate = crate;}
-               virtual TString  GetCrate() {return fCrate;}
+      virtual void     SetCrate(TString crate) {fCrate = crate;}
 
-               
+      virtual TString  GetCrate() const {return fCrate;}
 
    protected:
       AliMUONLocalTriggerBoard(const AliMUONLocalTriggerBoard& right);
       AliMUONLocalTriggerBoard&  operator = (const AliMUONLocalTriggerBoard& right);
       
+      static const Int_t fgkCircuitId[234]; // old numbering (to be removed)
 
-      virtual void     Resp(Option_t *option); // local trigger info before ("I") and after ("F") LUT
+      virtual void     Resp(Option_t *option) const; // local trigger info before ("I") and after ("F") LUT
 
-      virtual void     BP(Option_t *option);   // display X/Y bp
+      virtual void     BP(Option_t *option) const;   // display X/Y bp
 
    private:
 
-      Int_t    fNumber;
+      Int_t    fNumber;           ///< Board number
 
-               TString  fCrate;
+      TString  fCrate;            ///< Crate name
 
-      UShort_t fSwitch[10], fXY[2][4], fXYU[2][4], fXYD[2][4], fMask[2][4];
+      UShort_t fSwitch[10];       ///< Switch
+      UShort_t fXY[2][4];         ///< Bit pattern
+      UShort_t fXYU[2][4];        ///< Bit pattern UP
+      UShort_t fXYD[2][4];        ///< Bit pattern DOWN
+      UShort_t fMask[2][4];       ///< Mask
 
-//    Transverse connector
-      Bool_t   fTC;
+      Bool_t   fTC;               ///< Transverse connector
 
-//    MT1 X position of the valid road 
-      Int_t    fStripX11;
+      Int_t    fStripX11;         ///< MT1 X position of the valid road 
 
-//    MT1 Y position of the valid road
-      Int_t    fStripY11;
+      Int_t    fStripY11;         ///< MT1 Y position of the valid road
 
-//    Deviation in [0;+30]
-      Int_t    fDev;
+      Int_t    fDev;              ///< Deviation in [0;+30]
 
-//    Pt cuts estimated from LUT
-      Int_t    fLutLpt[2];        
-      Int_t    fLutHpt[2];
-      Int_t    fLutApt[2];
+      Int_t    fLutLpt[2];        ///< Low Pt cuts estimated from LUT
+      Int_t    fLutHpt[2];        ///< High Pt cuts estimated from LUT
+      Int_t    fLutApt[2];        ///< All Pt cuts estimated from LUT
 
 //    Outputs of the local logic
-      Int_t    fOutput;
-      Int_t    fMinDevStrip[5];
-      Int_t    fMinDev[5];
-      Int_t    fCoordY[5];
+      Int_t    fOutput;           ///< Board has triggered
+      Int_t    fMinDevStrip[5];   ///< X (from algo)
+      Int_t    fMinDev[5];        ///< Dev (from algo)
+      Int_t    fCoordY[5];        ///< Y (from algo)
 
-      AliMUONTriggerLut *fLUT;
+      AliMUONTriggerLut *fLUT;    //!< Pointer to trigger LUT, that we do not own.
       
       ClassDef(AliMUONLocalTriggerBoard,1) 
 };