New Trigger class, TRU mapping method included in Geometry
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALTrigger.h
CommitLineData
f0377b23 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
29class TClonesArray ;
30
31
32// --- AliRoot header files ---
33#include "AliTriggerDetector.h"
34
35class AliEMCALGeometry ;
36
37class 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