AliPhysics  9b6b435 (9b6b435)
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 
57  void ActivateJetMatching(const char* arrayName, const char* rhoName = 0, const char* rhoMassName = 0)
58  {fMatchedJetsArrayName = arrayName; fMatchedJetsRhoName = rhoName ? rhoName : ""; fMatchedJetsRhoMassName = rhoMassName ? rhoMassName : "";}
59  void SetMCParticleArrayName(const char* name) { fMCParticleArrayName = name; }
63  void SetCustomStartupScript(const char* path) { fCustomStartupScript = path; }
64  void SetVertexerCuts(AliRDHFJetsCutsVertex* val) { fVertexerCuts = val; }
67  void SetTruthLabelRange(Int_t min, Int_t max) { fTruthMinLabel = min; fTruthMaxLabel = max; }
69  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  void GetMatchedJetObservables(AliEmcalJet* jet, Double_t& matchedJetPt, Double_t& matchedJetMass, Double_t& matchedJetDistance);
86  void GetJetType(AliEmcalJet* jet, Int_t& typeHM, Int_t& typePM, Int_t& typeIC);
88  Bool_t IsTrackInCone(const AliVParticle* track, Double_t eta, Double_t phi, Double_t radius);
90  void PrintConfig();
91  void AddPIDInformation(const AliVParticle* particle, Float_t& sigITS, Float_t& sigTPC, Float_t& sigTOF, Float_t& sigTRD, Short_t& recoPID, Int_t& truePID);
92  void GetTrackImpactParameters(const AliVVertex* vtx, const AliAODTrack* track, Float_t& d0, Float_t& d0cov, Float_t& z0, Float_t& z0cov);
93  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);
94  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);
95 
96  // ################## CUTS AND SETTINGS: Should be set during task initialization
106 
116 
121 
124  AliRDHFJetsCutsVertex* fVertexerCuts;
125 
131 
132  // ################## BUFFERS: Variables set during execution time
137  std::vector<Float_t> fTriggerTracks_Pt;
138  std::vector<Float_t> fTriggerTracks_Eta;
139  std::vector<Float_t> fTriggerTracks_Phi;
140  TClonesArray* fMCParticleArray;
141  TRandom3* fRandomGenerator;
143  AliHFJetsTaggingVertex* fVtxTagger;
145  std::vector<SimpleSecondaryVertex> fSimpleSecVertices;
146 
147  // ################## HELPER FUNCTIONS
149  {
150  Double_t deltaPhi = TMath::Min(TMath::Abs(phi1-phi2),TMath::TwoPi() - TMath::Abs(phi1-phi2));
151  return TMath::Sqrt((eta1-eta2)*(eta1-eta2) + deltaPhi*deltaPhi);
152  }
153  void FillHistogram(const char * key, Double_t x);
154  void FillHistogram(const char * key, Double_t x, Double_t y);
155  void FillHistogram(const char * key, Double_t x, Double_t y, Double_t add);
156  void FillHistogram3D(const char * key, Double_t x, Double_t y, Double_t z, Double_t add = 0);
157  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");
158  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");
159  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");
160 
161  private:
162  AliAnalysisTaskJetExtractor(const AliAnalysisTaskJetExtractor&); // not implemented
164 
166  ClassDef(AliAnalysisTaskJetExtractor, 2) // Jet extraction task
168 };
169 
170 
171 //###############################################################################################################################################3
181 //
182 class AliEmcalJetTree : public TNamed
183 {
184  public:
185  AliEmcalJetTree();
186  AliEmcalJetTree(const char* name);
187 
188  // ############ SETTERS
189  void AddExtractionPercentage(Float_t minPt, Float_t maxPt, Float_t percentage)
190  {
191  fExtractionPercentagePtBins.push_back(minPt);
192  fExtractionPercentagePtBins.push_back(maxPt);
193  fExtractionPercentages.push_back(percentage);
194  }
195  void ResetExtractionPercentages() {fExtractionPercentages.clear(); fExtractionPercentagePtBins.clear();}
196  void AddExtractionJetTypeHM(Int_t type) {fExtractionJetTypes_HM.push_back(type);}
197  void AddExtractionJetTypePM(Int_t type) {fExtractionJetTypes_PM.push_back(type);}
198 
199  void InitializeTree(Bool_t saveCaloClusters, Bool_t saveMCInformation, Bool_t saveConstituents, Bool_t saveConstituentsIP, Bool_t saveConstituentPID, Bool_t saveJetShapes, Bool_t saveSplittings, Bool_t saveSecondaryVertices, Bool_t saveTriggerTracks);
200 
201  // ######################################
202  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);
203  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);
204  void FillBuffer_JetShapes(AliEmcalJet* jet, Double_t leSub_noCorr, Double_t angularity, Double_t momentumDispersion, Double_t trackPtMean, Double_t trackPtMedian);
205  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);
206  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);
207  void FillBuffer_MonteCarlo(Int_t motherParton, Int_t motherHadron, Int_t partonInitialCollision, Float_t matchJetDistance, Float_t matchedJetPt, Float_t matchedJetMass, Float_t truePtFraction, Float_t truePtFraction_mcparticles, Float_t ptHard, Float_t eventWeight, Float_t impactParameter);
208  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);
209  void FillBuffer_TriggerTracks(std::vector<Float_t>& triggerTrackPt, std::vector<Float_t>& triggerTrackDeltaEta, std::vector<Float_t>& triggerTrackDeltaPhi);
210  // ######################################
211 
212  void SetRandomGenerator(TRandom3* gen) {fRandomGenerator = gen;}
213  std::vector<Float_t> GetExtractionPercentagePtBins() {return fExtractionPercentagePtBins;}
214  std::vector<Float_t> GetExtractionPercentages() {return fExtractionPercentages;}
215  std::vector<Int_t> GetExtractionJetTypes_HM() {return fExtractionJetTypes_HM;}
216  std::vector<Int_t> GetExtractionJetTypes_PM() {return fExtractionJetTypes_PM;}
218 
219  private:
222  TRandom3* fRandomGenerator;
223 
224  // Option flags
225  std::vector<Float_t> fExtractionPercentages;
226  std::vector<Float_t> fExtractionPercentagePtBins;
227  std::vector<Int_t> fExtractionJetTypes_HM;
228  std::vector<Int_t> fExtractionJetTypes_PM;
229 
230  // Buffers that will be added to the tree
237 
250 
259 
267 
286 
295 
299 
301  ClassDef(AliEmcalJetTree, 8) // Jet tree class
303 };
304 
305 #endif
Float_t fBuffer_Shape_MomentumDispersion
! array buffer
void ExecOnce()
Perform steps needed to initialize the analysis.
Float_t fBuffer_Jet_MC_TruePtFraction_mcparticles
! array buffer
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_Jet_MC_MatchedJet_Pt
! array buffer
Float_t fBuffer_Shape_LeSub_DerivCorr
! array buffer
const char * title
Definition: MakeQAPdf.C:27
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
Float_t fBuffer_Jet_MC_MatchedJet_Mass
! array buffer
std::vector< Float_t > GetExtractionPercentages()
void SetTruthLabelRange(Int_t min, Int_t max)
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)
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
TString fMatchedJetsRhoMassName
Name for matched jets rho_mass object.
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) ...
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_Cluster_Time
! array buffer
Double_t fEventPercentage
percentage (0, 1] which will be extracted
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)
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.
void GetMatchedJetObservables(AliEmcalJet *jet, Double_t &matchedJetPt, Double_t &matchedJetMass, Double_t &matchedJetDistance)
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
TString fMatchedJetsArrayName
Array name for matched jets.
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_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
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_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
Float_t * fBuffer_Cluster_Pt
! array buffer
Float_t fBuffer_JetEta
! array buffer
Int_t * fBuffer_Cluster_Label
! array buffer
TString fMatchedJetsRhoName
Name for matched jets rho object.
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
const char Option_t
Definition: External.C:48
Bool_t fSaveTriggerTracks
save event trigger track
Float_t fBuffer_Shape_TrackPtMean
! array buffer
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
Float_t fBuffer_Jet_MC_MatchedJet_Distance
! array buffer
std::vector< Float_t > fTriggerTracks_Eta
found trigger track eta
void ActivateJetMatching(const char *arrayName, const char *rhoName=0, const char *rhoMassName=0)
Float_t fBuffer_Shape_LeSub_NoCorr
! array buffer
Float_t fBuffer_Shape_Angularity_DerivCorr_1
! array buffer
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