MUON trigger classes to collaborate with CTP (E. Lopez Torres)
[u/mrichter/AliRoot.git] / PHOS / AliPHOSTrigger.h
CommitLineData
25354ff4 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
19class AliPHOSGeometry ;
20
21// --- AliRoot header files ---
22
23class 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