]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONTriggerEfficiencyCells.h
Added functionality to generate module misalignments
[u/mrichter/AliRoot.git] / MUON / AliMUONTriggerEfficiencyCells.h
1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2  * See cxx source for full Copyright notice                               */
3
4 /// \ingroup base
5 /// \class AliMUONTriggerEfficiencyCells
6 /// \brief Store and give access to the trigger chamber efficiency.
7 ///
8 //  Author: Diego Stocco; INFN Torino
9
10 #ifndef ALIMUONTRIGGEREFFICIENCYCELLS_H
11 #define ALIMUONTRIGGEREFFICIENCYCELLS_H
12
13 #include "TObject.h"
14 #include "TArrayI.h"
15 #include "TVector2.h"
16 #include "TString.h"
17
18 class AliMUONTriggerEfficiencyCells : public TObject
19 {
20 public:
21   AliMUONTriggerEfficiencyCells();
22   AliMUONTriggerEfficiencyCells(const char* filename);
23
24   virtual ~AliMUONTriggerEfficiencyCells();
25
26   void GetCellEfficiency(Int_t detElemId, Float_t x, Float_t y, Float_t &eff1, Float_t &eff2);
27   void GetCellEfficiency(Int_t detElemId, Int_t localBoard, Float_t &eff1, Float_t &eff2);
28     
29   void IsTriggered(Int_t detElemId, Float_t x, Float_t y, Bool_t &trig1, Bool_t &trig2);
30   void IsTriggered(Int_t detElemId, Int_t localBoard, Bool_t &trig1, Bool_t &trig2);
31
32   TVector2 ChangeReferenceFrame(Float_t x, Float_t y, Float_t x0, Float_t y0);
33
34   void Reset();
35     
36 protected:
37     TArrayI CellByCoord(Int_t detElemId, Float_t x, Float_t y);
38     void ReadFile(const char* filename="$ALICE_ROOT/MUON/data/efficiencyCells.dat");
39
40 private:
41     Int_t FindChamberIndex(Int_t detElemId);
42     Int_t FindSlatIndex(Int_t detElemId);
43     void ReadFileXY(ifstream &file);
44     void ReadFileBoards(ifstream &file);
45     
46     static const Int_t fgkNofCells=80; ///< Number of cells
47     
48     /// the cells content
49     Float_t fCellContent[4][18][2][fgkNofCells][fgkNofCells]; //[trig. chambers][RPCs][cathode][cellsX][cellsY]
50
51     Float_t fCellSize[4][18][2]; ///< the size of the cells
52     Int_t fCellNumber[4][18][2]; ///< id of the cells
53
54     static const Int_t fgkNofBoards=234; ///< Number of boards
55     /// the boards content
56     Float_t fBoardContent[4][2][fgkNofBoards]; //[trig. chambers][RPCs][cathode][board]
57     
58     ClassDef(AliMUONTriggerEfficiencyCells,2) // Trigger efficiency store
59 };
60 #endif