AliPhysics  2c6b7ad (2c6b7ad)
AliAnalysisTaskHFSubstructure.h
Go to the documentation of this file.
1 
13 #ifndef ALIANALYSISTASKHFSUBSTRUCTURE_H
14 #define ALIANALYSISTASKHFSUBSTRUCTURE_H
15 
16 /**************************************************************************
17  * Copyright(c) 1998-2016, ALICE Experiment at CERN, All rights reserved. *
18  * *
19  * Author: The ALICE Off-line Project. *
20  * Contributors are mentioned in the code where appropriate. *
21  * *
22  * Permission to use, copy, modify and distribute this software and its *
23  * documentation strictly for non-commercial purposes is hereby granted *
24  * without fee, provided that the above copyright notice appears in all *
25  * copies and that both the copyright notice and this permission notice *
26  * appear in the supporting documentation. The authors make no claims *
27  * about the suitability of this software for any purpose. It is *
28  * provided "as is" without express or implied warranty. *
29  **************************************************************************/
30 /*
31 class TClonesArray;
32 class AliRDHFCuts;
33 class AliAODEvent;
34 class AliAODRecoDecay;
35 class AliAODRecoDecayHF2Prong;
36 class AliAODRecoCascadeHF;
37 class AliVParticle;
38 class AliAODMCParticle;
39 class AliHFAODMCParticleContainer;
40 class AliHFTrackContainer;
41 class AliParticleContainer;
42 class AliClusterContainer;
43 class THnSparse;
44 class AliFJWrapper;
45 class THashList;
46 class TTree;
47 class AliEMCALGeometry;
48 class TRandom;
49 class AliRhoParameter;
50 */
51 //C++
52 #include <exception>
53 #include <list>
54 #include <vector>
55 #include <map>
56 
57 #include "AliTLorentzVector.h"
58 #include "THistManager.h"
59 
60 #include "AliAnalysisTaskEmcal.h"
61 #include "AliJetContainer.h"
62 
63 
65 {
66  public:
67 
68  class AliEventNotFound : public std::exception
69  {
70  public:
71  AliEventNotFound(const std::string& class_name, const std::string& method_name);
72 #if !(defined(__CINT__) || defined(__MAKECINT__))
73  const char* what() const noexcept;
74 #endif
75 
76 
77  private:
78  std::string fClassName ;
79  std::string fAccessMethodName ;
80  std::string fWhat ;
81  };
82 
86 
87  enum JetShapeType {
88  kData = 0,
89  kDetSignal = 1,
92  kTrueDet = 3,
93  kTrue = 4,
94  };
96  kUnknownQuark = BIT(0),
97  kFromDown = BIT(1),
98  kFromUp = BIT(2),
99  kFromStrange = BIT(3),
100  kFromCharm = BIT(4),
101  kFromBottom = BIT(5),
102  kFromTop = BIT(6),
103  kFromGluon = BIT(7),
105  };
106 
109  kUnknownDecay = BIT(0),
110  kDecayD0toKpi = BIT(1),
112  };
113 
114  enum TreeSize {
115  nVar = 10,
117  };
118 
119  //enum ECandidateType_t { kD0toKpi, kDstartoKpipi, kD0toKpiLikeSign };
121 
123  AliAnalysisTaskHFSubstructure(const char *name);
125 
126 
127 
128 
130  const char * ntracksTrue,
131  const char * ntracksDet,
132  const Double_t R,
135 
136 
137 
138 
139 
140 
142  void Terminate(Option_t *option);
143 
146 
147 
148  void SetJetShapeType(JetShapeType tJetShapeType) {fJetShapeType = tJetShapeType;}
149  void SetECandidateType_t (ECandidateType_t ECandidateType) {fECandidateType = ECandidateType;}
150 
151  void SetIncludeInclusive(Bool_t IncludeInclusive) {fIncludeInclusive = IncludeInclusive;}
153  void SetIsBDecay(Bool_t IsBDecay) {fIsBDecay = IsBDecay;}
155  void SetBranchName(TString BranchName) {fBranchName = BranchName;}
157  void SetCutsFileName(TString CutsFileName) {fCutsFileName = CutsFileName;}
159  void SetCutsType(TString CutsType) {fCutsType = CutsType;}
161  void SetCandidatePDG(Int_t CandidatePDG) {fCandidatePDG = CandidatePDG;}
163  void SetJetRadius(Double_t JetRadius) {fJetRadius = JetRadius;}
165  void SetJetMinPt(Double_t JetMinPt) {fJetMinPt = JetMinPt;}
167  void SetRejectedOrigin(UInt_t RejectedOrigin) {fRejectedOrigin = RejectedOrigin;}
168  void SetAcceptedDecay(UInt_t AcceptedDecay) {fAcceptedDecay = AcceptedDecay;}
169  void SetRejectISR(Bool_t RejectISR) {fRejectISR = RejectISR;}
171  void SetPromptReject(Bool_t PromptReject) {fPromptReject = PromptReject;}
173 
174 
175 
176 
177  protected:
178 
180  Bool_t Run() ;
186 
193 
197 
198 
199  TClonesArray *fCandidateArray ;
200 
202 
206 
207  std::vector<std::vector<Double_t>> fShapesVar_Splittings_DeltaR;
208  std::vector<std::vector<Double_t>> fShapesVar_Splittings_DeltaR_Truth;
209  std::vector<std::vector<Double_t>> fShapesVar_Splittings_Zg;
210  std::vector<std::vector<Double_t>> fShapesVar_Splittings_Zg_Truth;
211  std::vector<std::vector<Double_t>> fShapesVar_Splittings_LeadingSubJetpT;
212  std::vector<std::vector<Double_t>> fShapesVar_Splittings_LeadingSubJetpT_Truth;
213  std::vector<std::vector<Double_t>> fShapesVar_Splittings_HardestSubJetD0;
214  std::vector<std::vector<Double_t>> fShapesVar_Splittings_HardestSubJetD0_Truth;
217 
218 
219 
220 
222 
223 
225  friend class OutputHandler;
226 
227  private:
228 
231 
232  ClassDef(AliAnalysisTaskHFSubstructure, 1)
233 
234  };
235 
236 #endif
std::vector< std::vector< Double_t > > fShapesVar_Splittings_HardestSubJetD0_Truth
void SetAcceptedDecay(UInt_t AcceptedDecay)
double Double_t
Definition: External.C:58
void SetCutsFileName(TString CutsFileName)
AliJetContainer::EJetType_t EJetType_t
Base task in the EMCAL framework.
std::vector< std::vector< Double_t > > fShapesVar_Splittings_HardestSubJetD0
Declaration of class AliTLorentzVector.
void SetIncludeInclusive(Bool_t IncludeInclusive)
std::vector< std::vector< Double_t > > fShapesVar_Splittings_LeadingSubJetpT
std::vector< std::vector< Double_t > > fShapesVar_Splittings_Zg
Bool_t FillHistograms()
Function filling histograms.
std::vector< std::vector< Double_t > > fShapesVar_Splittings_DeltaR_Truth
void SetRejectedOrigin(UInt_t RejectedOrigin)
int Int_t
Definition: External.C:63
unsigned int UInt_t
Definition: External.C:33
Bool_t Run()
Run function. This is the core function of the analysis and contains the user code. Therefore users have to implement this function.
Bool_t RetrieveEventObjects()
Retrieve common objects from event.
Definition: External.C:212
void SetECandidateType_t(ECandidateType_t ECandidateType)
std::vector< std::vector< Double_t > > fShapesVar_Splittings_Zg_Truth
AliEventNotFound(const std::string &class_name, const std::string &method_name)
AliJetContainer::ERecoScheme_t ERecoScheme_t
std::vector< std::vector< Double_t > > fShapesVar_Splittings_DeltaR
AliAnalysisTaskHFSubstructure & operator=(const AliAnalysisTaskHFSubstructure &)
const char Option_t
Definition: External.C:48
AliJetContainer::EJetAlgo_t EJetAlgo_t
bool Bool_t
Definition: External.C:53
std::vector< std::vector< Double_t > > fShapesVar_Splittings_LeadingSubJetpT_Truth
void SetJetShapeType(JetShapeType tJetShapeType)
AliAnalysisTaskHFSubstructure * AddTaskAliAnalysisTaskHFSubstructure(const char *ntracksData, const char *ntracksTrue, const char *ntracksDet, const Double_t R, AliAnalysisTaskHFSubstructure::ECandidateType_t ECandidateType=AliAnalysisTaskHFSubstructure::kD0toKpi, AliAnalysisTaskHFSubstructure::JetShapeType jetShapeType=AliAnalysisTaskHFSubstructure::kData)