ROOT logo
#ifndef ALIJETEMBEDDINGFROMPYTHIATASK_H
#define ALIJETEMBEDDINGFROMPYTHIATASK_H

#include "AliJetEmbeddingFromAODTask.h"
#include <TArrayD.h>

template<class T> 
class TParameter;

class TString;
class TH1;
class THashTable;

class AliJetEmbeddingFromPYTHIATask : public AliJetEmbeddingFromAODTask {
 public:
  AliJetEmbeddingFromPYTHIATask();
  AliJetEmbeddingFromPYTHIATask(const char *name, Bool_t drawqa=kFALSE); 
  virtual ~AliJetEmbeddingFromPYTHIATask();

  Bool_t         UserNotify();
  void           UserCreateOutputObjects();

  void           SetPYTHIAPath(const char* p)                      { fPYTHIAPath                                = p ; }
  void           SetPtHardBinScaling(Int_t n, Double_t *scaling)   { new (&fPtHardBinScaling) TArrayD(n, scaling)   ; }
  void           SetAnchorRun(Int_t r)                             { fAnchorRun                                 = r ; }
  void           SetLHC11hAnchorRuns(Bool_t a=kTRUE)               { fLHC11hAnchorRun                           = a ; }
  void           SetFileTable(THashTable *t)                       { fFileTable                                 = t ; }
  void           SetUseAsVetoTable(Bool_t v)                       { fUseAsVetoTable                            = v ; }
  void           SetMinEntriesPerPtHardBin(Int_t r)                { fMinEntriesPerPtHardBin                    = r ; }

 protected:
  Bool_t           ExecOnce()               ;// intialize task
  Bool_t           GetNextEntry()           ;// get next entry in current tree
  Int_t            GetRandomPtHardBin()     ;// get a radnom pt hard bin according to fPtHardBinScaling
  TFile           *GetNextFile()            ;// get next file

  TString          fPYTHIAPath              ;// Path of the PYTHIA production
  TArrayD          fPtHardBinScaling        ;// Pt hard bin scaling
  Bool_t           fLHC11hAnchorRun         ;// LHC11h anchor runs
  Int_t            fAnchorRun               ;// Anchor run
  THashTable      *fFileTable               ;// Table of allowed/vetoed files
  Bool_t           fUseAsVetoTable          ;// Use fFileTable as a veto table
  Int_t            fMinEntriesPerPtHardBin  ;// Minimum number of embedded events before changing pt hard bin, if < 0 change pt hard bin only when reach eof 
  Int_t            fCurrentPtHardBin        ;//!Pt hard bin of the current open file
  TParameter<int> *fPtHardBinParam          ;//!Pt hard bin param
  Int_t            fPtHardBinCount          ;//!Number of event embedded from the current pt hard bin

  TH1             *fHistPtHardBins          ;//!Embeded pt hard bin distribution

 private:
  AliJetEmbeddingFromPYTHIATask(const AliJetEmbeddingFromPYTHIATask&);            // not implemented
  AliJetEmbeddingFromPYTHIATask &operator=(const AliJetEmbeddingFromPYTHIATask&); // not implemented

  ClassDef(AliJetEmbeddingFromPYTHIATask, 4) // Jet embedding from PYTHIA task
};
#endif
 AliJetEmbeddingFromPYTHIATask.h:1
 AliJetEmbeddingFromPYTHIATask.h:2
 AliJetEmbeddingFromPYTHIATask.h:3
 AliJetEmbeddingFromPYTHIATask.h:4
 AliJetEmbeddingFromPYTHIATask.h:5
 AliJetEmbeddingFromPYTHIATask.h:6
 AliJetEmbeddingFromPYTHIATask.h:7
 AliJetEmbeddingFromPYTHIATask.h:8
 AliJetEmbeddingFromPYTHIATask.h:9
 AliJetEmbeddingFromPYTHIATask.h:10
 AliJetEmbeddingFromPYTHIATask.h:11
 AliJetEmbeddingFromPYTHIATask.h:12
 AliJetEmbeddingFromPYTHIATask.h:13
 AliJetEmbeddingFromPYTHIATask.h:14
 AliJetEmbeddingFromPYTHIATask.h:15
 AliJetEmbeddingFromPYTHIATask.h:16
 AliJetEmbeddingFromPYTHIATask.h:17
 AliJetEmbeddingFromPYTHIATask.h:18
 AliJetEmbeddingFromPYTHIATask.h:19
 AliJetEmbeddingFromPYTHIATask.h:20
 AliJetEmbeddingFromPYTHIATask.h:21
 AliJetEmbeddingFromPYTHIATask.h:22
 AliJetEmbeddingFromPYTHIATask.h:23
 AliJetEmbeddingFromPYTHIATask.h:24
 AliJetEmbeddingFromPYTHIATask.h:25
 AliJetEmbeddingFromPYTHIATask.h:26
 AliJetEmbeddingFromPYTHIATask.h:27
 AliJetEmbeddingFromPYTHIATask.h:28
 AliJetEmbeddingFromPYTHIATask.h:29
 AliJetEmbeddingFromPYTHIATask.h:30
 AliJetEmbeddingFromPYTHIATask.h:31
 AliJetEmbeddingFromPYTHIATask.h:32
 AliJetEmbeddingFromPYTHIATask.h:33
 AliJetEmbeddingFromPYTHIATask.h:34
 AliJetEmbeddingFromPYTHIATask.h:35
 AliJetEmbeddingFromPYTHIATask.h:36
 AliJetEmbeddingFromPYTHIATask.h:37
 AliJetEmbeddingFromPYTHIATask.h:38
 AliJetEmbeddingFromPYTHIATask.h:39
 AliJetEmbeddingFromPYTHIATask.h:40
 AliJetEmbeddingFromPYTHIATask.h:41
 AliJetEmbeddingFromPYTHIATask.h:42
 AliJetEmbeddingFromPYTHIATask.h:43
 AliJetEmbeddingFromPYTHIATask.h:44
 AliJetEmbeddingFromPYTHIATask.h:45
 AliJetEmbeddingFromPYTHIATask.h:46
 AliJetEmbeddingFromPYTHIATask.h:47
 AliJetEmbeddingFromPYTHIATask.h:48
 AliJetEmbeddingFromPYTHIATask.h:49
 AliJetEmbeddingFromPYTHIATask.h:50
 AliJetEmbeddingFromPYTHIATask.h:51
 AliJetEmbeddingFromPYTHIATask.h:52
 AliJetEmbeddingFromPYTHIATask.h:53
 AliJetEmbeddingFromPYTHIATask.h:54
 AliJetEmbeddingFromPYTHIATask.h:55
 AliJetEmbeddingFromPYTHIATask.h:56