Trigger method FillTRU (for PHOS it is in AliPHOSTrigger) modified and
[u/mrichter/AliRoot.git] / PHOS / AliPHOSTrigger.h
CommitLineData
25354ff4 1#ifndef ALIPHOSTrigger_H
2#define ALIPHOSTrigger_H
3
4//____________________________________________________________
5// Class for trigger analysis.
bb38a8fc 6// Class for trigger analysis.
7// Digits are grouped in TRU's (16x28 ordered fNTRUPhi x fNTRUEta).
8// The algorithm searches all possible 4x4 cell combinations per each TRU,
9// adding the digits amplitude and finding the maximum. Maximums are compared
10// to triggers threshold and they are set. Thresholds need to be fixed.
11// Usage:
12//
13// //Inside the event loop
14// AliEMCALTrigger *tr = new AliEMCALTrigger();//Init Trigger
15// tr->SetL0MBPbPbThreshold(500);
16// tr->SetL0MBppThreshold(100);
17// tr->SetL1JetLowPtThreshold(1000);
18// tr->SetL1JetMediumPtThreshold(10000);
19// tr->SetL1JetHighPtThreshold(20000);
20// tr->Trigger(); //Execute Trigger
21// tr->Print(""); //Print result, with "deb" option all data members
22// //are printed
23//
25354ff4 24//*-- Author: Gustavo Conesa & Yves Schutz (IFIC, SUBATECH, CERN)
25
26// --- ROOT system ---
25354ff4 27
b165f59d 28class TClonesArray ;
29
25354ff4 30// --- AliRoot header files ---
b165f59d 31#include "AliTriggerDetector.h"
32
33class AliPHOSGeometry ;
25354ff4 34
b165f59d 35class AliPHOSTrigger : public AliTriggerDetector {
25354ff4 36
37 public:
38 AliPHOSTrigger() ; // ctor
39 AliPHOSTrigger(const AliPHOSTrigger & trig) ; // cpy ctor
40 virtual ~AliPHOSTrigger() {}; //virtual dtor
b165f59d 41 virtual void CreateInputs();
42 virtual void Trigger(); //Make PHOS trigger
25354ff4 43
66f9b73c 44 Int_t GetNTRU() const {return fNTRU ; }
45 Int_t GetNTRUZ() const {return fNTRUZ ; }
46 Int_t GetNTRUPhi() const {return fNTRUPhi ; }
47 Int_t GetL0MBPbPbThreshold() const {return fL0MBPbPbThreshold ; }
48 Int_t GetL0MBppThreshold() const {return fL0MBppThreshold ; }
49 Int_t GetL1JetLowPtThreshold() const {return fL1JetLowPtThreshold ; }
50 Int_t GetL1JetHighPtThreshold() const {return fL1JetHighPtThreshold ; }
25354ff4 51
52 void Print(const Option_t * opt ="") const ;
53
66f9b73c 54 void SetNTRU(Int_t ntru) {fNTRU = ntru; }
55 void SetNTRUZ(Int_t ntru) {fNTRUZ = ntru; }
56 void SetNTRUPhi(Int_t ntru) {fNTRUPhi = ntru; }
57 void SetL0MBPbPbThreshold(Int_t amp) {fL0MBPbPbThreshold = amp; }
58 void SetL0MBppThreshold(Int_t amp) {fL0MBppThreshold = amp; }
59 void SetL1JetLowPtThreshold(Int_t amp)
60 {fL1JetLowPtThreshold = amp; }
61 void SetL1JetHighPtThreshold(Int_t amp)
62 {fL1JetHighPtThreshold = amp; }
25354ff4 63
64 private:
2ff6837e 65 TClonesArray * FillTRU(const TClonesArray * digits,
66 const AliPHOSGeometry * geom, const Int_t nModules,
67 const Int_t nCrystalsPhi, const Int_t nCrystalsZ) const ;
68 void MakeSlidingCell(const TClonesArray * trus, const Int_t mod,
69 const Int_t nCrystalsPhi, const Int_t nCrystalsZ,
25354ff4 70 Float_t *ampmax) ;
71 void SetTriggers(const Float_t * ampmax) ;
25354ff4 72
73
74 private:
25354ff4 75
66f9b73c 76 Int_t fNTRU ; //! Number of TRUs per module
77 Int_t fNTRUZ ; //! Number of crystal rows per Z in one TRU
78 Int_t fNTRUPhi ; //! Number of crystal rows per Phi in one TRU
79 Int_t fL0MBPbPbThreshold ; //! L0 PbPb trigger energy threshold
80 Int_t fL0MBppThreshold ; //! L0 pp trigger energy threshold
81 Int_t fL1JetLowPtThreshold ; //! Low and High pT trigger energy threshold
82 Int_t fL1JetHighPtThreshold ; //!
25354ff4 83
66f9b73c 84 ClassDef(AliPHOSTrigger,3)
25354ff4 85} ;
86
87
88#endif //ALIPHOSTrigger_H