AliPhysics  f1bf8b7 (f1bf8b7)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliAnalysisTaskChargedJetsHadronCF.h
Go to the documentation of this file.
1 #ifndef ALIANALYSISTASKCHARGEDJETSHADRONCF_H
2 #define ALIANALYSISTASKCHARGEDJETSHADRONCF_H
3 /* Copyright(c) 1998-2016, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice */
5 
6 class THn;
7 class AliBasicParticle;
8 class AliAODPid;
9 
10 //###############################################################################################################################################3
20 //
22 {
23  public:
25  AliChargedJetsHadronCFCuts(const char* cutName, const char* outputName, Double_t minPt, Double_t maxPt, Double_t minCent, Double_t maxCent, Double_t lowerOffset, Double_t offset2D, Double_t slope2D, Double_t jetVetoPt)
26  {
27  fCutName = cutName;
28  fOutputName = outputName;
29  fPtMin = minPt;
30  fPtMax = maxPt;
31  fCentMin = minCent;
32  fCentMax = maxCent;
33 
34  fCutLowerPercentageOffset = lowerOffset;
35  fCut2DOffset = offset2D;
36  fCut2DSlope = slope2D;
37 
38  fJetVetoPt = jetVetoPt;
39 
40  fAcceptedJets = 0;
41  fArrayIndex = -1;
42  }
43  Bool_t IsCutFulfilled(Double_t pt, Double_t mcPt, Double_t cent, Double_t ptRatio, Double_t vetoPt)
44  {
45  // Simple kinematic cuts
46  if(pt < fPtMin || pt >= fPtMax)
47  return kFALSE;
48  if(cent < fCentMin || cent >= fCentMax)
49  return kFALSE;
50 
51  // jet veto
52  if(vetoPt >= fJetVetoPt)
53  return kFALSE;
54 
55  // Lower MC percentage cut
56  if(ptRatio < fCutLowerPercentageOffset)
57  return kFALSE;
58 
59  // Value of the 2D cut line. We cut everything above that
60  Double_t cutLineValue = fCut2DSlope*mcPt + fCut2DOffset;
61  if(ptRatio > cutLineValue)
62  return kFALSE;
63 
64  return kTRUE;
65  }
66 
75 
79 
80 
83 };
84 
85 //###############################################################################################################################################3
86 
98 //
100  public:
101 
103  AliAnalysisTaskChargedJetsHadronCF(const char *name);
105 
107  void Terminate(Option_t *option);
108 
109  // ######### SETTERS/GETTERS
110  void ActivateJetEmbedding(const char* embArray, const char* embTrackArray, Double_t maxDistance, Int_t numMatchedJets)
111  {
112  fJetEmbeddingMaxDistance = maxDistance;
113  fJetEmbeddingArrayName = embArray;
114  fJetEmbeddingTrackArrayName = embTrackArray;
115  fJetEmbeddingNumMatchedJets = numMatchedJets;
116  }
117  void AddJetEmbeddingCut(const char* cutName, const char* outputName, Double_t minPt, Double_t maxPt, Double_t minCent, Double_t maxCent, Double_t lowerOffset, Double_t offset2D, Double_t slope2D, Double_t jetVetoPt)
118  {
119  AliChargedJetsHadronCFCuts tmpCut(cutName, outputName, minPt, maxPt, minCent, maxCent, lowerOffset, offset2D, slope2D, jetVetoPt);
120  fJetEmbeddingCuts.push_back(tmpCut);
121  }
122 
123  void SetJetVetoArrayName(const char* name) { fJetVetoArrayName = name; }
130  void SetJetParticleArrayName(const char* name) { fJetParticleArrayName = name; }
131  void SetTrackParticleArrayName(const char* name) { fTrackParticleArrayName = name; }
132 
134  void ActivateEventExtraction(Double_t percentage, Double_t minJetPt, Double_t maxJetPt) {fEventExtractionPercentage = percentage; fEventExtractionMinJetPt = minJetPt; fEventExtractionMaxJetPt = maxJetPt;}
136 
138 
139  protected:
140  void ExecOnce();
141  Bool_t Run();
142 
143  // ######### META FUNCTIONS
144  void BinLogAxis(const THn *h, Int_t axisNumber);
145  void AddEventToTree();
146  void AddJetToOutputArray(AliEmcalJet* jet, Int_t arrayIndex, Int_t& jetsAlreadyInArray);
147  void AddTrackToOutputArray(AliVTrack* track);
148  void AddTrackToTree(AliVTrack* track);
149  void FillHistogramsTracks(AliVTrack* track);
150  void FillHistogramsJets(AliEmcalJet* jet, const char* cutName);
152 
158 
161  std::vector<TClonesArray*> fJetsOutput;
162  TClonesArray *fTracksOutput;
165  TClonesArray *fJetEmbeddingArray;
173  std::vector<AliChargedJetsHadronCFCuts> fJetEmbeddingCuts;
174 
175  TClonesArray *fJetVetoArray;
178  std::vector<AliEmcalJet*> fMatchedJets;
179  std::vector<AliEmcalJet*> fMatchedJetsReference;
180  TRandom3* fRandom;
183  AliAODPid* fTreeBufferPID;
187 
188 
189  // Criteria for the selection of jets that are passed to the correlation task
191 
192  // Event properties
199 
200  // ######### HISTOGRAM FUNCTIONS
201  void FillHistogram(const char * key, Double_t x);
202  void FillHistogram(const char * key, Double_t x, Double_t y);
203  void FillHistogram(const char * key, Double_t x, Double_t y, Double_t add);
204  void FillHistogram3D(const char * key, Double_t x, Double_t y, Double_t z, Double_t add = 0);
205 
206  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");
207  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");
208  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");
209 
210  // ######### HELPER FUNCTIONS
211  void CalculateJetType(AliEmcalJet* jet, Int_t& typeIC, Int_t& typeHM);
212  void GetTrackMCRatios(AliEmcalJet* jet, AliEmcalJet* mcJet, Double_t& trackRatio, Double_t& ptRatio);
215 
217  Bool_t IsTrackInCone(AliVParticle* track, Double_t eta, Double_t phi, Double_t radius);
219  void GetMatchingJets();
220 
221  void GetLeadingJets(const char* opt, AliEmcalJet*& jetLeading, AliEmcalJet*& jetSubLeading);
222  void GetLeadingJetsInArray(TClonesArray* arr, const char* opt, AliEmcalJet*& jetLeading, AliEmcalJet*& jetSubLeading);
224 
225 
226  private:
229 
231  ClassDef(AliAnalysisTaskChargedJetsHadronCF, 11) // Charged jet+h analysis support task
233 };
234 
235 
236 
237 #endif
Int_t fArrayIndex
array index that holds the output array index
Double_t fEventExtractionMaxJetPt
maximum jet pt of recorded events
void ExecOnce()
Perform steps needed to initialize the analysis.
double Double_t
Definition: External.C:58
Double_t fPtMin
valid for jets above this pT
Bool_t fJetVetoJetByJet
If true, the jet veto will be applied on a jet-by-jet basis.
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")
const char * title
Definition: MakeQAPdf.C:26
void GetLeadingJets(const char *opt, AliEmcalJet *&jetLeading, AliEmcalJet *&jetSubLeading)
std::vector< AliChargedJetsHadronCFCuts > fJetEmbeddingCuts
Cuts used in jet embedding.
Double_t fCentMax
valid for centralities below
Container with name, TClonesArray and cuts for particles.
Support task for (charged) jet-hadron correlations.
AliBasicParticle * fTreeBufferTrack
! Tree of extracted jets (buffer)
Int_t fJetOutputMode
mode which jets are written to array (0: all accepted, 1: leading, 2: subleading, 3: leading+subleadi...
Double_t fEventExtractionMinJetPt
minimum jet pt of recorded events
std::vector< AliEmcalJet * > fMatchedJetsReference
Jets matched in an event (reference)
Double_t fEventExtractionPercentage
percentage of events that is recorded
std::vector< TClonesArray * > fJetsOutput
! vector of arrays of basic correlation particles attached to the event (jets)
AliEmcalJet * fSubleadingJet
! subleading jet (calculated event-by-event)
Double_t fCentMin
valid for centralities above
void FillHistogram3D(const char *key, Double_t x, Double_t y, Double_t z, Double_t add=0)
Container class of cuts for AliAnalysisTaskChargedJetsHadronCF.
UShort_t T(UShort_t m, UShort_t t)
Definition: RingBits.C:60
void GetLeadingJetsInArray(TClonesArray *arr, const char *opt, AliEmcalJet *&jetLeading, AliEmcalJet *&jetSubLeading)
TClonesArray * fJetEmbeddingArray
! Array of generated jets imported into task (for embedding)
void GetTrackMCRatios(AliEmcalJet *jet, AliEmcalJet *mcJet, Double_t &trackRatio, Double_t &ptRatio)
Double_t fTrackExtractionPercentagePower
Extraction percentage for tracks.
void AddJetEmbeddingCut(const char *cutName, const char *outputName, Double_t minPt, Double_t maxPt, Double_t minCent, Double_t maxCent, Double_t lowerOffset, Double_t offset2D, Double_t slope2D, Double_t jetVetoPt)
Bool_t fJetEmbeddingCreatePtPlotPerCut
create TH3 per cut or only once
int Int_t
Definition: External.C:63
AliAODPid * fTreeBufferPID
! Tree of extracted jets (buffer)
TString fJetParticleArrayName
Name of fJetsOutput array (if one uses only one)
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")
TString fJetEmbeddingArrayName
Name of array used to match jets.
Int_t fNumberOfCentralityBins
Number of centrality bins.
Int_t fTreeBufferPDG
! Tree of extracted jets (buffer)
std::vector< AliEmcalJet * > fMatchedJets
Jets matched in an event (embedded)
TString fJetEmbeddingTrackArrayName
Name of array used to match tracks of jets.
TString fTrackParticleArrayName
Name of fTracksOutput array.
Int_t mode
Definition: anaM.C:41
AliChargedJetsHadronCFCuts(const char *cutName, const char *outputName, Double_t minPt, Double_t maxPt, Double_t minCent, Double_t maxCent, Double_t lowerOffset, Double_t offset2D, Double_t slope2D, Double_t jetVetoPt)
TClonesArray * fTracksOutput
! Array of basic correlation particles attached to the event (tracks)
AliEmcalJet * fLeadingJet
! leading jet (calculated event-by-event)
void AddJetToOutputArray(AliEmcalJet *jet, Int_t arrayIndex, Int_t &jetsAlreadyInArray)
Double_t fPtMax
valid for jets below this pT
void ActivateJetEmbedding(const char *embArray, const char *embTrackArray, Double_t maxDistance, Int_t numMatchedJets)
Bool_t IsTrackInCone(AliVParticle *track, Double_t eta, Double_t phi, Double_t radius)
Bool_t fJetEmbeddingUsePerTrackMCPercentage
When cutting on MC percentage, calculate it per track and not for all MC tracks.
Int_t fAcceptedJets
temporary var that holds how many jets passed
TString fJetVetoArrayName
Name of array used for veto jets.
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.
Int_t fJetEmbeddingNumMatchedJets
Number of matched leading jets that will be used.
AliEmcalJet * fInitialPartonMatchedJet1
! On PYTHIA data and fJetOutputMode=6, this holds the PDG code of the initial collisions that was mat...
AliEmcalJet * fInitialPartonMatchedJet2
! On PYTHIA data and fJetOutputMode=6, this holds the PDG code of the initial collisions that was mat...
TString fOutputName
array name that is used to output objects associated with this cuts
Base task in the EMCAL jet framework.
Bool_t IsCutFulfilled(Double_t pt, Double_t mcPt, Double_t cent, Double_t ptRatio, Double_t vetoPt)
Represent a jet reconstructed using the EMCal jet framework.
Definition: AliEmcalJet.h:44
Bool_t fJetEmbeddingUseBgrdForMCPercentage
When cutting on MC percentage, use bgrd. corr to calculate MC percentage.
AliAnalysisTaskChargedJetsHadronCF & operator=(const AliAnalysisTaskChargedJetsHadronCF &)
const char Option_t
Definition: External.C:48
void ActivateEventExtraction(Double_t percentage, Double_t minJetPt, Double_t maxJetPt)
bool Bool_t
Definition: External.C:53
void CalculateJetType(AliEmcalJet *jet, Int_t &typeIC, Int_t &typeHM)
Double_t fJetEmbeddingMaxDistance
Max distance allowed to accept an embedded jet.
void FillHistogramsJets(AliEmcalJet *jet, const char *cutName)
Int_t fAcceptedJets
! number accepted jets (calculated event-by-event)
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")
Container for jet within the EMCAL jet framework.
TClonesArray * fJetVetoArray
! Array of jets imported into task used for veto a matching/embedding
Int_t fAcceptedTracks
! number accepted tracks (calculated event-by-event)
Int_t fNumRandomConesPerEvent
Number of random cones thrown in one event.
Int_t fConstPtFilterBit
For const pt plot, filter bit.