AliPhysics  2ad5f07 (2ad5f07)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliAnalysisTaskSubJetFraction.h
Go to the documentation of this file.
1 #ifndef ALIANALYSISTASKSUBJETFRACTION_H
2 #define ALIANALYSISTASKSUBJETFRACTION_H
3 
4 class TH1;
5 class TH2;
6 class TH3;
7 class TH3F;
8 class TTree;
9 class THnSparse;
10 class TClonesArray;
11 class TArrayI;
12 class AliAnalysisManager;
13 class AliJetContainer;
14 class AliEmcalJetFinder;
15 
17 
18 
19 
21  public:
22 
23  enum JetShapeType {
24  kTrue = 0, // generated jets only
25  kTrueDet =1, // detector and generated jets
26  kData = 2, // raw data
27  kDetEmbPart = 3 //detector embedded jets
28  };
29  enum JetShapeSub {
30  kNoSub = 0,
31  kConstSub = 1,
32  kDerivSub = 2
33  };
36  kRecoil = 1
37  };
38 
40  AliAnalysisTaskSubJetFraction(const char *name);
42 
44  void Terminate(Option_t *option);
45 
46  //Setters
47  void SetJetContainer(Int_t c) { fContainer = c ; }
48  void SetMinFractionShared(Double_t f) { fMinFractionShared = f ; }
52  void SetJetPtThreshold(Float_t f) { fPtThreshold = f ; }
53  void SetJetRadius(Double_t JetRadius) {fJetRadius=JetRadius;}
54  void SetRMatching(Float_t f) { fRMatching = f ;}
55  void SetPtTriggerSelections(Float_t minpT, Float_t maxpT) { fminpTTrig = minpT; fmaxpTTrig = maxpT; }
59  void SetCentralitySelectionOn(Bool_t t) { fCentSelectOn = t;}
60  void SetMinCentrality(Float_t t) { fCentMin = t ; }
61  void SetMaxCentrality(Float_t t) { fCentMax = t ; }
62  void SetSemigoodCorrect(Int_t yesno) {fSemigoodCorrect=yesno;}
63  void SetHolePos(Float_t poshole) { fHolePos = poshole; }
64  void SetHoleWidth(Float_t holewidth) { fHoleWidth = holewidth; }
65  void SetSubJetAlgorithm(Int_t SubJetAlgorithm) {fSubJetAlgorithm=SubJetAlgorithm;}
66  void SetSubJetRadius(Float_t SubJetRadius) {fSubJetRadius=SubJetRadius;}
67  void SetSubJetMinPt(Float_t SubJetMinPt) {fSubJetMinPt=SubJetMinPt;}
68  void SetRMatched(Double_t RMatched) {fRMatched=RMatched;}
69  void SetSharedFractionPtMin(Double_t SharedFractionPtMin) {fSharedFractionPtMin=SharedFractionPtMin;}
70 
71  protected:
72  Bool_t RetrieveEventObjects();
73  Bool_t Run();
74  Bool_t FillHistograms();
75 
76  Int_t SelectTrigger(Float_t minpT, Float_t maxpT);
77  // Double_t RelativePhi(Double_t mphi, Double_t vphi);
78  Double_t RelativePhi(Double_t Phi1, Double_t Phi2);
79  Double_t Angularity(AliEmcalJet *Jet, Int_t JetContNb);
80  Double_t PTD(AliEmcalJet *Jet, Int_t JetContNb);
81  AliEmcalJetFinder *Recluster(AliEmcalJet *Jet, Int_t JetContNb, Double_t SubJetRadius, Double_t SubJetMinPt, Int_t Algorithm, const char* Name);
82  Double_t SubJetOrdering(AliEmcalJet *Jet, AliEmcalJetFinder *Reclusterer, Int_t N, Int_t Type, Bool_t Index);
83  Double_t SubJetFraction(AliEmcalJet *Jet, AliEmcalJetFinder *Reclusterer, Int_t N, Int_t Type, Bool_t Add, Bool_t Loss);
84  Double_t NSubJettiness(AliEmcalJet *Jet, Int_t JetContNb, Double_t JetRadius, AliEmcalJetFinder *Reclusterer, Int_t N, Int_t A, Int_t B);
85 
86  Int_t fContainer; // jets to be analyzed 0 for Base, 1 for subtracted.
87  Float_t fMinFractionShared; // only fill histos for jets if shared fraction larger than X
88  JetShapeType fJetShapeType; // jet type to be used
89  JetShapeSub fJetShapeSub; // jet subtraction to be used
90  JetSelectionType fJetSelection; // Jet selection: inclusive/recoil jet
91  Double_t *fShapesVar; // jet shapes used for the tagging
92  Float_t fPtThreshold;
93  Float_t fRMatching;
94 
95  Float_t fminpTTrig; //min - max pT for trigger particle in case of recoil jet
96  Float_t fmaxpTTrig;
97  Float_t fangWindowRecoil; //angular window for btb recoil analysis
98  Int_t fSemigoodCorrect; //if==1 we run over semigood runs
99  Float_t fHolePos; //position in radians of the bad TPC sector
100  Float_t fHoleWidth; //width of the hole in radians
101  Bool_t fCentSelectOn; // switch on/off centrality selection
102  Float_t fCentMin; // min centrality value
103  Float_t fCentMax; // max centrality value
105  Float_t fSubJetRadius;
106  Float_t fSubJetMinPt;
107  Double_t fJetRadius;
108  Double_t fRMatched;
111  Double_t Background_Fluc;
112 
113 
114  TH1F *fhJetPt;
115  TH1F *fhJetPt_1;
116  TH1F *fhJetPt_2;
117  TH1F *fhJetPhi;
118  TH1F *fhJetPhi_1;
119  TH1F *fhJetPhi_2;
120  TH1F *fhJetEta;
121  TH1F *fhJetEta_1;
122  TH1F *fhJetEta_2;
123  TH1F *fhJetMass;
124  TH1F *fhJetMass_1;
125  TH1F *fhJetMass_2;
126  TH1F *fhJetRadius;
135  TH1F *fhJetPTD;
136  TH1F *fhJetPTD_1;
137  TH1F *fhJetPTD_2;
147  TH1F *fhSubJetPt;
213  TH2F *fh2PtRatio;
214  TTree *fTreeResponseMatrixAxis; //Tree with tagging variables subtracted MC or true MC or raw
215 
216  private:
219 
220  ClassDef(AliAnalysisTaskSubJetFraction, 4)
221 };
222 #endif
223 
AliAnalysisTaskSubJetFraction & operator=(const AliAnalysisTaskSubJetFraction &)
Double_t PTD(AliEmcalJet *Jet, Int_t JetContNb)
void SetPtTriggerSelections(Float_t minpT, Float_t maxpT)
Double_t NSubJettiness(AliEmcalJet *Jet, Int_t JetContNb, Double_t JetRadius, AliEmcalJetFinder *Reclusterer, Int_t N, Int_t A, Int_t B)
Int_t SelectTrigger(Float_t minpT, Float_t maxpT)
Double_t RelativePhi(Double_t Phi1, Double_t Phi2)
void SetSubJetAlgorithm(Int_t SubJetAlgorithm)
Double_t SubJetFraction(AliEmcalJet *Jet, AliEmcalJetFinder *Reclusterer, Int_t N, Int_t Type, Bool_t Add, Bool_t Loss)
void SetSharedFractionPtMin(Double_t SharedFractionPtMin)
void SetSubJetRadius(Float_t SubJetRadius)
AliEmcalJetFinder * Recluster(AliEmcalJet *Jet, Int_t JetContNb, Double_t SubJetRadius, Double_t SubJetMinPt, Int_t Algorithm, const char *Name)
Double_t Angularity(AliEmcalJet *Jet, Int_t JetContNb)
Double_t SubJetOrdering(AliEmcalJet *Jet, AliEmcalJetFinder *Reclusterer, Int_t N, Int_t Type, Bool_t Index)