AliPhysics  master (3d17d9d)
AliAnalysisTaskSDKL.h
Go to the documentation of this file.
1 #ifndef AliAnalysisTaskSDKL_H
2 #define AliAnalysisTaskSDKL_H
3 
4 // $Id$
5 
6 class TH1;
7 class TH2;
8 class TH3;
9 class THnSparse;
10 //class TTree;
11 class TNtuple;
12 class AliJetContainer;
14 
15 //#include "AliAnalysisTaskEmcal.h"
17 #include "FJ_includes.h"
18 
19 namespace fastjet {
20  class PseudoJet;
21  class ClusterSequenceArea;
22  namespace contrib {
23  class ConstituentSubtractor;
24  }
25 }
26 
27 struct split {
28  float z;
29  float r;
30  float m;
31  int sd_step;
32 };
33 
35  public:
36 
37  AliAnalysisTaskSDKL(const char *name = "AliAnalysisTaskSDKL") ;
38  AliAnalysisTaskSDKL(const char *name, Int_t const backgroption);
39  virtual ~AliAnalysisTaskSDKL();
40 
41  void UserCreateOutputObjects();
42  void Terminate(Option_t *option);
43 
44  static AliAnalysisTaskSDKL* AddTaskSoftDrop(
45  const char *ntracks = "usedefault",
46  const char *njets = "Jets",
47  const char *nrho = "Rho",
48  Int_t nCentBins = 1,
49  Double_t jetradius = 0.4,
50  Double_t jetptcut = 1,
51  Double_t jetareacut = 0.6,
52  const char *type = "EMCAL",
53  Int_t backgroption = 0,
54  Int_t leadhadtype = 0,
55  const char *taskname = "AliAnalysisTaskSDKL"
56  );
57 
58  std::vector<split> ReclusterFindHardSplits(AliEmcalJet *jet);
59  std::vector<split> ReclusterFindHardSplits(fastjet::PseudoJet const & jet);
60  std::vector<split> ReclusterFindHardSplits(std::vector <fastjet::PseudoJet> const & particles);
61  std::vector<split> FindHardSplits(fastjet::PseudoJet const & jet);
62 
63  int InitializeSubtractor(std::vector <fastjet::PseudoJet> const & event_full, Double_t & rho, Double_t & rho_sparse, Int_t opt = 0);
64  void SetJetByJetConstSubtractionMode() { fCSOption = 1; }
65 
66  std::vector<fastjet::PseudoJet> GetBackSubJets(std::vector<fastjet::PseudoJet> const & event_full);
67 
68  void AddTracksToEvent(AliParticleContainer* cont, std::vector <fastjet::PseudoJet> & event);
69  void FillTree(std::vector<fastjet::PseudoJet> const & jets, TNtuple* tree);
70  void FillTree(AliJetContainer *jets, TNtuple* tree);
71 
72  void FillSparseFromSplits(THnSparse *histo, std::vector<split> const & splits, double const jet_pt);
73 
74  protected:
75  void ExecOnce();
76  Bool_t FillHistograms() ;
77  Bool_t Run() ;
78 
79  THnSparse *fhAll;
80  THnSparse *fhAllBackSub;
81 
82  TH1F *fhRho;
83  TH1F *fhRhoSparse;
84 
85  TNtuple *fTree;
86  TNtuple *fTreeBackSub;
87 
92  fastjet::contrib::ConstituentSubtractor *fCSubtractor;
93  fastjet::ClusterSequenceArea *fCSubtractorCS;
94 
95  private:
96  AliAnalysisTaskSDKL(const AliAnalysisTaskSDKL&); // not implemented
97  AliAnalysisTaskSDKL &operator=(const AliAnalysisTaskSDKL&); // not implemented
98 
99  ClassDef(AliAnalysisTaskSDKL, 1) // jet sample analysis task
100 
101 };
102 #endif
double Double_t
Definition: External.C:58
Definition: External.C:244
Int_t nCentBins
fastjet::ClusterSequenceArea * fCSubtractorCS
Container for particles within the EMCAL framework.
int Int_t
Definition: External.C:63
THnSparse * fhAll
! distribution of all
THnSparse * fhAllBackSub
! distribution of all
Definition: External.C:220
AliParticleContainer * fTracksCont
Jets.
Base task in the EMCAL jet framework.
Represent a jet reconstructed using the EMCal jet framework.
Definition: AliEmcalJet.h:51
const char Option_t
Definition: External.C:48
bool Bool_t
Definition: External.C:53
TTree * tree
Container for jet within the EMCAL jet framework.
Definition: External.C:196
void FillTree(TTree *tree, TList &parList)
Definition: MakeTrend.C:331
AliJetContainer * fJetsCont
fastjet::contrib::ConstituentSubtractor * fCSubtractor