AliPhysics  608b256 (608b256)
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,
98  kDet = 7,
99  };
101  kUnknownQuark = BIT(0),
102  kFromDown = BIT(1),
103  kFromUp = BIT(2),
104  kFromStrange = BIT(3),
105  kFromCharm = BIT(4),
106  kFromBottom = BIT(5),
107  kFromTop = BIT(6),
108  kFromGluon = BIT(7),
110  };
111 
114  kUnknownDecay = BIT(0),
115  kDecayD0toKpi = BIT(1),
117  };
118 
119  enum TreeSize {
120  nVar = 10,
122  };
123 
124  //enum ECandidateType_t { kD0toKpi, kDstartoKpipi, kD0toKpiLikeSign };
126 
128  AliAnalysisTaskHFSubstructure(const char *name);
130 
131 
132 
133 
135  const char * ntracksTrue,
136  const char * ntracksDet,
137  const Double_t R,
140 
141 
142 
143 
144 
145 
147  void Terminate(Option_t *option);
148 
151 
152 
153  void SetJetShapeType(JetShapeType tJetShapeType) {fJetShapeType = tJetShapeType;}
154  void SetECandidateType_t (ECandidateType_t ECandidateType) {fECandidateType = ECandidateType;}
155 
156  void SetIncludeInclusive(Bool_t IncludeInclusive) {fIncludeInclusive = IncludeInclusive;}
158  void SetIsBDecay(Bool_t IsBDecay) {fIsBDecay = IsBDecay;}
160  void SetBranchName(TString BranchName) {fBranchName = BranchName;}
162  void SetCutsType(TString CutsType) {fCutsType = CutsType;}
164  void SetCandidatePDG(Int_t CandidatePDG) {fCandidatePDG = CandidatePDG;}
166  void SetJetRadius(Double_t JetRadius) {fJetRadius = JetRadius;}
168  void SetJetMinPt(Double_t JetMinPt) {fJetMinPt = JetMinPt;}
170  void SetRejectedOrigin(UInt_t RejectedOrigin) {fRejectedOrigin = RejectedOrigin;}
171  void SetAcceptedDecay(UInt_t AcceptedDecay) {fAcceptedDecay = AcceptedDecay;}
172  void SetRejectISR(Bool_t RejectISR) {fRejectISR = RejectISR;}
174  void SetPromptReject(Bool_t PromptReject) {fPromptReject = PromptReject;}
176  void SetAlienConnect(Bool_t AlienConnect) {fAlienConnect = AlienConnect;}
177  void SetCuts(TString CutsFileName) {TFile *fCutsFile = TFile::Open(CutsFileName);
178  TString cutsname="D0toKpiCuts";
179  if (fCutsType!="") cutsname += TString::Format("_%s", fCutsType.Data());
180  fRDHFCuts = dynamic_cast<AliRDHFCuts*>(fCutsFile->Get(cutsname));}
181 
182 
183 
184 
185  protected:
186 
188  Bool_t Run() ;
195 
201 
205 
206 
207 
208  TClonesArray *fCandidateArray ;
209 
211 
215 
216  std::vector<std::vector<Double_t>> fShapesVar_Splittings_DeltaR;
217  std::vector<std::vector<Double_t>> fShapesVar_Splittings_DeltaR_Truth;
218  std::vector<std::vector<Double_t>> fShapesVar_Splittings_Zg;
219  std::vector<std::vector<Double_t>> fShapesVar_Splittings_Zg_Truth;
220  std::vector<std::vector<Double_t>> fShapesVar_Splittings_LeadingSubJetpT;
221  std::vector<std::vector<Double_t>> fShapesVar_Splittings_LeadingSubJetpT_Truth;
222  std::vector<std::vector<Double_t>> fShapesVar_Splittings_HardestSubJetD0;
223  std::vector<std::vector<Double_t>> fShapesVar_Splittings_HardestSubJetD0_Truth;
224  std::vector<std::vector<Double_t>> fShapesVar_Splittings_RadiatorE;
225  std::vector<std::vector<Double_t>> fShapesVar_Splittings_RadiatorE_Truth;
226  std::vector<std::vector<Double_t>> fShapesVar_Splittings_RadiatorpT;
227  std::vector<std::vector<Double_t>> fShapesVar_Splittings_RadiatorpT_Truth;
230 
231 
232 
233 
235 
236 
238  friend class OutputHandler;
239 
240  private:
241 
244 
245  ClassDef(AliAnalysisTaskHFSubstructure, 2)
246 
247  };
248 
249 #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)