AliPhysics  59e0e03 (59e0e03)
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 class AliFJWrapper;
16 
17 
19 #include "AliFJWrapper.h"
20 #include "AliClusterContainer.h"
21 #include "TF1.h"
22 const Int_t nVar = 28;
24  public:
25 
26  enum JetShapeType {
27  kTrue = 0, // generated jets only
28  kTrueDet =1, // detector and generated jets
29  kData = 2, // raw data
30  kDetEmbPart = 3, //detector embedded jets
31  kSim = 4,
32  kGenOnTheFly=5 //fast truth level MC
33  };
34  enum JetShapeSub {
35  kNoSub = 0,
36  kConstSub = 1,
37  kDerivSub = 2
38  };
41  kRecoil = 1
42  };
46  };
47 
49  AliAnalysisTaskSubJetFraction(const char *name);
51 
53  void Terminate(Option_t *option);
54 
55  //Setters
62  void SetJetRadius(Double_t JetRadius) {fJetRadius=JetRadius;}
63  void SetRMatching(Float_t f) { fRMatching = f ;}
72  void SetHolePos(Float_t poshole) { fHolePos = poshole;}
73  void SetHoleWidth(Float_t holewidth) { fHoleWidth = holewidth;}
74  void SetSubJetAlgorithm(Int_t SubJetAlgorithm) {fSubJetAlgorithm=SubJetAlgorithm;}
75  void SetSubJetRadius(Float_t SubJetRadius) {fSubJetRadius=SubJetRadius;}
76  void SetSubJetMinPt(Float_t SubJetMinPt) {fSubJetMinPt=SubJetMinPt;}
77  void SetRMatched(Double_t RMatched) {fRMatched=RMatched;}
78  void SetSharedFractionPtMin(Double_t SharedFractionPtMin) {fSharedFractionPtMin=SharedFractionPtMin;}
80  void SetFullTree(Bool_t FullTree) {fFullTree = FullTree;}
81  void SetBetaSD(Double_t BetaSD) {fBeta_SD = BetaSD;}
82  void SetZCut(Double_t ZCut) {fZCut = ZCut;}
83  void SetReclusteringAlgorithm(Int_t ReclusteringAlgorithm) {fReclusteringAlgorithm = ReclusteringAlgorithm;}
84  void SetSoftDropOn(Int_t SoftDropOn) {fSoftDropOn = SoftDropOn;}
86  void SetRandomisationEqualPt(Bool_t RandmosationEqualPt) {fRandomisationEqualPt = RandmosationEqualPt;}
87 
88  void SetNsubUnNormMeasure( Bool_t NsubMeasure) {fNsubMeasure= NsubMeasure;}
89 
90  protected:
92  Bool_t Run();
94 
98  Double_t Angularity(AliEmcalJet *Jet, Int_t JetContNb);
99  Double_t PTD(AliEmcalJet *Jet, Int_t JetContNb);
100  AliEmcalJetFinder *Recluster(AliEmcalJet *Jet, Int_t JetContNb, Double_t SubJetRadius, Double_t SubJetMinPt, Int_t Algorithm, const char* Name);
102  Double_t SubJetFraction(AliEmcalJet *Jet, AliEmcalJetFinder *Reclusterer, Int_t N, Int_t Type, Bool_t Add, Bool_t Loss);
103  Double_t NSubJettiness(AliEmcalJet *Jet, Int_t JetContNb, Double_t JetRadius, AliEmcalJetFinder *Reclusterer, Int_t N, Int_t A, Int_t B);
104  Double_t FjNSubJettiness(AliEmcalJet *Jet, Int_t JetContNb, Int_t N, Int_t Algorithm, Double_t Beta, Int_t Option=0, Double_t Beta_SD=0, Double_t ZCut=0.1);
105  Double_t FjNSubJettinessFastJet(std::pair<fastjet::PseudoJet,fastjet::ClusterSequence *> Jet_ClusterSequence, Int_t JetContNb,Int_t N, Int_t Algorithm, Double_t Beta, Int_t Option=0, Double_t Beta_SD=0, Double_t ZCut=0.1);
106  std::pair<fastjet::PseudoJet,fastjet::ClusterSequence *> ModifyJet(AliEmcalJet* Jet, Int_t JetContNb, TString Modification);
107  std::vector<fastjet::PseudoJet> RandomiseTracks(AliEmcalJet *Jet,std::vector<fastjet::PseudoJet> fInputVectors);
108  std::vector<fastjet::PseudoJet> AddExtraProng(std::vector<fastjet::PseudoJet> fInputVectors, Double_t Distance, Double_t PtFrac);
109  std::vector<fastjet::PseudoJet> AddkTTracks(AliEmcalJet *Jet,std::vector<fastjet::PseudoJet> fInputVectors, Double_t QHat,Double_t Xlength, Int_t NAdditionalTracks);
110 
111  Int_t fContainer; // jets to be analyzed 0 for Base, 1 for subtracted.
112  Float_t fMinFractionShared; // only fill histos for jets if shared fraction larger than X
113  JetShapeType fJetShapeType; // jet type to be used
114  JetShapeSub fJetShapeSub; // jet subtraction to be used
115  JetSelectionType fJetSelection; // Jet selection: inclusive/recoil jet
116  Double_t fShapesVar[nVar]; // jet shapes used for the tagging
119 
120  Float_t fPtMinTriggerHadron; //min - max pT for trigger particle in case of recoil jet
122  Float_t fRecoilAngularWindow; //angular window for btb recoil analysis
123  Int_t fSemigoodCorrect; //if==1 we run over semigood runs
124  Float_t fHolePos; //position in radians of the bad TPC sector
125  Float_t fHoleWidth; //width of the hole in radians
126  TRandom3 *fRandom;
127  Bool_t fCentSelectOn; // switch on/off centrality selection
128  Float_t fCentMin; // min centrality value
129  Float_t fCentMax; // max centrality value
145 
148  TH1F *fhJetPt;
149  TH1F *fhJetPt_1;
150  TH1F *fhJetPt_2;
151  TH1F *fhJetPhi;
152  TH1F *fhJetPhi_1;
153  TH1F *fhJetPhi_2;
154  TH1F *fhJetEta;
155  TH1F *fhJetEta_1;
156  TH1F *fhJetEta_2;
157  TH1F *fhJetMass;
158  TH1F *fhJetMass_1;
159  TH1F *fhJetMass_2;
160  TH1F *fhJetRadius;
169  TH1F *fhSubJetPt;
189  TH1F *fhTrackPhi;
260  TTree *fTreeResponseMatrixAxis; //Tree with tagging variables subtracted MC or true MC or raw
261 
262  private:
265 
266  ClassDef(AliAnalysisTaskSubJetFraction, 6)
267 };
268 #endif
269 
void SetNsubUnNormMeasure(Bool_t NsubMeasure)
Bool_t fCentSelectOn
Random number generator.
double Double_t
Definition: External.C:58
Definition: External.C:260
Definition: External.C:236
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.
Definition: External.C:244
AliAnalysisTaskSubJetFraction & operator=(const AliAnalysisTaskSubJetFraction &)
void SetPtTriggerSelections(Float_t PtMin, Float_t PtMax)
std::pair< fastjet::PseudoJet, fastjet::ClusterSequence * > ModifyJet(AliEmcalJet *Jet, Int_t JetContNb, TString Modification)
Double_t PTD(AliEmcalJet *Jet, Int_t JetContNb)
Bool_t RetrieveEventObjects()
Retrieve common objects from event.
std::vector< fastjet::PseudoJet > AddExtraProng(std::vector< fastjet::PseudoJet > fInputVectors, Double_t Distance, Double_t PtFrac)
TCanvas * c
Definition: TestFitELoss.C:172
Double_t NSubJettiness(AliEmcalJet *Jet, Int_t JetContNb, Double_t JetRadius, AliEmcalJetFinder *Reclusterer, Int_t N, Int_t A, Int_t B)
void SetReclusteringAlgorithm(Int_t ReclusteringAlgorithm)
Double_t RelativePhi(Double_t Phi1, Double_t Phi2)
Bool_t FillHistograms()
Function filling histograms.
void SetRandomisationEqualPt(Bool_t RandmosationEqualPt)
int Int_t
Definition: External.C:63
float Float_t
Definition: External.C:68
Int_t SelectTriggerHadron(Float_t PtMin, Float_t PtMax)
Definition: External.C:228
Definition: External.C:212
void SetSubJetAlgorithm(Int_t SubJetAlgorithm)
Definition: Option.C:68
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 FjNSubJettinessFastJet(std::pair< fastjet::PseudoJet, fastjet::ClusterSequence * > Jet_ClusterSequence, Int_t JetContNb, Int_t N, Int_t Algorithm, Double_t Beta, Int_t Option=0, Double_t Beta_SD=0, Double_t ZCut=0.1)
Double_t FjNSubJettiness(AliEmcalJet *Jet, Int_t JetContNb, Int_t N, Int_t Algorithm, Double_t Beta, Int_t Option=0, Double_t Beta_SD=0, Double_t ZCut=0.1)
std::vector< fastjet::PseudoJet > RandomiseTracks(AliEmcalJet *Jet, std::vector< fastjet::PseudoJet > fInputVectors)
Definition: External.C:220
const Int_t nVar
Base task in the EMCAL jet framework.
Represent a jet reconstructed using the EMCal jet framework.
Definition: AliEmcalJet.h:51
Double_t Angularity(AliEmcalJet *Jet, Int_t JetContNb)
const char Option_t
Definition: External.C:48
Double_t RelativePhiEventPlane(Double_t EventPlane, Double_t Phi)
std::vector< fastjet::PseudoJet > AddkTTracks(AliEmcalJet *Jet, std::vector< fastjet::PseudoJet > fInputVectors, Double_t QHat, Double_t Xlength, Int_t NAdditionalTracks)
bool Bool_t
Definition: External.C:53
Double_t SubJetOrdering(AliEmcalJet *Jet, AliEmcalJetFinder *Reclusterer, Int_t N, Int_t Type, Bool_t Index)
Container for jet within the EMCAL jet framework.
Definition: External.C:196