AliPhysics  6bc8652 (6bc8652)
 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 
8 //###############################################################################################################################################3
18 //
20 {
21  public:
23  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)
24  {
25  fCutName = cutName;
26  fOutputName = outputName;
27  fPtMin = minPt;
28  fPtMax = maxPt;
29  fCentMin = minCent;
30  fCentMax = maxCent;
31 
32  fCutLowerPercentageOffset = lowerOffset;
33  fCut2DOffset = offset2D;
34  fCut2DSlope = slope2D;
35 
36  fJetVetoPt = jetVetoPt;
37 
38  fAcceptedJets = 0;
39  fArrayIndex = -1;
40  }
41  Bool_t IsCutFulfilled(Double_t pt, Double_t mcPt, Double_t cent, Double_t ptRatio, Double_t vetoPt)
42  {
43  // Simple kinematic cuts
44  if(pt < fPtMin || pt >= fPtMax)
45  return kFALSE;
46  if(cent < fCentMin || cent >= fCentMax)
47  return kFALSE;
48 
49  // jet veto
50  if(vetoPt >= fJetVetoPt)
51  return kFALSE;
52 
53  // Lower MC percentage cut
54  if(ptRatio < fCutLowerPercentageOffset)
55  return kFALSE;
56 
57  // Value of the 2D cut line. We cut everything above that
58  Double_t cutLineValue = fCut2DSlope*mcPt + fCut2DOffset;
59  if(ptRatio > cutLineValue)
60  return kFALSE;
61 
62  return kTRUE;
63  }
64 
73 
77 
78 
81 };
82 
83 //###############################################################################################################################################3
84 
96 //
98  public:
99 
101  AliAnalysisTaskChargedJetsHadronCF(const char *name);
103 
105  void Terminate(Option_t *option);
106 
107  // ######### SETTERS/GETTERS
108  void ActivateJetEmbedding(const char* embArray, const char* embTrackArray, Double_t maxDistance, Int_t numMatchedJets)
109  {
110  fJetEmbeddingMaxDistance = maxDistance;
111  fJetEmbeddingArrayName = embArray;
112  fJetEmbeddingTrackArrayName = embTrackArray;
113  fJetEmbeddingNumMatchedJets = numMatchedJets;
114  }
115  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)
116  {
117  AliChargedJetsHadronCFCuts tmpCut(cutName, outputName, minPt, maxPt, minCent, maxCent, lowerOffset, offset2D, slope2D, jetVetoPt);
118  fJetEmbeddingCuts.push_back(tmpCut);
119  }
120 
121  void SetJetVetoArrayName(const char* name) { fJetVetoArrayName = name; }
128  void SetJetParticleArrayName(const char* name) { fJetParticleArrayName = name; }
129  void SetTrackParticleArrayName(const char* name) { fTrackParticleArrayName = name; }
130 
132  void ActivateEventExtraction(Double_t percentage, Double_t minJetPt, Double_t maxJetPt) {fEventExtractionPercentage = percentage; fEventExtractionMinJetPt = minJetPt; fEventExtractionMaxJetPt = maxJetPt;}
133 
134  protected:
135  void ExecOnce();
136  Bool_t Run();
137 
138  // ######### META FUNCTIONS
139  void BinLogAxis(const THn *h, Int_t axisNumber);
140  void AddEventToTree();
141  void AddJetToOutputArray(AliEmcalJet* jet, Int_t arrayIndex, Int_t& jetsAlreadyInArray);
142  void AddTrackToOutputArray(AliVTrack* track);
143  void FillHistogramsTracks(AliVTrack* track);
144  void FillHistogramsJets(AliEmcalJet* jet, const char* cutName);
146 
152 
155  std::vector<TClonesArray*> fJetsOutput;
156  TClonesArray *fTracksOutput;
159  TClonesArray *fJetEmbeddingArray;
167  std::vector<AliChargedJetsHadronCFCuts> fJetEmbeddingCuts;
168 
169  TClonesArray *fJetVetoArray;
172  std::vector<AliEmcalJet*> fMatchedJets;
173  std::vector<AliEmcalJet*> fMatchedJetsReference;
174  TRandom3* fRandom;
175 
176 
177  // Criteria for the selection of jets that are passed to the correlation task
179 
180  // Event properties
187 
188  // ######### HISTOGRAM FUNCTIONS
189  void FillHistogram(const char * key, Double_t x);
190  void FillHistogram(const char * key, Double_t x, Double_t y);
191  void FillHistogram(const char * key, Double_t x, Double_t y, Double_t add);
192  void FillHistogram3D(const char * key, Double_t x, Double_t y, Double_t z, Double_t add = 0);
193 
194  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");
195  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");
196  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");
197 
198  // ######### HELPER FUNCTIONS
199  void CalculateJetType(AliEmcalJet* jet, Int_t& typeIC, Int_t& typeHM);
200  void GetTrackMCRatios(AliEmcalJet* jet, AliEmcalJet* mcJet, Double_t& trackRatio, Double_t& ptRatio);
203 
205  Bool_t IsTrackInCone(AliVParticle* track, Double_t eta, Double_t phi, Double_t radius);
207  void GetMatchingJets();
208 
209  void GetLeadingJets(const char* opt, AliEmcalJet*& jetLeading, AliEmcalJet*& jetSubLeading);
210  void GetLeadingJetsInArray(TClonesArray* arr, const char* opt, AliEmcalJet*& jetLeading, AliEmcalJet*& jetSubLeading);
212 
213 
214  private:
217 
219  ClassDef(AliAnalysisTaskChargedJetsHadronCF, 11) // Charged jet+h analysis support task
221 };
222 
223 
224 
225 #endif
Int_t fArrayIndex
array index that holds the output array index
Double_t fEventExtractionMaxJetPt
maximum jet pt of recorded events
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.
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)
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
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.
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:40
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.
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 fConstPtFilterBit
For const pt plot, filter bit.