]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGJE/EMCALJetTasks/AliJetEmbeddingFromAODTask.h
Remove hard-coded number of centrality bins
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / AliJetEmbeddingFromAODTask.h
index 3555413139b8983551c9b42b2ba8e978d439f4ce..6e902d68c66a8b0ec2f758ea88918c6de8fc515a 100644 (file)
@@ -1,7 +1,7 @@
 #ifndef ALIJETEMBEDDINGFROMAODTASK_H
 #define ALIJETEMBEDDINGFROMAODTASK_H
 
-// $Id: AliJetEmbeddingFromAODTask.h  $
+// $Id$
 
 class TFile;
 class TObjArray;
@@ -10,6 +10,9 @@ class TString;
 class AliVCaloCells;
 class AliVHeader;
 class TH2;
+class TH1;
+class TLorentzVector;
+class AliNamedString;
 
 #include "AliJetModelBaseTask.h"
 
@@ -28,49 +31,98 @@ class AliJetEmbeddingFromAODTask : public AliJetModelBaseTask {
   void           SetAODTracksName(const char *n)                   { fAODTrackName       = n     ; }
   void           SetAODClusName(const char *n)                     { fAODClusName        = n     ; }
   void           SetAODCellsName(const char *n)                    { fAODCellsName       = n     ; }
+  void           SetAODMCParticlesName(const char *n)              { fAODMCParticlesName = n     ; }
   void           SetCentralityRange(Double_t min, Double_t max)    { fMinCentrality      = min   ; fMaxCentrality    = max ; }
   void           SetTriggerMask(UInt_t mask)                       { fTriggerMask        = mask  ; }
   void           SetAODfilterBits(Int_t b0 = 0, Int_t b1 = 0)      { fAODfilterBits[0]   = b0    ; fAODfilterBits[1] = b1  ; }
   void           SetIncludeNoITS(Bool_t f)                         { fIncludeNoITS       = f     ; }
+  void           SetCutMaxFractionSharedTPCClusters(Double_t c = 0.4) { fCutMaxFractionSharedTPCClusters  = c ; }
+  void           SetUseNegativeLabels(Bool_t f)                    { fUseNegativeLabels  = f     ; }
+  void           SetTrackEfficiency(Double_t eff = 0.95)           { fTrackEfficiency    = eff   ; }
   void           SetTotalFiles(Int_t n)                            { fTotalFiles         = n     ; }
+  void           SetAttempts(Int_t n)                              { fAttempts           = n     ; }
+  void           SetRandomAccess(Bool_t r=kTRUE)                   { fRandomAccess       = r     ; }
+  void           SetAODMC(Bool_t a)                                { fIsAODMC            = a     ; }
+  void           SetJetMinPt(Double_t pt)                          { fJetMinPt           = pt    ; }
+  void           SetJetEtaRange(Double_t emi, Double_t ema)        { fJetMinEta = emi; fJetMaxEta = ema; }
+  void           SetJetPhiRange(Double_t pmi, Double_t pma)        { fJetMinPhi = pmi; fJetMaxPhi = pma; }
+  void           SetJetConstituentMinPt(Double_t pt)               { fJetConstituentMinPt= pt    ; }
+  void           SetJetType(Byte_t t)                              { fJetType            = t     ; }
+  void           SetJetAlgo(Byte_t t)                              { fJetAlgo            = t     ; }
+  void           SetZVertexCut(Double_t z)                         { fZVertexCut         = z     ; }
+  void           SetMaxVertexDist(Double_t d)                      { fMaxVertexDist      = d     ; }
+  void           SetParticlePtRange(Double_t min, Double_t max, Byte_t t=1) { fParticleMinPt = min; fParticleMaxPt = max; fParticleSelection = t; }
 
  protected:
-  Bool_t         ExecOnce()            ;// intialize task
-  void           Run()                 ;// do jet model action
-  Bool_t         OpenNextFile()        ;// open next file in fFileList
-  Bool_t         GetNextEntry()        ;// get next entry in current tree
-  Bool_t         IsAODEventSelected()  ;// AOD event trigger/centrality selection
+  Bool_t          ExecOnce()            ;// intialize task
+  void            Run()                 ;// do jet model action
+  virtual TFile  *GetNextFile()         ;// get next file from fFileList
+  virtual Bool_t  OpenNextFile()        ;// open next file
+  virtual Bool_t  GetNextEntry()        ;// get next entry in current tree
+  virtual Bool_t  IsAODEventSelected()  ;// AOD event trigger/centrality selection
+  TLorentzVector  GetLeadingJet(TClonesArray *tracks, TClonesArray *clusters=0);  // get the leading jet
+  Bool_t          FindParticleInRange(TClonesArray *array);// Find particle in array within range (fParticleMinPt, fParticleMaxPt)
 
-  TObjArray     *fFileList         ;//  List of AOD files
-  TString        fAODTreeName      ;//  Name of the tree in the AOD file
-  TString        fAODHeaderName    ;//  Name of the header in the AOD tree
-  TString        fAODVertexName    ;//  Name of the vertex branch in the AOD tree
-  TString        fAODTrackName     ;//  Name of the track collection branch in the AOD tree
-  TString        fAODClusName      ;//  Name of the cluster collection branch in the AOD tree
-  TString        fAODCellsName     ;//  Name of the cell collection branch in the AOD tree
-  Double_t       fMinCentrality    ;//  Minimum centrality
-  Double_t       fMaxCentrality    ;//  Maximum centrality
-  UInt_t         fTriggerMask      ;//  Trigger selection mask
-  Double_t       fZVertexCut       ;//  Z vertex cut
-  Int_t          fAODfilterBits[2] ;//  AOD track filter bit map
-  Bool_t         fIncludeNoITS     ;//  True = includes tracks with failed ITS refit
-  Int_t          fTotalFiles       ;//  Total number of files per pt hard bin
-  Bool_t         fEsdTreeMode      ;//! True = embed from ESD (must be a skimmed ESD!)
-  Int_t          fCurrentFileID    ;//! Current file being processed (trough the event handler)
-  Int_t          fCurrentAODFileID ;//! Current file ID
-  TFile         *fCurrentAODFile   ;//! Current open file
-  Int_t          fPicoTrackVersion ;//! Version of the PicoTrack class (if any) in fCurrentAODFile
-  AliVHeader    *fAODHeader        ;//! AOD header
-  TClonesArray  *fAODVertex        ;//! AOD vertex
-  TClonesArray  *fAODTracks        ;//! AOD track collection
-  TClonesArray  *fAODClusters      ;//! AOD cluster collection
-  AliVCaloCells *fAODCaloCells     ;//! AOD cell collection
-  TH2           *fHistFileIDs      ;//! Current file ID vs. AOD file ID (to be embedded)
+  TObjArray     *fFileList            ;//  List of AOD files 
+  Bool_t         fRandomAccess        ;//  Random access to file number and event
+  TString        fAODTreeName         ;//  Name of the tree in the AOD file
+  TString        fAODHeaderName       ;//  Name of the header in the AOD tree
+  TString        fAODVertexName       ;//  Name of the vertex branch in the AOD tree
+  TString        fAODTrackName        ;//  Name of the track collection branch in the AOD tree
+  TString        fAODClusName         ;//  Name of the cluster collection branch in the AOD tree
+  TString        fAODCellsName        ;//  Name of the cell collection branch in the AOD tree
+  TString        fAODMCParticlesName  ;//  Name of the cell collection branch in the AOD tree
+  Double_t       fMinCentrality       ;//  Minimum centrality
+  Double_t       fMaxCentrality       ;//  Maximum centrality
+  UInt_t         fTriggerMask         ;//  Trigger selection mask
+  Double_t       fZVertexCut          ;//  Z vertex cut
+  Double_t       fMaxVertexDist       ;//  Maximum distance allowed between the vertices of the current and the embedded events
+  Double_t       fJetMinPt            ;//  Select events with a minimum jet pt
+  Double_t       fJetMinEta           ;//  Min eta for jets
+  Double_t       fJetMaxEta           ;//  Max eta for jets
+  Double_t       fJetMinPhi           ;//  Min phi for jets
+  Double_t       fJetMaxPhi           ;//  Max phi for jets
+  Double_t       fJetConstituentMinPt ;//  Jet constituent min pt
+  Double_t       fJetRadius           ;//  Jet radius
+  Byte_t         fJetType             ;//  Jet type (0=full, 1=charged, 2=neutral)
+  Byte_t         fJetAlgo             ;//  Jet algorithm (0=kT, 1=anti-kT)
+  Bool_t         fJetParticleLevel    ;//  Trigger, look at particle level jets
+  Double_t       fParticleMinPt       ;//  Select events with a particle pt between fParticleMinPt and fParticleMaxPt (see fParticleSelection)
+  Double_t       fParticleMaxPt       ;//  Select events with a particle pt between fParticleMinPt and fParticleMaxPt (see fParticleSelection)
+  Byte_t         fParticleSelection   ;//  Particles used to select events (def=0=none, 1=tracks, 2=clusters, 3=MC particles)
+  Int_t          fAODfilterBits[2]    ;//  AOD track filter bit map
+  Bool_t         fIncludeNoITS        ;//  True = includes tracks with failed ITS refit
+  Double_t       fCutMaxFractionSharedTPCClusters;  // max fraction of shared TPC clusters
+  Bool_t         fUseNegativeLabels   ;//  Whether or not should use negative MC labels
+  Double_t       fTrackEfficiency     ;//  Track efficiency
+  Bool_t         fIsAODMC             ;//  Whether the embedding AOD is MC or not
+  Int_t          fTotalFiles          ;//  Total number of files per pt hard bin
+  Int_t          fAttempts            ;//  Attempts to be tried before giving up in opening the next file
+  Bool_t         fEsdTreeMode         ;//! True = embed from ESD (must be a skimmed ESD!)
+  Int_t          fCurrentFileID       ;//! Current file being processed (via the event handler)
+  Int_t          fCurrentAODFileID    ;//! Current file ID
+  TFile         *fCurrentAODFile      ;//! Current open file
+  Int_t          fPicoTrackVersion    ;//! Version of the PicoTrack class (if any) in fCurrentAODFile
+  TTree         *fCurrentAODTree      ;//! Current open tree
+  AliVHeader    *fAODHeader           ;//! AOD header
+  TClonesArray  *fAODVertex           ;//! AOD vertex
+  TClonesArray  *fAODTracks           ;//! AOD track collection
+  TClonesArray  *fAODClusters         ;//! AOD cluster collection
+  AliVCaloCells *fAODCaloCells        ;//! AOD cell collection
+  TClonesArray  *fAODMCParticles      ;//! AOD MC particles collection
+  Int_t          fCurrentAODEntry     ;//! Current entry in the AOD tree
+  AliNamedString *fAODFilePath        ;//! Current AOD file path being embedded
+  TH2           *fHistFileMatching    ;//! Current file ID vs. AOD file ID (to be embedded)
+  TH1           *fHistAODFileError    ;//! AOD file ID (to be embedded) error
+  TH1           *fHistNotEmbedded     ;//! File ID not embedded
+  TH1           *fHistEmbeddingQA     ;//! Embedding QA
+  TH1           *fHistRejectedEvents  ;//! Rejected events
+  Int_t          fEmbeddingCount      ;//! Number of embedded events from the current file
 
  private:
   AliJetEmbeddingFromAODTask(const AliJetEmbeddingFromAODTask&);            // not implemented
   AliJetEmbeddingFromAODTask &operator=(const AliJetEmbeddingFromAODTask&); // not implemented
 
-  ClassDef(AliJetEmbeddingFromAODTask, 2) // Jet embedding from AOD task
+  ClassDef(AliJetEmbeddingFromAODTask, 11) // Jet embedding from AOD task
 };
 #endif