New Trigger class, TRU mapping method included in Geometry
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALTrigger.h
1 #ifndef ALIEMCALTrigger_H
2 #define ALIEMCALTrigger_H
3
4 //___________________________________________________________
5 //  Class for trigger analysis.
6 //  Digits are grouped in TRU's (384 cells? ordered fNTRUPhi x fNTRUEta). 
7 //  The algorithm searches all possible 4x4 cell combinations per each TRU, 
8 //  adding the digits amplitude and finding the maximum. Maximums are compared 
9 //  to triggers threshold and they are set. Thresholds need to be fixed. 
10 //  Last 2 modules are half size but they are treated as fullsize, then their 
11 //  TRU should be smaller. When this is fixed, class will be updated. 
12 //  Usage:
13 //
14 //  //Inside the event loop
15 //  AliEMCALTrigger *tr = new AliEMCALTrigger();//Init Trigger
16 //  tr->SetL0MBPbPbThreshold(500);
17 //  tr->SetL0MBppThreshold(100);
18 //  tr->SetL1JetLowPtThreshold(1000);
19 //  tr->SetL1JetMediumPtThreshold(10000);
20 //  tr->SetL1JetHighPtThreshold(20000);
21 //  tr->Trigger(); //Execute Trigger
22 //  tr->Print(""); //Print results
23 //  //are printed
24 //
25 //*-- Author: Gustavo Conesa & Yves Schutz (IFIC, SUBATECH, CERN)
26      
27 // --- ROOT system ---
28
29 class TClonesArray ;
30
31
32 // --- AliRoot header files ---
33 #include "AliTriggerDetector.h"
34
35 class AliEMCALGeometry ;
36
37 class AliEMCALTrigger : public AliTriggerDetector {
38   
39  public:   
40   AliEMCALTrigger() ; //  ctor
41   AliEMCALTrigger(const AliEMCALTrigger & trig) ; // cpy ctor
42   virtual ~AliEMCALTrigger() {}; //virtual dtor
43   virtual void    CreateInputs();
44   virtual void    Trigger();  //Make EMCAL trigger
45   
46   Int_t  GetL0MBPbPbThreshold() const    {return fL0MBPbPbThreshold ; } 
47   Int_t  GetL0MBppThreshold() const      {return fL0MBppThreshold ; } 
48   Int_t  GetL1JetLowPtThreshold() const  {return fL1JetLowPtThreshold ; }
49   Int_t  GetL1JetMediumPtThreshold() const {return fL1JetMediumPtThreshold ; }
50   Int_t  GetL1JetHighPtThreshold() const {return fL1JetHighPtThreshold ; }
51
52   void         Print(const Option_t * opt ="") const ;  
53
54   void         SetL0MBPbPbThreshold(Int_t amp)   
55     {fL0MBPbPbThreshold    = amp; }
56   void         SetL0MBppThreshold(Int_t amp)     
57     {fL0MBppThreshold      = amp; }
58   void         SetL1JetLowPtThreshold(Int_t amp) 
59     {fL1JetLowPtThreshold  = amp; } 
60   void         SetL1JetMediumPtThreshold(Int_t amp) 
61     {fL1JetMediumPtThreshold  = amp; } 
62   void         SetL1JetHighPtThreshold(Int_t amp)
63     {fL1JetHighPtThreshold = amp; }
64  private:
65  
66   void MakeSlidingCell(const TClonesArray * trus, const Int_t nTRU, 
67                        const Int_t supermod, const Int_t nCellsPhi, 
68                        const Int_t nCellsEta, Float_t *ampmax) ; 
69   
70
71   void SetTriggers(const Float_t * ampmax, const Int_t nTRU) ;
72   
73   
74  private: 
75   
76   Int_t    fL0MBPbPbThreshold ;      //! L0 PbPb trigger energy threshold
77   Int_t    fL0MBppThreshold ;        //! L0 pp trigger energy threshold
78   Int_t    fL1JetLowPtThreshold ;    //! Low pT trigger energy threshold
79   Int_t    fL1JetMediumPtThreshold ; //! Medium pT trigger energy threshold
80   Int_t    fL1JetHighPtThreshold ;   //! High pT trigger energy threshold
81
82   ClassDef(AliEMCALTrigger,0)
83 } ;
84
85
86 #endif //ALIEMCALTrigger_H