]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG/EMCAL/AliEmcalTriggerMaker.h
- Add simple QA to the trigger patch maker and set the default to
[u/mrichter/AliRoot.git] / PWG / EMCAL / AliEmcalTriggerMaker.h
CommitLineData
00c77045 1#ifndef ALIEMCALTRIGGERMAKER_H
2#define ALIEMCALTRIGGERMAKER_H
3
f9a1843e 4// $Id: AliEmcalTriggerMaker.h 64593 2013-10-18 10:23:58Z loizides $
00c77045 5
6class TClonesArray;
7class AliEmcalTriggerSetupInfo;
001765f7 8class AliAODCaloTrigger;
9class AliVVZERO;
19dfd8dd 10class THistManager;
00c77045 11
f9a1843e 12#include "AliEMCALTriggerTypes.h"
9239b066 13#include "AliAnalysisTaskEmcal.h"
00c77045 14
9239b066 15class AliEmcalTriggerMaker : public AliAnalysisTaskEmcal {
00c77045 16 public:
05a42e4d 17 enum TriggerMakerTriggerType_t {
18 kTMEMCalJet = 0,
19 kTMEMCalGamma = 1,
20 kTMEMCalLevel0 = 2
5b6a633e 21 };
00c77045 22 AliEmcalTriggerMaker();
19dfd8dd 23 AliEmcalTriggerMaker(const char *name, Bool_t doQA = kFALSE);
00c77045 24 virtual ~AliEmcalTriggerMaker();
25
05a42e4d 26 void SetCaloTriggersOutName(const char *name) { fCaloTriggersOutName = name; }
27 void SetCaloTriggerSetupOutName(const char *name) { fCaloTriggerSetupOutName = name; }
28 void SetTriggerThresholdJetLow ( Int_t a, Int_t b, Int_t c ) { fThresholdConstants[2][0] = a; fThresholdConstants[2][1] = b; fThresholdConstants[2][2] = c; }
29 void SetTriggerThresholdJetHigh ( Int_t a, Int_t b, Int_t c ) { fThresholdConstants[0][0] = a; fThresholdConstants[0][1] = b; fThresholdConstants[0][2] = c; }
30 void SetTriggerThresholdGammaLow ( Int_t a, Int_t b, Int_t c ) { fThresholdConstants[3][0] = a; fThresholdConstants[3][1] = b; fThresholdConstants[3][2] = c; }
5b6a633e 31 void SetTriggerThresholdGammaHigh( Int_t a, Int_t b, Int_t c ) { fThresholdConstants[3][0] = a; fThresholdConstants[1][1] = b; fThresholdConstants[1][2] = c; }
001765f7 32 void SetV0InName(const char *name) { fV0InName = name; }
33
05a42e4d 34 Bool_t IsEJE(Int_t tBits) const { if( tBits & ( 1 << (kTriggerTypeEnd + kL1JetLow) | 1 << (kTriggerTypeEnd + kL1JetHigh) | 1 << (kL1JetLow) | 1 << (kL1JetHigh) )) return kTRUE; else return kFALSE; }
35 Bool_t IsEGA(Int_t tBits) const { if( tBits & ( 1 << (kTriggerTypeEnd + kL1GammaLow) | 1 << (kTriggerTypeEnd + kL1GammaHigh) | 1 << (kL1GammaLow) | 1 << (kL1GammaHigh) )) return kTRUE; else return kFALSE; }
36 Bool_t IsLevel0(Int_t tBits) const { if( tBits & (1 << (kTriggerTypeEnd + kL0) | (1 << kL0))) return kTRUE; return kFALSE; }
00c77045 37
05a42e4d 38 protected:
1645a556 39 enum{
40 kPatchCols = 48,
41 kPatchRows = 64
42 };
19dfd8dd 43 void UserCreateOutputObjects();
05a42e4d 44 void ExecOnce();
45 Bool_t Run();
46 void RunSimpleOfflineTrigger();
47 Bool_t NextTrigger( Bool_t &isOfflineSimple );
48 AliEmcalTriggerPatchInfo* ProcessPatch(TriggerMakerTriggerType_t type, Bool_t isOfflineSimple);
19dfd8dd 49 Bool_t CheckForL0(const AliVCaloTrigger &trg) const;
05a42e4d 50
51 TString fCaloTriggersOutName; // name of output track array
52 TString fCaloTriggerSetupOutName; // name of output track array
53 TString fV0InName; // name of output track array
54 Int_t fThresholdConstants[4][3]; // simple offline trigger thresholds constants
55 TClonesArray *fCaloTriggersOut; //!trigger array out
56 AliEmcalTriggerSetupInfo *fCaloTriggerSetupOut; //!trigger setup
57 AliAODCaloTrigger *fSimpleOfflineTriggers; //!simple offline trigger
58 AliVVZERO *fV0; //!V0 object
1645a556 59 Double_t fPatchADCSimple[kPatchCols][kPatchRows]; //!patch map for simple offline trigger
60 Int_t fPatchADC[kPatchCols][kPatchRows]; //!ADC values map
05a42e4d 61 Int_t fITrigger; //!trigger counter
19dfd8dd 62 Bool_t fDoQA; // Fill QA histograms
63 THistManager *fQAHistos; //! Histograms for QA
f9a1843e 64
00c77045 65 private:
66 AliEmcalTriggerMaker(const AliEmcalTriggerMaker&); // not implemented
67 AliEmcalTriggerMaker &operator=(const AliEmcalTriggerMaker&); // not implemented
68
05a42e4d 69 ClassDef(AliEmcalTriggerMaker, 4) // Task to make array of EMCAL trigger patches
00c77045 70};
71#endif