]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/EMCAL/AliEmcalTriggerMaker.h
Merge remote-tracking branch 'origin/flatdev' into mergeFlat2Master
[u/mrichter/AliRoot.git] / PWG / EMCAL / AliEmcalTriggerMaker.h
1 #ifndef ALIEMCALTRIGGERMAKER_H
2 #define ALIEMCALTRIGGERMAKER_H
3
4 // $Id: AliEmcalTriggerMaker.h 64593 2013-10-18 10:23:58Z loizides $
5
6 class TClonesArray;
7 class AliEmcalTriggerSetupInfo;
8 class AliAODCaloTrigger;
9 class AliVVZERO;
10
11 #include "AliEMCALTriggerTypes.h"
12 #include "AliAnalysisTaskEmcal.h"
13
14 class AliEmcalTriggerMaker : public AliAnalysisTaskEmcal {
15  public:
16   AliEmcalTriggerMaker();
17   AliEmcalTriggerMaker(const char *name);
18   virtual ~AliEmcalTriggerMaker();
19
20   void ExecOnce();
21   Bool_t Run();
22         void RunSimpleOfflineTrigger();
23
24   void SetCaloTriggersOutName(const char *name) { fCaloTriggersOutName      = name; }
25   void SetCaloTriggerSetupOutName(const char *name) { fCaloTriggerSetupOutName      = name; }
26
27   void SetTriggerThresholdJetLow( Int_t a, Int_t b, Int_t c ) { fThresholdConstants[2][0] = a; fThresholdConstants[2][1] = b; fThresholdConstants[2][2] = c; }
28   void SetTriggerThresholdJetHigh( Int_t a, Int_t b, Int_t c ) { fThresholdConstants[0][0] = a; fThresholdConstants[0][1] = b; fThresholdConstants[0][2] = c; }
29   
30   void SetV0InName(const char *name) { fV0InName      = name; }
31
32   Bool_t IsEJE( Int_t tBits ) { if( tBits & ( 1 << (kTriggerTypeEnd + kL1JetLow) | 1 << (kTriggerTypeEnd + kL1JetHigh) | 1 << (kL1JetLow) | 1 << (kL1JetHigh) )) return kTRUE; else return kFALSE; }
33   Bool_t IsEGA( Int_t tBits ) { if( tBits & ( 1 << (kTriggerTypeEnd + kL1GammaLow) | 1 << (kTriggerTypeEnd + kL1GammaHigh) | 1 << (kL1GammaLow) | 1 << (kL1GammaHigh) )) return kTRUE; else return kFALSE; }
34   
35  protected:  
36   TString            fCaloTriggersOutName;    // name of output track array
37   TString            fCaloTriggerSetupOutName;    // name of output track array
38   TString            fV0InName;    // name of output track array
39   TClonesArray      *fCaloTriggersOut;        //!trigger array out
40   AliEmcalTriggerSetupInfo  *fCaloTriggerSetupOut;        //!trigger setup
41   AliAODCaloTrigger *fSimpleOfflineTriggers; //! simple offline trigger
42   AliVVZERO         *fV0;                    //! V0 object
43   
44   Double_t           fPatchADCSimple[48][64]; //! patch map for simple offline trigger
45   Int_t              fThresholdConstants[4][3]; // simple offline trigger thresholds constants
46
47         Int_t              fPatchADC[48][64];   //! ADC values map
48   Int_t              fITrigger; //! trigger counter
49
50  private:
51   AliEmcalTriggerMaker(const AliEmcalTriggerMaker&);            // not implemented
52   AliEmcalTriggerMaker &operator=(const AliEmcalTriggerMaker&); // not implemented
53
54   Bool_t NextTrigger( Bool_t &isOfflineSimple );
55         AliEmcalTriggerPatchInfo* ProcessPatch( Int_t type, Bool_t isOfflineSimple );
56
57   ClassDef(AliEmcalTriggerMaker, 4); // Task to make array of EMCAL particle
58 };
59 #endif