AliPhysics  master (3d17d9d)
AliAnalysisTaskJetExtractor.h
Go to the documentation of this file.
1 #ifndef ALIANALYSISTASKJETEXTRACTOR_H
2 #define ALIANALYSISTASKJETEXTRACTOR_H
3 
4 /* Copyright(c) 1998-2018, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice */
6 
7 
8 //###############################################################################################################################################3
9 class AliRDHFJetsCutsVertex;
10 class AliEmcalJetTree;
11 class AliHFJetsTaggingVertex;
12 
25 //
26 
28  public:
29  // ## Define class to store and compare secondary vertices (needed for matching of jet splittings & sec. vertices)
31  {
32  Int_t fIndex; // Index of sec. vertices in the array that we save to the tree
33  Double_t fLxy; // decay length
34  AliVParticle* fDaughter1; // daughter particle
35  AliVParticle* fDaughter2; // daughter particle
36  AliVParticle* fDaughter3; // daughter particle
37  };
38 
40  AliAnalysisTaskJetExtractor(const char *name);
42  static AliAnalysisTaskJetExtractor* AddTaskJetExtractor(TString trackArray, TString clusterArray, TString jetArray, TString rhoObject, Double_t jetRadius, AliRDHFJetsCutsVertex* vertexerCuts, const char* taskNameSuffix);
44  void Terminate(Option_t *option);
46 
47  void SetSaveConstituents(Bool_t val) {fSaveConstituents = val; fInitialized = kFALSE;}
48  void SetSaveConstituentsIP(Bool_t val) {fSaveConstituentsIP = val; fInitialized = kFALSE;}
49  void SetSaveConstituentPID(Bool_t val) {fSaveConstituentPID = val; fInitialized = kFALSE;}
50  void SetSaveJetShapes(Bool_t val) {fSaveJetShapes = val; fInitialized = kFALSE;}
51  void SetSaveJetSplittings(Bool_t val) {fSaveJetSplittings = val; fInitialized = kFALSE;}
52  void SetSaveMCInformation(Bool_t val) {fSaveMCInformation = val; fInitialized = kFALSE;}
53  void SetSaveSecondaryVertices(Bool_t val) {fSaveSecondaryVertices = val; fInitialized = kFALSE;}
54  void SetSaveTriggerTracks(Bool_t val) {fSaveTriggerTracks = val; fInitialized = kFALSE;}
55  void SetSaveCaloClusters(Bool_t val) {fSaveCaloClusters = val; fInitialized = kFALSE;}
56  void SetMCParticleArrayName(const char* name) { fMCParticleArrayName = name; }
62  void SetCustomStartupScript(const char* path) { fCustomStartupScript = path; }
63  void SetVertexerCuts(AliRDHFJetsCutsVertex* val) { fVertexerCuts = val; }
66  void SetTruthLabelRange(Int_t min, Int_t max) { fTruthMinLabel = min; fTruthMaxLabel = max; }
68  void SetRandomSeed(ULong_t val) { fRandomSeed = val; }
71 
72  void SetEventCutTriggerTrack(Double_t minPt, Double_t maxPt, Int_t minLabel=-9999999, Int_t maxLabel=+9999999)
75 
76  protected:
78  void ExecOnce();
79  Bool_t Run();
80  void FillTrackControlHistograms(AliVTrack* track);
83  void CalculateJetShapes(AliEmcalJet* jet, Double_t& leSub_noCorr, Double_t& angularity, Double_t& momentumDispersion, Double_t& trackPtMean, Double_t& trackPtMedian);
84  void GetTrueJetPtFraction(AliEmcalJet* jet, Double_t& truePtFraction, Double_t& truePtFraction_mcparticles);
85  bool PerformGeometricalJetMatching(AliJetContainer& contBase, AliJetContainer& contTag, double maxDist);
86  void GetMatchedJetObservables(AliEmcalJet* jet, Double_t& detJetPt, Double_t& partJetPt, Double_t& detJetDistance, Double_t& partJetDistance, Double_t& detJetMass, Double_t& partJetMass, Double_t& detJetAngularity, Double_t& partJetAngularity, Double_t& detJetpTD, Double_t& partJetpTD);
87  void DoJetMatching();
88  void GetJetType(AliEmcalJet* jet, Int_t& typeHM, Int_t& typePM, Int_t& typeIC);
90  Bool_t IsTrackInCone(const AliVParticle* track, Double_t eta, Double_t phi, Double_t radius);
91  Bool_t IsClusterInCone( TLorentzVector clusterMomentum, Double_t eta, Double_t phi,Double_t radius);
93  void PrintConfig();
94  void AddPIDInformation(const AliVParticle* particle, Float_t& sigITS, Float_t& sigTPC, Float_t& sigTOF, Float_t& sigTRD, Short_t& recoPID, Int_t& truePID);
95  void GetTrackImpactParameters(const AliVVertex* vtx, const AliAODTrack* track, Float_t& d0, Float_t& d0cov, Float_t& z0, Float_t& z0cov);
96  void ReconstructSecondaryVertices(const AliVVertex* primVtx, const AliEmcalJet* jet, std::vector<Float_t>& secVtx_X, std::vector<Float_t>& secVtx_Y, std::vector<Float_t>& secVtx_Z, std::vector<Float_t>& secVtx_Mass, std::vector<Float_t>& secVtx_Lxy, std::vector<Float_t>& secVtx_SigmaLxy, std::vector<Float_t>& secVtx_Chi2, std::vector<Float_t>& secVtx_Dispersion);
97  void GetJetSplittings(AliEmcalJet* jet, std::vector<Float_t>& splittings_radiatorE, std::vector<Float_t>& splittings_kT, std::vector<Float_t>& splittings_theta, std::vector<Int_t>& splittings_secVtx_rank, std::vector<Int_t>& splittings_secVtx_index);
98 
99  // ################## CUTS AND SETTINGS: Should be set during task initialization
109 
121 
124 
127  AliRDHFJetsCutsVertex* fVertexerCuts;
128 
134 
135  // ################## BUFFERS: Variables set during execution time
140  std::vector<Float_t> fTriggerTracks_Pt;
141  std::vector<Float_t> fTriggerTracks_Eta;
142  std::vector<Float_t> fTriggerTracks_Phi;
143  TClonesArray* fMCParticleArray;
144  TRandom3* fRandomGenerator;
146  AliHFJetsTaggingVertex* fVtxTagger;
150 
151  std::vector<SimpleSecondaryVertex> fSimpleSecVertices;
152 
153  // ################## HELPER FUNCTIONS
155  {
156  Double_t deltaPhi = TMath::Min(TMath::Abs(phi1-phi2),TMath::TwoPi() - TMath::Abs(phi1-phi2));
157  return TMath::Sqrt((eta1-eta2)*(eta1-eta2) + deltaPhi*deltaPhi);
158  }
159  void FillHistogram(const char * key, Double_t x);
160  void FillHistogram(const char * key, Double_t x, Double_t y);
161  void FillHistogram(const char * key, Double_t x, Double_t y, Double_t add);
162  void FillHistogram3D(const char * key, Double_t x, Double_t y, Double_t z, Double_t add = 0);
163  template <class T> T* AddHistogram1D(const char* name = "CustomHistogram", const char* title = "NO_TITLE", const char* options = "", Int_t xBins = 100, Double_t xMin = 0.0, Double_t xMax = 20.0, const char* xTitle = "x axis", const char* yTitle = "y axis");
164  template <class T> T* AddHistogram2D(const char* name = "CustomHistogram", const char* title = "NO_TITLE", const char* options = "", Int_t xBins = 100, Double_t xMin = 0.0, Double_t xMax = 20.0, Int_t yBins = 100, Double_t yMin = 0.0, Double_t yMax = 20.0, const char* xTitle = "x axis", const char* yTitle = "y axis", const char* zTitle = "z axis");
165  template <class T> T* AddHistogram3D(const char* name = "CustomHistogram", const char* title = "NO_TITLE", const char* options = "", Int_t xBins = 100, Double_t xMin = 0.0, Double_t xMax = 20.0, Int_t yBins = 100, Double_t yMin = 0.0, Double_t yMax = 20.0, Int_t zBins = 100, Double_t zMin = 0.0, Double_t zMax = 20.0, const char* xTitle = "x axis", const char* yTitle = "y axis", const char* zTitle = "z axis");
166 
167  private:
168  AliAnalysisTaskJetExtractor(const AliAnalysisTaskJetExtractor&); // not implemented
170 
172  ClassDef(AliAnalysisTaskJetExtractor, 9) // Jet extraction task
174 };
175 
176 
177 //###############################################################################################################################################3
187 //
188 class AliEmcalJetTree : public TNamed
189 {
190  public:
191  AliEmcalJetTree();
192  AliEmcalJetTree(const char* name);
193 
194  // ############ SETTERS
195  void AddExtractionPercentage(Float_t minPt, Float_t maxPt, Float_t percentage)
196  {
197  fExtractionPercentagePtBins.push_back(minPt);
198  fExtractionPercentagePtBins.push_back(maxPt);
199  fExtractionPercentages.push_back(percentage);
200  }
201  void ResetExtractionPercentages() {fExtractionPercentages.clear(); fExtractionPercentagePtBins.clear();}
202  void AddExtractionJetTypeHM(Int_t type) {fExtractionJetTypes_HM.push_back(type);}
203  void AddExtractionJetTypePM(Int_t type) {fExtractionJetTypes_PM.push_back(type);}
204 
205  void InitializeTree(Bool_t saveCaloClusters, Bool_t saveMCInformation, Bool_t saveMatchedJets_Det, Bool_t saveMatchedJets_Part, Bool_t saveConstituents, Bool_t saveConstituentsIP, Bool_t saveConstituentPID, Bool_t saveJetShapes, Bool_t saveSplittings, Bool_t saveSecondaryVertices, Bool_t saveTriggerTracks);
206 
207  // ######################################
208  Bool_t AddJetToTree(AliEmcalJet* jet, Bool_t saveConstituents, Bool_t saveConstituentsIP, Bool_t saveCaloClusters, Double_t* vertex, Float_t rho, Float_t rhoMass, Float_t centrality, Int_t multiplicity, Long64_t eventID, Float_t magField);
209  void FillBuffer_SecVertices(std::vector<Float_t>& secVtx_X, std::vector<Float_t>& secVtx_Y, std::vector<Float_t>& secVtx_Z, std::vector<Float_t>& secVtx_Mass, std::vector<Float_t>& secVtx_Lxy, std::vector<Float_t>& secVtx_SigmaLxy, std::vector<Float_t>& secVtx_Chi2, std::vector<Float_t>& secVtx_Dispersion);
210  void FillBuffer_JetShapes(AliEmcalJet* jet, Double_t leSub_noCorr, Double_t angularity, Double_t momentumDispersion, Double_t trackPtMean, Double_t trackPtMedian);
211  void FillBuffer_Splittings(std::vector<Float_t>& splittings_radiatorE, std::vector<Float_t>& splittings_kT, std::vector<Float_t>& splittings_theta, Bool_t saveSecondaryVertices, std::vector<Int_t>& splittings_secVtx_rank, std::vector<Int_t>& splittings_secVtx_index);
212  void FillBuffer_PID(std::vector<Float_t>& trackPID_ITS, std::vector<Float_t>& trackPID_TPC, std::vector<Float_t>& trackPID_TOF, std::vector<Float_t>& trackPID_TRD, std::vector<Short_t>& trackPID_Reco, std::vector<Int_t>& trackPID_Truth);
213  void FillBuffer_MonteCarlo(Int_t motherParton, Int_t motherHadron, Int_t partonInitialCollision,
214  Float_t matchedJetDistance_Det, Float_t matchedJetPt_Det, Float_t matchedJetMass_Det, Float_t matchedJetAngularity_Det, Float_t matchedJetpTD_Det,
215  Float_t matchedJetDistance_Part, Float_t matchedJetPt_Part, Float_t matchedJetMass_Part, Float_t matchedJetAngularity_Part, Float_t matchedJetpTD_Part,
216  Float_t truePtFraction, Float_t truePtFraction_PartLevel, Float_t ptHard, Float_t eventWeight, Float_t impactParameter);
217  void FillBuffer_ImpactParameters(std::vector<Float_t>& trackIP_d0, std::vector<Float_t>& trackIP_z0, std::vector<Float_t>& trackIP_d0cov, std::vector<Float_t>& trackIP_z0cov);
218  void FillBuffer_TriggerTracks(std::vector<Float_t>& triggerTrackPt, std::vector<Float_t>& triggerTrackDeltaEta, std::vector<Float_t>& triggerTrackDeltaPhi);
219  // ######################################
220 
221  void SetRandomGenerator(TRandom3* gen) {fRandomGenerator = gen;}
222  std::vector<Float_t> GetExtractionPercentagePtBins() {return fExtractionPercentagePtBins;}
223  std::vector<Float_t> GetExtractionPercentages() {return fExtractionPercentages;}
224  std::vector<Int_t> GetExtractionJetTypes_HM() {return fExtractionJetTypes_HM;}
225  std::vector<Int_t> GetExtractionJetTypes_PM() {return fExtractionJetTypes_PM;}
227 
228  private:
231  TRandom3* fRandomGenerator;
232 
233  // Option flags
234  std::vector<Float_t> fExtractionPercentages;
235  std::vector<Float_t> fExtractionPercentagePtBins;
236  std::vector<Int_t> fExtractionJetTypes_HM;
237  std::vector<Int_t> fExtractionJetTypes_PM;
238 
239  // Buffers that will be added to the tree
246 
259 
268 
276 
295 
311 
312 
313 
317 
319  ClassDef(AliEmcalJetTree, 12) // Jet tree class
321 };
322 
323 #endif
Float_t fBuffer_Shape_MomentumDispersion
! array buffer
void ExecOnce()
Perform steps needed to initialize the analysis.
Float_t * fBuffer_Track_ProdVtx_Z
! array buffer
double Double_t
Definition: External.C:58
Bool_t fIsEmbeddedEvent
Set to true if at least one embedding container is added to this task.
void GetTrackImpactParameters(const AliVVertex *vtx, const AliAODTrack *track, Float_t &d0, Float_t &d0cov, Float_t &z0, Float_t &z0cov)
void AddExtractionJetTypePM(Int_t type)
Float_t fBuffer_Shape_LeSub_DerivCorr
! array buffer
const char * title
Definition: MakeQAPdf.C:27
Bool_t fDoPartLevelMatching
Whether or not we do particle level matching.
void GetJetType(AliEmcalJet *jet, Int_t &typeHM, Int_t &typePM, Int_t &typeIC)
AliAnalysisTaskJetExtractor & operator=(const AliAnalysisTaskJetExtractor &)
Bool_t fSetEmcalJetFlavour
if set, the flavour property of the AliEmcalJets will be set
TTree * fJetTree
! tree structure
long long Long64_t
Definition: External.C:43
T * AddHistogram3D(const char *name="CustomHistogram", const char *title="NO_TITLE", const char *options="", Int_t xBins=100, Double_t xMin=0.0, Double_t xMax=20.0, Int_t yBins=100, Double_t yMin=0.0, Double_t yMax=20.0, Int_t zBins=100, Double_t zMin=0.0, Double_t zMax=20.0, const char *xTitle="x axis", const char *yTitle="y axis", const char *zTitle="z axis")
Float_t fBuffer_Event_BackgroundDensity
! array buffer
void SetEventCutTriggerTrack(Double_t minPt, Double_t maxPt, Int_t minLabel=-9999999, Int_t maxLabel=+9999999)
Float_t fBuffer_Shape_Mass_DerivCorr_1
! array buffer
std::vector< Float_t > GetExtractionPercentages()
void SetTruthLabelRange(Int_t min, Int_t max)
Bool_t IsClusterInCone(TLorentzVector clusterMomentum, Double_t eta, Double_t phi, Double_t radius)
Bool_t fNeedEmbedClusterContainer
If we need to get embedded cluster container (true for hybrid event)
Int_t fEventCut_TriggerTrackOrigin
Event requirement, trigger track origin (0: no cut, 1: from embedding, 2: not from embedding) ...
centrality
Bool_t fSaveMCInformation
save MC information
Float_t * fBuffer_Cluster_M02
! array buffer
Bool_t fSaveConstituentsIP
save arrays of constituent impact parameters
Int_t fTruthMinLabel
min track label to consider it as true particle
Double_t fSecondaryVertexMaxChi2
Max chi2 of secondary vertex (others will be discarded)
Int_t fMultiplicity
Multiplicity (number tracks, also for multiple containers)
Float_t fBuffer_Jet_MC_MatchedPartLevelJet_Distance
! array buffer
Double_t fSecondaryVertexMaxDispersion
Max dispersion of secondary vertex (others will be discarded)
void AddPIDInformation(const AliVParticle *particle, Float_t &sigITS, Float_t &sigTPC, Float_t &sigTOF, Float_t &sigTRD, Short_t &recoPID, Int_t &truePID)
Double_t fEventCut_TriggerTrackMinPt
Event requirement, trigger track min pT.
std::vector< Float_t > GetExtractionPercentagePtBins()
std::vector< Float_t > fTriggerTracks_Pt
found trigger track pT
Int_t * fBuffer_Track_Label
! array buffer
Float_t fBuffer_Shape_Circularity_DerivCorr_1
! array buffer
Float_t fBuffer_Shape_pTD_DerivCorr_2
! array buffer
Bool_t fSaveConstituentPID
save arrays of constituent PID parameters
Double_t fEventWeight
event weight for each event (implemented for JEWEL)
const Int_t kMaxNumConstituents
Float_t * fBuffer_Track_Eta
! array buffer
static AliAnalysisTaskJetExtractor * AddTaskJetExtractor(TString trackArray, TString clusterArray, TString jetArray, TString rhoObject, Double_t jetRadius, AliRDHFJetsCutsVertex *vertexerCuts, const char *taskNameSuffix)
T * AddHistogram2D(const char *name="CustomHistogram", const char *title="NO_TITLE", const char *options="", Int_t xBins=100, Double_t xMin=0.0, Double_t xMax=20.0, Int_t yBins=100, Double_t yMin=0.0, Double_t yMax=20.0, const char *xTitle="x axis", const char *yTitle="y axis", const char *zTitle="z axis")
void CalculateJetShapes(AliEmcalJet *jet, Double_t &leSub_noCorr, Double_t &angularity, Double_t &momentumDispersion, Double_t &trackPtMean, Double_t &trackPtMedian)
std::vector< Int_t > fExtractionJetTypes_HM
Jet-types that will be extracted with this tree (hadron matching)
std::vector< Float_t > fTriggerTracks_Phi
found trigger track phi
UShort_t T(UShort_t m, UShort_t t)
Definition: RingBits.C:60
Int_t fEventCut_TriggerTrackMaxLabel
Event requirement, trigger track max label (can be used to selected toy particles) ...
Float_t fBuffer_Jet_MC_MatchedPartLevelJet_Pt
! array buffer
void SetSecondaryVertexMaxDispersion(Double_t val)
Float_t fBuffer_Shape_Mass_DerivCorr_2
! array buffer
Float_t fBuffer_Event_ImpactParameter
! array buffer
TRandom3 * fRandomGenerator
! Random number generator, used for event + jet efficiency
TRandom3 * fRandomGenerator
! random generator
std::vector< Float_t > fExtractionPercentages
Percentages which will be extracted for a given pT bin.
TClonesArray * fMCParticleArray
! Array of MC particles in event (usually mcparticles)
Float_t fBuffer_Jet_MC_MatchedPartLevelJet_Angularity
! array buffer
Float_t * fBuffer_Cluster_Time
! array buffer
Float_t fBuffer_Jet_MC_MatchedDetLevelJet_Angularity
! array buffer
Double_t fEventPercentage
percentage (0, 1] which will be extracted
Double_t fJetMatchingSharedPtFraction
Shared pT fraction required in matching.
Float_t fBuffer_Shape_Sigma2_DerivCorr_2
! array buffer
void FillHistogram3D(const char *key, Double_t x, Double_t y, Double_t z, Double_t add=0)
int Int_t
Definition: External.C:63
Int_t fBuffer_Jet_MC_MotherParton
! array buffer
Float_t fBuffer_Event_PtHard
! array buffer
Float_t * fBuffer_Track_Charge
! array buffer
float Float_t
Definition: External.C:68
Float_t * fBuffer_Cluster_Phi
! array buffer
Float_t fBuffer_Event_Weight
! array buffer
T * AddHistogram1D(const char *name="CustomHistogram", const char *title="NO_TITLE", const char *options="", Int_t xBins=100, Double_t xMin=0.0, Double_t xMax=20.0, const char *xTitle="x axis", const char *yTitle="y axis")
TRandom3 * fRandomGeneratorCones
! Random number generator, used for random cones
Float_t fBuffer_Shape_Sigma2_DerivCorr_1
! array buffer
Double_t fImpactParameter
IP for each event (implemented for JEWEL)
Float_t fBuffer_Jet_MC_MatchedDetLevelJet_Mass
! array buffer
Int_t fBuffer_Event_Multiplicity
! array buffer
Float_t fBuffer_JetPhi
! array buffer
Float_t fBuffer_Shape_TrackPtMedian
! array buffer
Bool_t fSaveConstituents
save arrays of constituent basic properties
Bool_t IsTrackInCone(const AliVParticle *track, Double_t eta, Double_t phi, Double_t radius)
Int_t fTruthMaxLabel
max track label to consider it as true particle
std::vector< SimpleSecondaryVertex > fSimpleSecVertices
Vector of secondary vertices.
Float_t fBuffer_JetArea
! array buffer
std::vector< Int_t > fExtractionJetTypes_PM
Jet-types that will be extracted with this tree (parton matching)
std::vector< Float_t > fExtractionPercentagePtBins
pT-bins associated with fExtractionPercentages
Float_t * fBuffer_Track_Phi
! array buffer
Long64_t fBuffer_Event_ID
! array buffer
Float_t fBuffer_Event_Centrality
! array buffer
Int_t fBuffer_Jet_MC_MotherIC
! array buffer
TString fCustomStartupScript
Path to custom shell script that will be executed.
Bool_t fSaveJetSplittings
save jet splittings from iterative CA reclustering
Float_t * fBuffer_Track_ProdVtx_X
! array buffer
Float_t fBuffer_Shape_Mass_NoCorr
! array buffer
unsigned long ULong_t
Definition: External.C:38
TString fMCParticleArrayName
Array name of MC particles in event (mcparticles)
Bool_t fInitialized
init state of tree
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.
Analysis task that implements AliEmcalJetTree to extract jets to a tree.
std::vector< Int_t > GetExtractionJetTypes_PM()
std::vector< Int_t > GetExtractionJetTypes_HM()
Float_t fBuffer_Event_BackgroundDensityMass
! array buffer
void SetCustomStartupScript(const char *path)
AliHFJetsTaggingVertex * fVtxTagger
! class for sec. vertexing
short Short_t
Definition: External.C:23
AliRDHFJetsCutsVertex * fVertexerCuts
Cuts used for the vertexer (given in add task macro)
Float_t fBuffer_Jet_MC_TruePtFraction_PartLevel
! array buffer
Float_t fBuffer_Jet_MC_MatchedDetLevelJet_Distance
! array buffer
Float_t * fBuffer_Cluster_Eta
! array buffer
Float_t fBuffer_Shape_NumTracks_DerivCorr
! array buffer
Int_t fEventCut_TriggerTrackMinLabel
Event requirement, trigger track min label (can be used to selected toy particles) ...
Int_t fBuffer_NumClusters
! array buffer
Float_t fBuffer_Jet_MC_MatchedPartLevelJet_pTD
! array buffer
void AddExtractionJetTypeHM(Int_t type)
void SetMCParticleArrayName(const char *name)
void FillHistogram(const char *key, Double_t x)
void FillTrackControlHistograms(AliVTrack *track)
Float_t fBuffer_Jet_MC_MatchedDetLevelJet_Pt
! array buffer
Float_t fBuffer_JetPt
! array buffer
void ReconstructSecondaryVertices(const AliVVertex *primVtx, const AliEmcalJet *jet, std::vector< Float_t > &secVtx_X, std::vector< Float_t > &secVtx_Y, std::vector< Float_t > &secVtx_Z, std::vector< Float_t > &secVtx_Mass, std::vector< Float_t > &secVtx_Lxy, std::vector< Float_t > &secVtx_SigmaLxy, std::vector< Float_t > &secVtx_Chi2, std::vector< Float_t > &secVtx_Dispersion)
Float_t fBuffer_Event_Vertex_Y
! array buffer
Int_t fBuffer_NumTracks
! array buffer
Bool_t fSaveSecondaryVertices
save reconstructed sec. vertex properties
void GetTrueJetPtFraction(AliEmcalJet *jet, Double_t &truePtFraction, Double_t &truePtFraction_mcparticles)
void SetVertexerCuts(AliRDHFJetsCutsVertex *val)
Float_t * fBuffer_Cluster_E
! array buffer
Double_t fHadronMatchingRadius
Matching radius to search for beauty/charm hadrons around jet.
Float_t * fBuffer_Track_ProdVtx_Y
! array buffer
Base task in the EMCAL jet framework.
Float_t fBuffer_Shape_Angularity_DerivCorr_2
! array buffer
Represent a jet reconstructed using the EMCal jet framework.
Definition: AliEmcalJet.h:51
Bool_t fDoDetLevelMatching
Whether or not we do det level matching.
Float_t fBuffer_Jet_MC_MatchedDetLevelJet_pTD
! array buffer
Float_t * fBuffer_Cluster_Pt
! array buffer
Float_t fBuffer_JetEta
! array buffer
void GetMatchedJetObservables(AliEmcalJet *jet, Double_t &detJetPt, Double_t &partJetPt, Double_t &detJetDistance, Double_t &partJetDistance, Double_t &detJetMass, Double_t &partJetMass, Double_t &detJetAngularity, Double_t &partJetAngularity, Double_t &detJetpTD, Double_t &partJetpTD)
Int_t * fBuffer_Cluster_Label
! array buffer
void GetJetSplittings(AliEmcalJet *jet, std::vector< Float_t > &splittings_radiatorE, std::vector< Float_t > &splittings_kT, std::vector< Float_t > &splittings_theta, std::vector< Int_t > &splittings_secVtx_rank, std::vector< Int_t > &splittings_secVtx_index)
Bool_t fSaveTrackPDGCode
save PDG code instead of code defined for AOD pid
Double_t fJetMatchingRadius
Matching radius for geometrically matching jets.
const char Option_t
Definition: External.C:48
Bool_t fSaveTriggerTracks
save event trigger track
Float_t fBuffer_Shape_TrackPtMean
! array buffer
void SetJetMatchingSharedPtFraction(Double_t val)
bool PerformGeometricalJetMatching(AliJetContainer &contBase, AliJetContainer &contTag, double maxDist)
void AddExtractionPercentage(Float_t minPt, Float_t maxPt, Float_t percentage)
Float_t fBuffer_Event_Vertex_X
! array buffer
Double_t GetDistance(Double_t eta1, Double_t eta2, Double_t phi1, Double_t phi2)
bool Bool_t
Definition: External.C:53
Double_t yMin
void SetRandomGenerator(TRandom3 *gen)
Float_t fBuffer_Shape_Circularity_DerivCorr_2
! array buffer
Int_t fBuffer_Jet_MC_MotherHadron
! array buffer
Double_t fEventCut_TriggerTrackMaxPt
Event requirement, trigger track max pT.
Bool_t fSaveCaloClusters
save calorimeter clusters
std::vector< Float_t > fTriggerTracks_Eta
found trigger track eta
Float_t fBuffer_Shape_LeSub_NoCorr
! array buffer
Float_t fBuffer_Shape_Angularity_DerivCorr_1
! array buffer
Float_t fBuffer_Jet_MC_MatchedPartLevelJet_Mass
! array buffer
Container for jet within the EMCAL jet framework.
Float_t fBuffer_Jet_MC_TruePtFraction
! array buffer
Class managing creation of a tree containing jets.
Float_t fBuffer_Shape_Angularity_NoCorr
! array buffer
Float_t fBuffer_Shape_pTD_DerivCorr_1
! array buffer
Double_t yMax
Float_t fBuffer_Event_Vertex_Z
! array buffer
Float_t * fBuffer_Track_Pt
! array buffer
Float_t fBuffer_Event_MagneticField
! array buffer