AliPhysics  3b4a69f (3b4a69f)
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;
37 class AliVParticle;
38 class AliAODMCParticle;
43 class THnSparse;
44 class AliFJWrapper;
45 class THashList;
46 class TTree;
47 class AliEMCALGeometry;
48 class TRandom;
49 class AliRhoParameter;
50 class TFile;
51 
52 //C++
53 #include <exception>
54 #include <list>
55 #include <vector>
56 #include <map>
57 
58 #include "AliTLorentzVector.h"
59 #include "THistManager.h"
60 
61 #include "AliAnalysisTaskEmcal.h"
62 #include "AliJetContainer.h"
63 #include "TFile.h"
64 #include "AliRDHFCutsD0toKpi.h"
65 
66 
68 {
69  public:
70 
71  class AliEventNotFound : public std::exception
72  {
73  public:
74  AliEventNotFound(const std::string& class_name, const std::string& method_name);
75 #if !(defined(__CINT__) || defined(__MAKECINT__))
76  const char* what() const noexcept;
77 #endif
78 
79 
80  private:
81  std::string fClassName ;
82  std::string fAccessMethodName ;
83  std::string fWhat ;
84  };
85 
89 
90  enum JetShapeType {
91  kData = 0,
92  kDetSignal = 1,
95  kTrueDet = 4,
96  kTrue = 5,
97  };
99  kUnknownQuark = BIT(0),
100  kFromDown = BIT(1),
101  kFromUp = BIT(2),
102  kFromStrange = BIT(3),
103  kFromCharm = BIT(4),
104  kFromBottom = BIT(5),
105  kFromTop = BIT(6),
106  kFromGluon = BIT(7),
108  };
109 
112  kUnknownDecay = BIT(0),
113  kDecayD0toKpi = BIT(1),
115  };
116 
117  enum TreeSize {
118  nVar = 10,
120  };
121 
122  //enum ECandidateType_t { kD0toKpi, kDstartoKpipi, kD0toKpiLikeSign };
124 
126  AliAnalysisTaskHFSubstructure(const char *name);
128 
129 
130 
131 
133  const char * ntracksTrue,
134  const char * ntracksDet,
135  const Double_t R,
138 
139 
140 
141 
142 
143 
145  void Terminate(Option_t *option);
146 
149 
150 
151  void SetJetShapeType(JetShapeType tJetShapeType) {fJetShapeType = tJetShapeType;}
152  void SetECandidateType_t (ECandidateType_t ECandidateType) {fECandidateType = ECandidateType;}
153 
154  void SetIncludeInclusive(Bool_t IncludeInclusive) {fIncludeInclusive = IncludeInclusive;}
156  void SetIsBDecay(Bool_t IsBDecay) {fIsBDecay = IsBDecay;}
158  void SetBranchName(TString BranchName) {fBranchName = BranchName;}
160  void SetCutsType(TString CutsType) {fCutsType = CutsType;}
162  void SetCandidatePDG(Int_t CandidatePDG) {fCandidatePDG = CandidatePDG;}
164  void SetJetRadius(Double_t JetRadius) {fJetRadius = JetRadius;}
166  void SetJetMinPt(Double_t JetMinPt) {fJetMinPt = JetMinPt;}
168  void SetRejectedOrigin(UInt_t RejectedOrigin) {fRejectedOrigin = RejectedOrigin;}
169  void SetAcceptedDecay(UInt_t AcceptedDecay) {fAcceptedDecay = AcceptedDecay;}
170  void SetRejectISR(Bool_t RejectISR) {fRejectISR = RejectISR;}
172  void SetPromptReject(Bool_t PromptReject) {fPromptReject = PromptReject;}
174  void SetAlienConnect(Bool_t AlienConnect) {fAlienConnect = AlienConnect;}
175  void SetCuts(TString CutsFileName) {TFile *fCutsFile = TFile::Open(CutsFileName);
176  TString cutsname="D0toKpiCuts";
177  if (fCutsType!="") cutsname += TString::Format("_%s", fCutsType.Data());
178  fRDHFCuts = dynamic_cast<AliRDHFCuts*>(fCutsFile->Get(cutsname));}
179 
180 
181 
182 
183  protected:
184 
186  Bool_t Run() ;
193 
199 
203 
204 
205 
206  TClonesArray *fCandidateArray ;
207 
209 
213 
214  std::vector<std::vector<Double_t>> fShapesVar_Splittings_DeltaR;
215  std::vector<std::vector<Double_t>> fShapesVar_Splittings_DeltaR_Truth;
216  std::vector<std::vector<Double_t>> fShapesVar_Splittings_Zg;
217  std::vector<std::vector<Double_t>> fShapesVar_Splittings_Zg_Truth;
218  std::vector<std::vector<Double_t>> fShapesVar_Splittings_LeadingSubJetpT;
219  std::vector<std::vector<Double_t>> fShapesVar_Splittings_LeadingSubJetpT_Truth;
220  std::vector<std::vector<Double_t>> fShapesVar_Splittings_HardestSubJetD0;
221  std::vector<std::vector<Double_t>> fShapesVar_Splittings_HardestSubJetD0_Truth;
222  std::vector<std::vector<Double_t>> fShapesVar_Splittings_RadiatorE;
223  std::vector<std::vector<Double_t>> fShapesVar_Splittings_RadiatorE_Truth;
224  std::vector<std::vector<Double_t>> fShapesVar_Splittings_RadiatorpT;
225  std::vector<std::vector<Double_t>> fShapesVar_Splittings_RadiatorpT_Truth;
228 
229 
230 
231 
233 
234 
236  friend class OutputHandler;
237 
238  private:
239 
242 
243  ClassDef(AliAnalysisTaskHFSubstructure, 2)
244 
245  };
246 
247 #endif
std::vector< std::vector< Double_t > > fShapesVar_Splittings_HardestSubJetD0_Truth
void SetAcceptedDecay(UInt_t AcceptedDecay)
double Double_t
Definition: External.C:58
AliJetContainer::EJetType_t EJetType_t
std::vector< std::vector< Double_t > > fShapesVar_Splittings_RadiatorE_Truth
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_RadiatorpT_Truth
std::vector< std::vector< Double_t > > fShapesVar_Splittings_Zg
Bool_t FillHistograms()
Function filling histograms.
Container for particles within the EMCAL framework.
std::vector< std::vector< Double_t > > fShapesVar_Splittings_DeltaR_Truth
Select tracks based on specific prescriptions of HF analysis.
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)
Select MC particles based on specific prescriptions of HF analysis.
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
Container structure for EMCAL clusters.
void SetJetShapeType(JetShapeType tJetShapeType)
std::vector< std::vector< Double_t > > fShapesVar_Splittings_RadiatorpT
std::vector< std::vector< Double_t > > fShapesVar_Splittings_RadiatorE
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)