]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/AliJetEmbeddingFromPYTHIATask.h
Charged jets(pPb) framework bugfixes
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / AliJetEmbeddingFromPYTHIATask.h
1 #ifndef ALIJETEMBEDDINGFROMPYTHIATASK_H
2 #define ALIJETEMBEDDINGFROMPYTHIATASK_H
3
4 // $Id$
5
6 #include "AliJetEmbeddingFromAODTask.h"
7 #include <TArrayD.h>
8
9 template<class T> 
10 class TParameter;
11
12 class TString;
13 class TH1;
14 class THashTable;
15
16 class AliJetEmbeddingFromPYTHIATask : public AliJetEmbeddingFromAODTask {
17  public:
18   AliJetEmbeddingFromPYTHIATask();
19   AliJetEmbeddingFromPYTHIATask(const char *name, Bool_t drawqa=kFALSE); 
20   virtual ~AliJetEmbeddingFromPYTHIATask();
21
22   Bool_t         UserNotify();
23   void           UserCreateOutputObjects();
24
25   void           SetPYTHIAPath(const char* p)                      { fPYTHIAPath                                = p ; }
26   void           SetPtHardBinScaling(Int_t n, Double_t *scaling)   { new (&fPtHardBinScaling) TArrayD(n, scaling)   ; }
27   void           SetAnchorRun(Int_t r)                             { fAnchorRun                                 = r ; }
28   void           SetLHC11hAnchorRuns(Bool_t a=kTRUE)               { fLHC11hAnchorRun                           = a ; }
29   void           SetFileTable(THashTable *t)                       { fFileTable                                 = t ; }
30   void           SetUseAsVetoTable(Bool_t v)                       { fUseAsVetoTable                            = v ; }
31   void           SetMinEntriesFromFile(Int_t r)                    { fMinEntriesFromFile                        = r ; }
32
33  protected:
34   Bool_t         ExecOnce()           ;// intialize task
35   Bool_t         GetNextEntry()       ;// get next entry in current tree
36   Int_t          GetRandomPtHardBin() ;// get a radnom pt hard bin according to fPtHardBinScaling
37   TFile         *GetNextFile()        ;// get next file
38
39   TString        fPYTHIAPath          ;// Path of the PYTHIA production
40   TArrayD        fPtHardBinScaling    ;// Pt hard bin scaling
41   Bool_t         fLHC11hAnchorRun     ;// LHC11h anchor runs
42   Int_t          fAnchorRun           ;// Anchor run
43   THashTable    *fFileTable           ;// Table of allowed/vetoed files
44   Bool_t         fUseAsVetoTable      ;// Use fFileTable as a veto table
45   Int_t          fMinEntriesFromFile  ;// Minimum number of embedded events before changing file
46   Int_t          fCurrentPtHardBin    ;//!Pt hard bin of the current open file
47   TParameter<int> *fPtHardBinParam    ;//!Pt hard bin param
48
49   TH1           *fHistPtHardBins      ;//!Embeded pt hard bin distribution
50
51  private:
52   AliJetEmbeddingFromPYTHIATask(const AliJetEmbeddingFromPYTHIATask&);            // not implemented
53   AliJetEmbeddingFromPYTHIATask &operator=(const AliJetEmbeddingFromPYTHIATask&); // not implemented
54
55   ClassDef(AliJetEmbeddingFromPYTHIATask, 3) // Jet embedding from PYTHIA task
56 };
57 #endif