ROOT logo
#ifndef ALIEMCALJETFINDER_H
#define ALIEMCALJETFINDER_H

// $Id$

namespace fastjet {
  class PseudoJet;
}

class AliEmcalJet;
class AliFJWrapper;
class TNamed;
class TH1;

class AliEmcalJetFinder : public TNamed
{
  public:
    AliEmcalJetFinder();
    AliEmcalJetFinder(const char* name);
    ~AliEmcalJetFinder();
    
    Bool_t                        FindJets();
    void                          AddInputVector(Double_t px, Double_t py, Double_t pz);
    void                          AddInputVector(Double_t px, Double_t py, Double_t pz, Double_t E);
    void                          FillPtHistogram(TH1* histogram);
    void                          FillEtaHistogram(TH1* histogram);
    void                          FillPhiHistogram(TH1* histogram);

    Int_t                         GetJets(AliEmcalJet*& jets)     {jets = fJetArray[0]; return fJetCount;}
    AliEmcalJet*                  GetJet(Int_t index)             {return fJetArray[index];}
    Int_t                         GetNumberOfJets()               {return fJetCount;}
    void                          SetGhostArea(Double_t val)      {fGhostArea = val;}
    void                          SetRadius(Double_t val)         {fRadius = val;}
    void                          SetJetAlgorithm(Int_t val)      {fJetAlgorithm = val;}
    void                          SetRecombSheme(Int_t val)       {fRecombScheme = val;}
    void                          SetTrackMaxEta(Double_t val)    {fTrackMaxEta = val;}
    void                          SetJetMaxEta(Double_t val)      {fJetMaxEta = val;}
    void                          SetJetMinPt(Double_t val)       {fJetMinPt = val;}
    void                          SetJetMinArea(Double_t val)     {fJetMinArea = val;}

    void                          SetManualIndex(Int_t val)       {fInputVectorIndex = val;}
  private:
    // General properties
    AliFJWrapper*                 fFastjetWrapper;                // Interface object to fastjet
    Int_t                         fInputVectorIndex;              // Current index of input vectors (by default: count of vectors)
    Int_t                         fJetCount;                      // Found jets within the given acceptances
    std::vector<AliEmcalJet*>     fJetArray;                      // Internal array for the jets
    // Settings for fastjet
    Double_t                      fGhostArea;                     // setting for ghost area in FJ
    Double_t                      fRadius;                        // Radius parameter
    Int_t                         fJetAlgorithm;                  // var for algorithm (0=antikt, 1=kt)
    Int_t                         fRecombScheme;                  // Recombination scheme for Fastjet
    Double_t                      fTrackMaxEta;                   // cut for |track-eta| < fTrackMaxEta
    // Jet cuts
    Double_t                      fJetMaxEta;                     // cut for |jet-eta| < fJetMaxEta
    Double_t                      fJetMinPt;                      // cut for  jet-pT > fJetMinPt
    Double_t                      fJetMinArea;                    // cut for  jet-area > fJetMinArea 

    AliEmcalJetFinder(const AliEmcalJetFinder& obj); // copy constructor
    AliEmcalJetFinder& operator=(const AliEmcalJetFinder& other); // assignment

    ClassDef(AliEmcalJetFinder, 1); // Lightweight fastjet implementation outside analysis tasks
};

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