ROOT logo
#ifndef ALIANALYSISTASKTRIGGERREJECTION_H
#define ALIANALYSISTASKTRIGGERREJECTION_H

class TH1;
class TH2;
class TH3;
class TH3F;
class TProfile;
class THnSparse;
class TClonesArray;
class TArrayI;

#include <TRef.h>
#include <TBits.h>
#include <TMath.h>

#include <AliVEvent.h>

#include "AliAnalysisTaskEmcalJet.h"
#include "AliEmcalTriggerPatchInfo.h"

namespace JETriggerRejectionAna {
  class AliAnalysisTaskTriggerRejection : public AliAnalysisTaskEmcalJet {
  public:
    enum MainPatchType {
      kManual = 0,    //just select highest energy patch in array
      kEmcalJet = 1   //use functionality of AliAnalysisTaskEmcal
    };
    AliAnalysisTaskTriggerRejection();
    AliAnalysisTaskTriggerRejection(const char *name);
    virtual ~AliAnalysisTaskTriggerRejection();

    void                        UserCreateOutputObjects();
    void                        Terminate(Option_t *option);
    
    //Setters
    void SetContainerFull(Int_t c)            { fContainerFull      = c;}
    void SetContainerCharged(Int_t c)         { fContainerCharged   = c;}
    void SetMainPatchType(MainPatchType t)    { fMainPatchType      = t;}
    void SetMainTriggerTypeCat(TriggerCategory cat, Bool_t b) {fMainTrigCat = cat; fMainTrigSimple = b;}

  protected:
    Bool_t                      FillHistograms()   ;
    Bool_t                      Run()              ;
    void                        ExtractMainPatch();

  private:
    Int_t              fContainerFull;         // number of container with full jets DET
    Int_t              fContainerCharged;      // number of container with charged jets DET
    AliEmcalTriggerPatchInfo *fMaxPatch;       // main patch
    THnSparse         *fhnTriggerInfo;         //! correlation between jets, patch energy and event observables
    MainPatchType      fMainPatchType;         // method to select main patch
    TriggerCategory    fMainTrigCat;           // trigger category for main trigger from AliAnalysisTaskEmcal::GetMainTriggerPatch
    Bool_t             fMainTrigSimple;        // use offline trigger instead of online from AliAnalysisTaskEmcal::GetMainTriggerPatch

    AliAnalysisTaskTriggerRejection(const AliAnalysisTaskTriggerRejection&);            // not implemented
    AliAnalysisTaskTriggerRejection &operator=(const AliAnalysisTaskTriggerRejection&); // not implemented
    
    ClassDef(AliAnalysisTaskTriggerRejection, 2)
      };
}
#endif


 AliAnalysisTaskTriggerRejection.h:1
 AliAnalysisTaskTriggerRejection.h:2
 AliAnalysisTaskTriggerRejection.h:3
 AliAnalysisTaskTriggerRejection.h:4
 AliAnalysisTaskTriggerRejection.h:5
 AliAnalysisTaskTriggerRejection.h:6
 AliAnalysisTaskTriggerRejection.h:7
 AliAnalysisTaskTriggerRejection.h:8
 AliAnalysisTaskTriggerRejection.h:9
 AliAnalysisTaskTriggerRejection.h:10
 AliAnalysisTaskTriggerRejection.h:11
 AliAnalysisTaskTriggerRejection.h:12
 AliAnalysisTaskTriggerRejection.h:13
 AliAnalysisTaskTriggerRejection.h:14
 AliAnalysisTaskTriggerRejection.h:15
 AliAnalysisTaskTriggerRejection.h:16
 AliAnalysisTaskTriggerRejection.h:17
 AliAnalysisTaskTriggerRejection.h:18
 AliAnalysisTaskTriggerRejection.h:19
 AliAnalysisTaskTriggerRejection.h:20
 AliAnalysisTaskTriggerRejection.h:21
 AliAnalysisTaskTriggerRejection.h:22
 AliAnalysisTaskTriggerRejection.h:23
 AliAnalysisTaskTriggerRejection.h:24
 AliAnalysisTaskTriggerRejection.h:25
 AliAnalysisTaskTriggerRejection.h:26
 AliAnalysisTaskTriggerRejection.h:27
 AliAnalysisTaskTriggerRejection.h:28
 AliAnalysisTaskTriggerRejection.h:29
 AliAnalysisTaskTriggerRejection.h:30
 AliAnalysisTaskTriggerRejection.h:31
 AliAnalysisTaskTriggerRejection.h:32
 AliAnalysisTaskTriggerRejection.h:33
 AliAnalysisTaskTriggerRejection.h:34
 AliAnalysisTaskTriggerRejection.h:35
 AliAnalysisTaskTriggerRejection.h:36
 AliAnalysisTaskTriggerRejection.h:37
 AliAnalysisTaskTriggerRejection.h:38
 AliAnalysisTaskTriggerRejection.h:39
 AliAnalysisTaskTriggerRejection.h:40
 AliAnalysisTaskTriggerRejection.h:41
 AliAnalysisTaskTriggerRejection.h:42
 AliAnalysisTaskTriggerRejection.h:43
 AliAnalysisTaskTriggerRejection.h:44
 AliAnalysisTaskTriggerRejection.h:45
 AliAnalysisTaskTriggerRejection.h:46
 AliAnalysisTaskTriggerRejection.h:47
 AliAnalysisTaskTriggerRejection.h:48
 AliAnalysisTaskTriggerRejection.h:49
 AliAnalysisTaskTriggerRejection.h:50
 AliAnalysisTaskTriggerRejection.h:51
 AliAnalysisTaskTriggerRejection.h:52
 AliAnalysisTaskTriggerRejection.h:53
 AliAnalysisTaskTriggerRejection.h:54
 AliAnalysisTaskTriggerRejection.h:55
 AliAnalysisTaskTriggerRejection.h:56
 AliAnalysisTaskTriggerRejection.h:57
 AliAnalysisTaskTriggerRejection.h:58
 AliAnalysisTaskTriggerRejection.h:59
 AliAnalysisTaskTriggerRejection.h:60
 AliAnalysisTaskTriggerRejection.h:61
 AliAnalysisTaskTriggerRejection.h:62
 AliAnalysisTaskTriggerRejection.h:63
 AliAnalysisTaskTriggerRejection.h:64