]>
Commit | Line | Data |
---|---|---|
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 | |
6 | class TClonesArray; | |
7 | class AliEmcalTriggerSetupInfo; | |
001765f7 | 8 | class AliAODCaloTrigger; |
9 | class AliVVZERO; | |
19dfd8dd | 10 | class THistManager; |
00c77045 | 11 | |
f9a1843e | 12 | #include "AliEMCALTriggerTypes.h" |
9239b066 | 13 | #include "AliAnalysisTaskEmcal.h" |
00c77045 | 14 | |
9239b066 | 15 | class 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 |