AliPhysics  4646b6b (4646b6b)
 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 class AliFJWrapper;
16 
18 #include "AliFJWrapper.h"
19 #include "AliClusterContainer.h"
20 const Int_t nVar = 28;
22  public:
23 
24  enum JetShapeType {
25  kTrue = 0, // generated jets only
26  kTrueDet =1, // detector and generated jets
27  kData = 2, // raw data
28  kDetEmbPart = 3, //detector embedded jets
29  kSim = 4,
30  kGenOnTheFly=5 //fast truth level MC
31  };
32  enum JetShapeSub {
33  kNoSub = 0,
34  kConstSub = 1,
35  kDerivSub = 2
36  };
39  kRecoil = 1
40  };
44  };
45 
47  AliAnalysisTaskSubJetFraction(const char *name);
49 
51  void Terminate(Option_t *option);
52 
53  //Setters
60  void SetJetRadius(Double_t JetRadius) {fJetRadius=JetRadius;}
61  void SetRMatching(Float_t f) { fRMatching = f ;}
70  void SetHolePos(Float_t poshole) { fHolePos = poshole;}
71  void SetHoleWidth(Float_t holewidth) { fHoleWidth = holewidth;}
72  void SetSubJetAlgorithm(Int_t SubJetAlgorithm) {fSubJetAlgorithm=SubJetAlgorithm;}
73  void SetSubJetRadius(Float_t SubJetRadius) {fSubJetRadius=SubJetRadius;}
74  void SetSubJetMinPt(Float_t SubJetMinPt) {fSubJetMinPt=SubJetMinPt;}
75  void SetRMatched(Double_t RMatched) {fRMatched=RMatched;}
76  void SetSharedFractionPtMin(Double_t SharedFractionPtMin) {fSharedFractionPtMin=SharedFractionPtMin;}
78  void SetFullTree(Bool_t FullTree) {fFullTree = FullTree;}
79  void SetBetaSD(Double_t BetaSD) {fBeta_SD = BetaSD;}
80  void SetZCut(Double_t ZCut) {fZCut = ZCut;}
81  void SetReclusteringAlgorithm(Int_t ReclusteringAlgorithm) {fReclusteringAlgorithm = ReclusteringAlgorithm;}
82  void SetSoftDropOn(Int_t SoftDropOn) {fSoftDropOn = SoftDropOn;}
84 
85  void SetNsubUnNormMeasure( Bool_t NsubMeasure) {fNsubMeasure= NsubMeasure;}
86 
87  protected:
89  Bool_t Run();
91 
95  Double_t Angularity(AliEmcalJet *Jet, Int_t JetContNb);
96  Double_t PTD(AliEmcalJet *Jet, Int_t JetContNb);
97  AliEmcalJetFinder *Recluster(AliEmcalJet *Jet, Int_t JetContNb, Double_t SubJetRadius, Double_t SubJetMinPt, Int_t Algorithm, const char* Name);
100  Double_t NSubJettiness(AliEmcalJet *Jet, Int_t JetContNb, Double_t JetRadius, AliEmcalJetFinder *Reclusterer, Int_t N, Int_t A, Int_t B);
101  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);
102  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);
103  std::pair<fastjet::PseudoJet,fastjet::ClusterSequence *> ModifyJet(AliEmcalJet* Jet, Int_t JetContNb, TString Modification);
104  std::vector<fastjet::PseudoJet> RandomiseTracks(AliEmcalJet *Jet,std::vector<fastjet::PseudoJet> fInputVectors);
105  std::vector<fastjet::PseudoJet> AddExtraProng(std::vector<fastjet::PseudoJet> fInputVectors, Double_t Distance, Double_t PtFrac);
106 
107  Int_t fContainer; // jets to be analyzed 0 for Base, 1 for subtracted.
108  Float_t fMinFractionShared; // only fill histos for jets if shared fraction larger than X
109  JetShapeType fJetShapeType; // jet type to be used
110  JetShapeSub fJetShapeSub; // jet subtraction to be used
111  JetSelectionType fJetSelection; // Jet selection: inclusive/recoil jet
112  Double_t fShapesVar[nVar]; // jet shapes used for the tagging
115 
116  Float_t fPtMinTriggerHadron; //min - max pT for trigger particle in case of recoil jet
118  Float_t fRecoilAngularWindow; //angular window for btb recoil analysis
119  Int_t fSemigoodCorrect; //if==1 we run over semigood runs
120  Float_t fHolePos; //position in radians of the bad TPC sector
121  Float_t fHoleWidth; //width of the hole in radians
122  TRandom3 *fRandom;
123  Bool_t fCentSelectOn; // switch on/off centrality selection
124  Float_t fCentMin; // min centrality value
125  Float_t fCentMax; // max centrality value
140 
142 
144  TH1F *fhJetPt;
145  TH1F *fhJetPt_1;
146  TH1F *fhJetPt_2;
147  TH1F *fhJetPhi;
148  TH1F *fhJetPhi_1;
149  TH1F *fhJetPhi_2;
150  TH1F *fhJetEta;
151  TH1F *fhJetEta_1;
152  TH1F *fhJetEta_2;
153  TH1F *fhJetMass;
154  TH1F *fhJetMass_1;
155  TH1F *fhJetMass_2;
156  TH1F *fhJetRadius;
165  TH1F *fhSubJetPt;
254  TTree *fTreeResponseMatrixAxis; //Tree with tagging variables subtracted MC or true MC or raw
255 
256  private:
259 
260  ClassDef(AliAnalysisTaskSubJetFraction, 6)
261 };
262 #endif
263 
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.
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)
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