New Calibration and Trigger classes included
[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.
b165f59d 10
25354ff4 11//*-- Author: Gustavo Conesa & Yves Schutz (IFIC, SUBATECH, CERN)
12
13// --- ROOT system ---
25354ff4 14
b165f59d 15class TClonesArray ;
16
25354ff4 17
18// --- AliRoot header files ---
b165f59d 19#include "AliTriggerDetector.h"
20
21class AliPHOSGeometry ;
25354ff4 22
b165f59d 23class AliPHOSTrigger : public AliTriggerDetector {
25354ff4 24
25 public:
26 AliPHOSTrigger() ; // ctor
27 AliPHOSTrigger(const AliPHOSTrigger & trig) ; // cpy ctor
28 virtual ~AliPHOSTrigger() {}; //virtual dtor
b165f59d 29 virtual void CreateInputs();
30 virtual void Trigger(); //Make PHOS trigger
25354ff4 31
66f9b73c 32 Int_t GetNTRU() const {return fNTRU ; }
33 Int_t GetNTRUZ() const {return fNTRUZ ; }
34 Int_t GetNTRUPhi() const {return fNTRUPhi ; }
35 Int_t GetL0MBPbPbThreshold() const {return fL0MBPbPbThreshold ; }
36 Int_t GetL0MBppThreshold() const {return fL0MBppThreshold ; }
37 Int_t GetL1JetLowPtThreshold() const {return fL1JetLowPtThreshold ; }
38 Int_t GetL1JetHighPtThreshold() const {return fL1JetHighPtThreshold ; }
25354ff4 39
40 void Print(const Option_t * opt ="") const ;
41
66f9b73c 42 void SetNTRU(Int_t ntru) {fNTRU = ntru; }
43 void SetNTRUZ(Int_t ntru) {fNTRUZ = ntru; }
44 void SetNTRUPhi(Int_t ntru) {fNTRUPhi = ntru; }
45 void SetL0MBPbPbThreshold(Int_t amp) {fL0MBPbPbThreshold = amp; }
46 void SetL0MBppThreshold(Int_t amp) {fL0MBppThreshold = amp; }
47 void SetL1JetLowPtThreshold(Int_t amp)
48 {fL1JetLowPtThreshold = amp; }
49 void SetL1JetHighPtThreshold(Int_t amp)
50 {fL1JetHighPtThreshold = amp; }
25354ff4 51
52 private:
2ff6837e 53 TClonesArray * FillTRU(const TClonesArray * digits,
54 const AliPHOSGeometry * geom, const Int_t nModules,
55 const Int_t nCrystalsPhi, const Int_t nCrystalsZ) const ;
56 void MakeSlidingCell(const TClonesArray * trus, const Int_t mod,
57 const Int_t nCrystalsPhi, const Int_t nCrystalsZ,
25354ff4 58 Float_t *ampmax) ;
59 void SetTriggers(const Float_t * ampmax) ;
25354ff4 60
61
62 private:
25354ff4 63
66f9b73c 64 Int_t fNTRU ; //! Number of TRUs per module
65 Int_t fNTRUZ ; //! Number of crystal rows per Z in one TRU
66 Int_t fNTRUPhi ; //! Number of crystal rows per Phi in one TRU
67 Int_t fL0MBPbPbThreshold ; //! L0 PbPb trigger energy threshold
68 Int_t fL0MBppThreshold ; //! L0 pp trigger energy threshold
69 Int_t fL1JetLowPtThreshold ; //! Low and High pT trigger energy threshold
70 Int_t fL1JetHighPtThreshold ; //!
25354ff4 71
66f9b73c 72 ClassDef(AliPHOSTrigger,3)
25354ff4 73} ;
74
75
76#endif //ALIPHOSTrigger_H