MUON trigger classes to collaborate with CTP (E. Lopez Torres)
[u/mrichter/AliRoot.git] / PHOS / AliPHOSTrigger.h
1 #ifndef ALIPHOSTrigger_H
2 #define ALIPHOSTrigger_H
3
4 //____________________________________________________________
5 //  Class for trigger analysis.
6 //  Digits are grouped in TRU's (16x28 crystals). The algorithm searches 
7 //  all possible 4x4 crystal combinations and per each TRU, adding the 
8 //  digits amplitude and finding the maximum. Maximums are compared to 
9 //  triggers threshold and they are set.
10 //  FIRST ATTEMPT TO MAKE A TRIGGER CLASS. IT WILL CHANGE WHEN CENTRAL TRIGGER CLASS FIXES 
11 //  THINGS
12 //*-- Author: Gustavo Conesa & Yves Schutz (IFIC, SUBATECH, CERN)
13      
14 // --- ROOT system ---
15 #include "TTask.h"
16 #include "TClonesArray.h"
17 #include "TMatrixD.h"
18
19 class AliPHOSGeometry ;
20
21 // --- AliRoot header files ---
22
23 class AliPHOSTrigger : public TObject {
24   
25  public:   
26   AliPHOSTrigger() ; //  ctor
27   AliPHOSTrigger(const AliPHOSTrigger & trig) ; // cpy ctor
28   virtual ~AliPHOSTrigger() {}; //virtual dtor
29   
30   void         MakeTrigger() ; //Make PHOS trigger
31
32   const Bool_t IsL0Set() const       {return fL0 ;}  // Is L0 trigger set?
33   const Bool_t IsL1LowSet() const    {return fL1Low ;} // Is L1 trigger set?
34   const Bool_t IsL1MediumSet() const {return fL1Medium ;} 
35   const Bool_t IsL1HighSet() const   {return fL1High ;} 
36
37   const Int_t  GetL0Threshold() const       {return fL0Threshold ; }  
38   const Int_t  GetL1LowThreshold() const    {return fL1LowThreshold ; }
39   const Int_t  GetL1MediumThreshold() const {return fL1MediumThreshold ; }
40   const Int_t  GetL1HighThreshold() const   {return fL1HighThreshold ; }
41
42   void         Print(const Option_t * opt ="") const ;  
43
44   void         SetL0Threshold(Int_t amp)      {fL0Threshold       = amp; }
45   void         SetL1LowThreshold(Int_t amp)   {fL1LowThreshold    = amp; } 
46   void         SetL1MediumThreshold(Int_t amp){fL1MediumThreshold = amp; } 
47   void         SetL1HighThreshold(Int_t amp)  {fL1HighThreshold   = amp; }
48
49  private:
50   TClonesArray *  FillTRU(const TClonesArray * digits) ;
51   void MakeSlidingCell(const TClonesArray * trus, const Int_t mod, 
52                        Float_t *ampmax) ;
53   void SetTriggers(const Float_t * ampmax) ;
54   void InitTriggers() ;
55
56   void SetL0()       { fL0       = kTRUE ; } 
57   void SetL1Low()    { fL1Low    = kTRUE ; }  
58   void SetL1Medium() { fL1Medium = kTRUE ; }  
59   void SetL1High()   { fL1High   = kTRUE ; } 
60
61
62  private: 
63   
64   Bool_t    fL0 ;       //! Minimum Bias Trigger
65   Bool_t    fL1Low ;    //! High pT triggers
66   Bool_t    fL1Medium ; //!
67   Bool_t    fL1High ;   //!
68
69   Int_t    fL0Threshold ;       //! L0 trigger energy threshold
70   Int_t    fL1LowThreshold ;    //! High pT trigger energy threshold
71   Int_t    fL1MediumThreshold ; //! 
72   Int_t    fL1HighThreshold ;   //! 
73
74   ClassDef(AliPHOSTrigger,0)
75 } ;
76
77
78 #endif //ALIPHOSTrigger_H