AliPhysics  b0c77bb (b0c77bb)
AliAnalysisTaskEmcalJetShapesMC.h
Go to the documentation of this file.
1 #ifndef ALIANALYSISTASKEMCALJETSHAPESMC_H
2 #define ALIANALYSISTASKEMCALJETSHAPESMC_H
3 
4 
15 
16 class TH1;
17 class TH2;
18 class TH3;
19 class TH3F;
20 class TTree;
21 class THnSparse;
22 class TClonesArray;
23 class TArrayI;
24 class TRandom3;
25 class TF1;
26 class AliAnalysisManager;
27 class AliJetContainer;
28 class AliEmcalJetFinder;
29 class AliFJWrapper;
30 
31 
32 
34 #include "AliFJWrapper.h"
35 #include "AliClusterContainer.h"
36 
37 
39  public:
40 
41  enum JetShapeType {
43  };
44  enum JetShapeSub {
45  kNoSub = 0,
46  kConstSub = 1,
48  };
51  kRecoil = 1
52  };
53 
57  };
58 
60  AliAnalysisTaskEmcalJetShapesMC(const char *name);
62 
64  void Terminate(Option_t *option);
65 
66  //Setters
81  void SetRMatching(Float_t f) { fRMatching = f ;}
82  void SetJetRadius(Float_t f) { fJetRadius = f ;}
85  void SetPtTriggerSelections(Float_t minpT, Float_t maxpT) { fminpTTrig = minpT; fmaxpTTrig = maxpT; }
92  void SetMinCentrality(Float_t t) { fCentMin = t ; }
93  void SetMaxCentrality(Float_t t) { fCentMax = t ; }
95  void SetHolePos(Float_t poshole) { fHolePos = poshole; }
96  void SetHoleWidth(Float_t holewidth) { fHoleWidth = holewidth; }
100 
102  const char * njetsBase,
103  const Double_t jetradius,
104  const Double_t subjetradius,
105  const char *ntracksPartLevel,
106  const char *type,
107  const char *CentEst,
108  Int_t pSel,
109  TString trigClass = "",
110  TString kEmcalTriggers = "",
111  TString tag = "",
112  const char *rhoName = "",
116  Float_t minpTHTrigger =0.,
117  Float_t maxpTHTrigger =0.,
119 
120  protected:
121 
123  Bool_t Run();
125 
126  Float_t GetJetMass(AliEmcalJet *jet,Int_t jetContNb=0);
127  Float_t Angularity(AliEmcalJet *jet, Int_t jetContNb=0);
128  Float_t GetJetAngularity(AliEmcalJet *jet, Int_t jetContNb=0);
129  Float_t PTD(AliEmcalJet *jet, Int_t jetContNb=0);
130  Float_t GetJetpTD(AliEmcalJet *jet, Int_t jetContNb=0);
131  Float_t Circularity(AliEmcalJet *jet, Int_t jetContNb=0);
132  Float_t GetJetCircularity(AliEmcalJet *jet, Int_t jetContNb=0);
133  Float_t LeSub(AliEmcalJet *jet, Int_t jetContNb=0);
134  Float_t GetJetLeSub(AliEmcalJet *jet, Int_t jetContNb=0);
136  Float_t GetSigma2(AliEmcalJet *jet, Int_t jetContNb=0);
137  Float_t Sigma2(AliEmcalJet *jet, Int_t jetContNb=0);
138  void NTValues(AliEmcalJet *jet, Int_t jetContNb, Float_t* nTFractions);
139  void SoftDrop(AliEmcalJet *fJet,AliJetContainer *fJetCont, Double_t zcut, Double_t beta, Int_t ReclusterAlgo);
140  void RecursiveParents(AliEmcalJet *fJet,AliJetContainer *fJetCont, Int_t ReclusterAlgo,Float_t PartonFlavor);
141  AliEmcalJetFinder* Recluster(AliEmcalJet *Jet, Int_t JetContNb, Double_t JetRadius, Double_t SubJetRadius, Double_t SubJetMinPt, Int_t Algorithm, const char* Name);
142 
143  //Double_t NSubJettiness(AliEmcalJet *Jet, Int_t JetContNb, AliEmcalJetFinder *Reclusterer, Int_t N, Int_t A, Int_t B);
145 
146  Double_t GetSubjetFraction(AliEmcalJet *Jet, Int_t JetContNb, Double_t JetRadius, AliEmcalJetFinder *Reclusterer);
147 
148  Float_t CoreFrac(AliEmcalJet *jet, Int_t jetContNb=0);
149  Float_t GetJetCoreFrac(AliEmcalJet *jet, Int_t jetContNb=0);
150 
151 
152  Double_t FjNSubJettiness(AliEmcalJet *Jet, Int_t JetContNb, Int_t N, Int_t Algorithm, Double_t Beta, Int_t Option, Double_t Beta_SD=0.0, Double_t ZCut=0.1, Int_t SoftDropOn=0);
153 
154 
155  Int_t SelectTrigger(Float_t minpT, Float_t maxpT);
157 
158  Int_t fContainer; // jets to be analyzed 0 for Base, 1 for subtracted.
159  Float_t fMinFractionShared; // only fill histos for jets if shared fraction larger than X
160  JetShapeType fJetShapeType; // jet type to be used
161  JetShapeSub fJetShapeSub; // jet subtraction to be used
162  JetSelectionType fJetSelection; // Jet selection: inclusive/recoil jet
163  Float_t fShapesVar[13]; // jet shapes used for the tagging
168  Int_t fSelectedShapes; //chose set of shapes
174  Int_t fAdditionalTracks; //number of extra tracks to stress the grooming
175  Float_t fHardCutoff; //hard cutoff in the iterative procedure
176  Int_t fOptionalPartonInfo; //parton info only valid for pythia6
177  Float_t fminpTTrig; //min - max pT for trigger particle in case of recoil jet
179  Float_t fangWindowRecoil; //angular window for btb recoil analysis
180  Int_t fSemigoodCorrect; //if==1 we run over semigood runs
181  Float_t fHolePos; //position in radians of the bad TPC sector
182  Float_t fHoleWidth; //width of the hole in radians
183  TRandom3 *fRandom;
184  Float_t fqhat; //qhat
185  Float_t fxlength; //medium length
186  Bool_t fCentSelectOn; // switch on/off centrality selection
187  Float_t fCentMin; // min centrality value
188  Float_t fCentMax; // max centrality value
189  Bool_t fOneConstSelectOn; // switch on/off one constituent selection
196 
202  TH1F *fPtJet;//
204  TH1F *fhPt;//
205  TH1F *fhPhi;//
206  THnSparse *fHLundIterative;//
208  THnSparse *fHLundIterativeInject;//
210 
212  TF1 *fTf1Omega;
213  TF1 *fTf1Kt;
214 
216  TF1 *fTf1SoftKt;
217  private:
220 
221  ClassDef(AliAnalysisTaskEmcalJetShapesMC, 2);
222 };
223 #endif
Float_t GetSigma2(AliEmcalJet *jet, Int_t jetContNb=0)
Float_t GetJetMass(AliEmcalJet *jet, Int_t jetContNb=0)
double Double_t
Definition: External.C:58
Definition: External.C:260
Definition: External.C:236
Definition: External.C:244
Double_t FjNSubJettiness(AliEmcalJet *Jet, Int_t JetContNb, Int_t N, Int_t Algorithm, Double_t Beta, Int_t Option, Double_t Beta_SD=0.0, Double_t ZCut=0.1, Int_t SoftDropOn=0)
void RecursiveParents(AliEmcalJet *fJet, AliJetContainer *fJetCont, Int_t ReclusterAlgo, Float_t PartonFlavor)
TCanvas * c
Definition: TestFitELoss.C:172
Float_t CoreFrac(AliEmcalJet *jet, Int_t jetContNb=0)
Float_t GetJetCircularity(AliEmcalJet *jet, Int_t jetContNb=0)
TF1 * fTf1SoftOmega
to generate kT according to BDMS tail
Float_t GetJetpTD(AliEmcalJet *jet, Int_t jetContNb=0)
Float_t GetJetCoreFrac(AliEmcalJet *jet, Int_t jetContNb=0)
static AliAnalysisTaskEmcalJetShapesMC * AddTaskJetShapesMC(const char *njetsBase, const Double_t jetradius, const Double_t subjetradius, const char *ntracksPartLevel, const char *type, const char *CentEst, Int_t pSel, TString trigClass="", TString kEmcalTriggers="", TString tag="", const char *rhoName="", AliAnalysisTaskEmcalJetShapesMC::JetShapeType jetShapeType=AliAnalysisTaskEmcalJetShapesMC::kGenShapes, AliAnalysisTaskEmcalJetShapesMC::JetShapeSub jetShapeSub=AliAnalysisTaskEmcalJetShapesMC::kNoSub, AliAnalysisTaskEmcalJetShapesMC::JetSelectionType jetSelection=AliAnalysisTaskEmcalJetShapesMC::kInclusive, Float_t minpTHTrigger=0., Float_t maxpTHTrigger=0., AliAnalysisTaskEmcalJetShapesMC::DerivSubtrOrder derivSubtrOrder=AliAnalysisTaskEmcalJetShapesMC::kSecondOrder)
int Int_t
Definition: External.C:63
Float_t GetJetNumberOfConstituents(AliEmcalJet *jet, Int_t jetContNb=0)
float Float_t
Definition: External.C:68
Float_t fqhat
Random number generator.
Task to store and correlate the MC shapes.
TF1 * fTf1SoftKt
to generate omega for soft background
TTree * fTreeObservableTagging
! Tree with tagging variables subtracted MC or true MC or raw
Double_t RelativePhi(Double_t mphi, Double_t vphi)
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.
Double_t GetSubjetFraction(AliEmcalJet *Jet, Int_t JetContNb, Double_t JetRadius, AliEmcalJetFinder *Reclusterer)
Definition: Option.C:68
AliEmcalJetFinder * Recluster(AliEmcalJet *Jet, Int_t JetContNb, Double_t JetRadius, Double_t SubJetRadius, Double_t SubJetMinPt, Int_t Algorithm, const char *Name)
Float_t PTD(AliEmcalJet *jet, Int_t jetContNb=0)
TF1 * fTf1Kt
to generate omega according to BDMPS tail
Float_t GetJetAngularity(AliEmcalJet *jet, Int_t jetContNb=0)
Int_t SelectTrigger(Float_t minpT, Float_t maxpT)
Float_t Angularity(AliEmcalJet *jet, Int_t jetContNb=0)
Bool_t FillHistograms()
Function filling histograms.
Bool_t RetrieveEventObjects()
Retrieve common objects from event.
AliAnalysisTaskEmcalJetShapesMC & operator=(const AliAnalysisTaskEmcalJetShapesMC &)
Double_t SubJetOrdering(AliEmcalJet *Jet, AliEmcalJetFinder *Reclusterer, Int_t N, Int_t Type, Bool_t Index)
void AddMedScat(Bool_t b, Float_t f, Int_t n)
void SetPtTriggerSelections(Float_t minpT, Float_t maxpT)
void NTValues(AliEmcalJet *jet, Int_t jetContNb, Float_t *nTFractions)
Definition: External.C:220
Float_t GetJetLeSub(AliEmcalJet *jet, Int_t jetContNb=0)
Base task in the EMCAL jet framework.
Represent a jet reconstructed using the EMCal jet framework.
Definition: AliEmcalJet.h:51
Float_t Circularity(AliEmcalJet *jet, Int_t jetContNb=0)
void SoftDrop(AliEmcalJet *fJet, AliJetContainer *fJetCont, Double_t zcut, Double_t beta, Int_t ReclusterAlgo)
const char Option_t
Definition: External.C:48
Float_t Sigma2(AliEmcalJet *jet, Int_t jetContNb=0)
bool Bool_t
Definition: External.C:53
Float_t LeSub(AliEmcalJet *jet, Int_t jetContNb=0)
Container for jet within the EMCAL jet framework.
Definition: External.C:196