LCOV - code coverage report
Current view: top level - MUON/MUONevaluation - AliMUONTriggerGUIboard.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 39 2.6 %
Date: 2016-06-14 17:26:59 Functions: 1 41 2.4 %

          Line data    Source code
       1             : #ifndef ALIMUONTRIGGERGUIBOARD_H
       2             : #define ALIMUONTRIGGERGUIBOARD_H
       3             : 
       4             : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
       5             :  * See cxx source for full Copyright notice                               */
       6             : 
       7             : /// \ingroup evaluation
       8             : /// \class AliMUONTriggerGUIboard
       9             : /// \brief Trigger GUI utility class: single board object
      10             : //  Author Bogdan Vulpescu, LPC Clermont-Ferrand
      11             : 
      12             : #include "AliMpPad.h"
      13             : 
      14             : #include <TString.h>
      15             : #include <TObject.h>
      16             : 
      17             : class TClonesArray;
      18             : class TBox;
      19             : 
      20             : class AliMUONTriggerGUIboard : public TObject
      21             : {
      22             : 
      23             : public:
      24             : 
      25             :   AliMUONTriggerGUIboard();
      26             :   AliMUONTriggerGUIboard(TRootIOCtor* ioCtor);
      27             :   virtual ~AliMUONTriggerGUIboard();
      28             : 
      29             :   /// get the standard name of this board
      30           0 :   Char_t  *GetBoardName()   const { return (Char_t*)(fName->Data()); };
      31             :   /// get the name of the crate containing this board
      32           0 :   Char_t  *GetCrateName()   const { return (Char_t*)(fCrateName->Data()); };
      33             :   /// get the working status of this board
      34           0 :   UShort_t GetStatus() const { return fStatus; };
      35             :   /// get the number of this board
      36           0 :   Int_t    GetNumber() const { return fID; };
      37             :   /// get the id of the detector element
      38           0 :   Int_t    GetDetElemId() const { return fDetElemId; };
      39             :   /// get the id of the circuit
      40           0 :   Int_t    GetIdCircuit() const { return fIdCircuit; };
      41             :   /// get detector side (Left=0 , Right=1)
      42             :   Int_t GetSide() const;
      43             :   /// get line
      44             :   Int_t GetLine() const;
      45             :   /// get column
      46             :   Int_t GetCol() const;
      47             : 
      48             :   /// set the working status of this board
      49           0 :   void SetStatus(UShort_t s) { fStatus = s; };
      50             :   /// set the standard name of this board
      51           0 :   void SetBoardName(const Char_t *name) { fName = new TString(name); };
      52             :   /// set the name of the crate containing this board
      53           0 :   void SetCrateName(const Char_t *name) { fCrateName = new TString(name); };
      54             :   /// set the number of the detector element containing this board
      55           0 :   void SetDetElemId(Int_t id) { fDetElemId = id; };
      56             :   /// set the number of this board
      57           0 :   void SetNumber(Int_t id) { fID = id; }
      58             : 
      59             :   /// add a mapping x-pad
      60             :   void AddPadX(const AliMpPad &pad, Int_t ich) 
      61             :   { 
      62           0 :     new ((*fPadsX[ich])[fNPadsX[ich]++]) AliMpPad(pad); 
      63           0 :   }
      64             :   /// add a mapping y-pad
      65             :   void AddPadY(const AliMpPad &pad, Int_t ich) 
      66             :   { 
      67           0 :     new ((*fPadsY[ich])[fNPadsY[ich]++]) AliMpPad(pad); 
      68           0 :   }
      69             :   /// create the display geometry from the mapping pads
      70             :   void MakeGeometry();
      71             : 
      72             :   /// set an x-strip digit in a chamber with amplitude = amp
      73             :   void SetDigitX(Int_t imt, Int_t is, Int_t amp) { 
      74           0 :     fXDig[imt][is] = (UChar_t)amp; }; 
      75             :   /// set a  y-strip digit in a chamber with amplitude = amp
      76             :   void SetDigitY(Int_t imt, Int_t is, Int_t amp) { 
      77           0 :     fYDig[imt][is] = (UChar_t)amp; }; 
      78             :   /// get neighbouring boards with common y strips
      79           0 :   UChar_t GetYOver() const  { return fYOver; };
      80             :   /// get the board position inside the detector element in y direction
      81           0 :   UChar_t GetPosition() const { return fPosition; };
      82             :   /// get the digit amplitude for an x-strip in a given chamber
      83           0 :   Int_t GetXDig(Int_t imt, Int_t is) const { return fXDig[imt][is]; };
      84             :   /// get the digit amplitude for a  y-strip in a given chamber
      85           0 :   Int_t GetYDig(Int_t imt, Int_t is) const { return fYDig[imt][is]; };
      86             : 
      87             :   /// set x-strip box for display
      88             :   void SetXDigBox(Int_t imt, Int_t is, Double_t x1, Double_t y1, Double_t x2, Double_t y2);
      89             :   /// set y-strip box for display
      90             :   void SetYDigBox(Int_t imt, Int_t is, Double_t x1, Double_t y1, Double_t x2, Double_t y2);
      91             : 
      92             :   /// get x-strip box for display
      93           0 :   TBox *GetXDigBox(Int_t imt, Int_t is) const { return fXDigBox[imt][is]; };
      94             :   /// get y-strip box for display
      95           0 :   TBox *GetYDigBox(Int_t imt, Int_t is) const { return fYDigBox[imt][is]; };
      96             : 
      97             :   /// get x-center of the board in chamber imt
      98           0 :   Float_t GetXCenter(Int_t imt) const { return fXCenter[imt]; };
      99             :   /// get y-center of the board in chamber imt
     100           0 :   Float_t GetYCenter(Int_t imt) const { return fYCenter[imt]; };
     101             :   /// get z-center of the board in chamber imt
     102           0 :   Float_t GetZCenter(Int_t imt) const { return fZCenter[imt]; };
     103             :   /// get x-width of the board in chamber imt
     104           0 :   Float_t GetXWidth(Int_t imt)  const { return fXWidth[imt]; };
     105             :   /// get y-width of the board in chamber imt
     106           0 :   Float_t GetYWidth(Int_t imt)  const { return fYWidth[imt]; };
     107             : 
     108             :   /// get x-index in detector element for an x-strip
     109           0 :   Int_t GetXSix()  const { return fXSix;  };
     110             :   /// get first y-index in detector element for an x-strip
     111           0 :   Int_t GetXSiy1() const { return fXSiy1; };
     112             :   /// get last  y-index in detector element for an x-strip
     113           0 :   Int_t GetXSiy2() const { return fXSiy2; };
     114             :   /// get first x-index in detector element for a  y-strip
     115           0 :   Int_t GetYSix1() const { return fYSix1; };
     116             :   /// get last  x-index in detector element for a  y-strip
     117           0 :   Int_t GetYSix2() const { return fYSix2; };
     118             :   /// get y-index in detector element for a y-strip
     119           0 :   Int_t GetYSiy()  const { return fYSiy;  };
     120             :   /// get number of x strips
     121           0 :   Int_t GetNStripX() const { return GetXSiy2() - GetXSiy1() + 1; };
     122             :   /// get number of y strips
     123           0 :   Int_t GetNStripY() const { return GetYSix2() - GetYSix1() + 1; };
     124             : 
     125             :   /// set true if this board has a gui active
     126           0 :   void   SetOpen(Bool_t open) { fIsOpen = open; };
     127             :   /// true if this board has a gui active
     128           0 :   Bool_t IsOpen() const       { return fIsOpen; };
     129             : 
     130             :   /// delete the set x-digits
     131             :   void  ClearXDigits();
     132             :   /// delete the set y-digits
     133             :   void  ClearYDigits();
     134             : 
     135             :   /// print information on this board
     136             :   void PrintBoard() const;
     137             : 
     138             : private:
     139             : 
     140             :   enum { kNMT = 4, kNS = 16 };     ///< constants
     141             : 
     142             :   /// Not implemented
     143             :   AliMUONTriggerGUIboard (const AliMUONTriggerGUIboard& board);
     144             :   /// Not implemented
     145             :   AliMUONTriggerGUIboard& operator=(const AliMUONTriggerGUIboard& board);
     146             : 
     147             :   TString       *fName;            ///< Board name LCxLxBx or RCxLxBx
     148             :   TString       *fCrateName;       ///< Crate name
     149             :   Int_t          fID;              ///< Board array number
     150             :   UShort_t       fStatus;          ///< Board status
     151             :   UChar_t        fPosition;        ///< Y-boards position
     152             :   UChar_t        fYOver;           ///< Y-boards with common y-strips
     153             : 
     154             :   Float_t        fXCenter[kNMT];   ///< X-center of the board
     155             :   Float_t        fYCenter[kNMT];   ///< Y-center of the board
     156             :   Float_t        fZCenter[kNMT];   ///< Z-center of the board
     157             :   Float_t        fXWidth[kNMT];    ///< X-width  of the board
     158             :   Float_t        fYWidth[kNMT];    ///< Y-width  of the board
     159             : 
     160             :   Int_t          fXSix;            ///< X-strips ix index in the board
     161             :   Int_t          fXSiy1;           ///< X-strips first iy index in the board
     162             :   Int_t          fXSiy2;           ///< X-strips last  iy index in the board
     163             : 
     164             :   Int_t          fYSix1;           ///< Y-strips first ix index in the board
     165             :   Int_t          fYSix2;           ///< Y-strips last  ix index in the board
     166             :   Int_t          fYSiy;            ///< Y-strips iy index in the board
     167             : 
     168             :   Int_t          fDetElemId;       ///< Detector element ID (modulo 100)
     169             : 
     170             :   Int_t          fIdCircuit;       ///< Circuit number
     171             : 
     172             :   UChar_t        fXDig[kNMT][kNS]; ///< X-digits amplitude, set by GUI
     173             :   UChar_t        fYDig[kNMT][kNS]; ///< Y-digits amplitude, set by GUI
     174             : 
     175             :   TBox          *fXDigBox[kNMT][kNS]; ///< X-digits boxes
     176             :   TBox          *fYDigBox[kNMT][kNS]; ///< Y-digits boxes
     177             : 
     178             :   Bool_t         fIsOpen;          ///< Selection flag for the digits map
     179             : 
     180             :   /// adding pads from mapping to calculate the board geometry
     181             :   Int_t fNPadsX[kNMT];             ///< nr of added mapping pads in x
     182             :   Int_t fNPadsY[kNMT];             ///< nr of added mapping pads in y
     183             :   TClonesArray *fPadsX[kNMT];      ///< array of mapping pads in x
     184             :   TClonesArray *fPadsY[kNMT];      ///< array of mapping pads in y
     185             : 
     186          16 :   ClassDef(AliMUONTriggerGUIboard,2) //Trigger GUI utility class: single board object
     187             : 
     188             : };
     189             : 
     190             : #endif

Generated by: LCOV version 1.11