AliPhysics  master (3d17d9d)
AliAnalysisTaskEmcalHfeTagging.h
Go to the documentation of this file.
1 #ifndef AliAnalysisTaskEmcalHfeTagging_H
2 #define AliAnalysisTaskEmcalHfeTagging_H
3 
4 class TH1;
5 class TH2;
6 class TH3;
7 class TH3F;
8 class TTree;
9 class TList;
10 class THnSparse;
11 class TClonesArray;
12 class TArrayI;
13 class AliAODEvent;
14 class AliJetContainer;
16 class AliPIDResponse;
17 class AliHFEcontainer;
18 class AliHFEcuts;
19 class AliHFEpid;
20 class AliHFEpidQAmanager;
21 class AliCFManager;
22 class AliEventCuts;
23 class AliMultiEventInputHandler;
24 class AliAODMCHeader;
25 class AliAnalysisUtils;
26 
28 
29 
30 
32 public:
33 
34  enum JetShapeType {
35  kMCTrue = 0, // generated jets only
36  kTrueDet =1, // detector and generated jets
37  kData = 2, // raw data
38  kDetEmb = 3, //detector embedded jets
43  };
44  enum JetShapeSub {
45  kNoSub = 0,
46  kConstSub = 1,
48  };
51  kRecoil = 1
52  };
53 
57  };
58 
60  AliAnalysisTaskEmcalHfeTagging(const char *name);
62 
64  void Terminate(Option_t *option);
65 
66  //Setters
73  void SetRMatching(Float_t f) { fRMatching = f ;}
75  void SetPtTriggerSelections(Float_t minpT, Float_t maxpT) { fminpTTrig = minpT; fmaxpTTrig = maxpT; }
81  void SetMinCentrality(Float_t t) { fCentMin = t ; }
82  void SetMaxCentrality(Float_t t) { fCentMax = t ; }
84  void SetHolePos(Float_t poshole) { fHolePos = poshole; }
85  void SetHoleWidth(Float_t holewidth) { fHoleWidth = holewidth; }
88 
89 protected:
91  Bool_t Run();
93 
94  void GetNumberOfElectrons(AliEmcalJet *jet,Int_t jetContNb, Int_t nMother, Double_t listMother[], Int_t &nIncElec, Int_t &nPhotElec, Double_t &pElec, Double_t &ptElec, Bool_t &hasElec);
95  void GetNumberOfTrueElectrons(AliEmcalJet *jet,Int_t jetContNb, Int_t nMother, Double_t listMother[], Int_t &nTrueElec, Int_t &nTrueHFElec, Double_t &ptTrueHFElec);
96  void GetWeightAndDecay(AliAODMCParticle *particle, Int_t &decay, Double_t &weight);
97  Int_t GetNumberOfPairs(AliEmcalJet *jet,AliAODTrack *track,const AliVVertex *pVtx, Int_t nMother, Double_t listMother[]);
98  Bool_t IsFromHFdecay(AliAODMCParticle *particle);
99  Bool_t IsFromLMdecay(AliAODMCParticle *particle);
100  Bool_t IsPrimary(AliAODMCParticle *particle);
101  Bool_t HasMother(AliAODMCParticle *particle);
102  Double_t GetPi0weight(Double_t mcPi0pT) const;
103  Double_t GetEtaweight(Double_t mcEtapT) const;
104  Bool_t InclElecTrackCuts(const AliVVertex *pVtx,AliAODTrack *ietrack, Int_t nMother, Double_t listMother[]);
105  Bool_t PhotElecTrackCuts(const AliVVertex *pVtx,AliAODTrack *aetrack, Int_t nMother, Double_t listMother[]);
106  Float_t GetJetMass(AliEmcalJet *jet,Int_t jetContNb);
107  Float_t Angularity(AliEmcalJet *jet, Int_t jetContNb);
108  Float_t GetJetAngularity(AliEmcalJet *jet, Int_t jetContNb);
109  Float_t Coronna(AliEmcalJet *jet, Int_t jetContNb);
110  Float_t GetJetCoronna(AliEmcalJet *jet, Int_t jetContNb);
111  Float_t PTD(AliEmcalJet *jet, Int_t jetContNb);
112  Float_t GetJetpTD(AliEmcalJet *jet, Int_t jetContNb);
113  Float_t Circularity(AliEmcalJet *jet, Int_t jetContNb);
114  Float_t GetJetCircularity(AliEmcalJet *jet, Int_t jetContNb);
115  Float_t LeSub(AliEmcalJet *jet, Int_t jetContNb);
116  Float_t GetJetLeSub(AliEmcalJet *jet, Int_t jetContNb);
118  Float_t GetSigma2(AliEmcalJet *jet, Int_t jetContNb);
119  Float_t Sigma2(AliEmcalJet *jet, Int_t jetContNb);
120 
121  Int_t SelectTrigger(Float_t minpT, Float_t maxpT);
123 
125  AliVEvent *fVevent;
126  AliPIDResponse *fpidResponse;
127  TClonesArray *fTracksTender; //Tender for tracks
128  const AliVVertex *pVtx; // z vertex
129  const AliVVertex *spdVtx; //spd z vertez
130 
131  AliMCEvent *fMC;
132  AliStack *fStack;
133  AliAODMCParticle *fMCparticle;
134  TClonesArray *fMCarray;
135  AliAODMCHeader *fMCheader;
136 
137 
138  Int_t fContainer; // jets to be analyzed 0 for Base, 1 for subtracted.
139  Float_t fMinFractionShared; // only fill histos for jets if shared fraction larger than X
140  JetShapeType fJetShapeType; // jet type to be used
141  JetShapeSub fJetShapeSub; // jet subtraction to be used
142  JetSelectionType fJetSelection; // Jet selection: inclusive/recoil jet
143  Float_t fShapesVar[26]; // jet shapes used for the tagging
146  Int_t fSelectedShapes; //chose set of shapes
147  Float_t fminpTTrig; //min - max pT for trigger particle in case of recoil jet
149  Float_t fangWindowRecoil; //angular window for btb recoil analysis
150  Int_t fSemigoodCorrect; //if==1 we run over semigood runs
151  Float_t fHolePos; //position in radians of the bad TPC sector
152  Float_t fHoleWidth; //width of the hole in radians
153  Bool_t fCentSelectOn; // switch on/off centrality selection
154  Float_t fCentMin; // min centrality value
155  Float_t fCentMax; // max centrality value
156  Bool_t fOneConstSelectOn; // switch on/off one constituent selection
158  Int_t fMCweight; //0: no weight, 1: enhanced MC, 2: MB MC
159  Int_t fRunNumber; // run number
160 
161  Double_t fAssPtCut; // pt cut for associated electron
162  Int_t fITSncut; // ITC number of clusters for tagged electrons
163  Int_t fAssTPCnCut; // TPC number of clusters for associated electron
164  Int_t fTPCnCut; // TPC number of clusters for tagged electron
165  Bool_t fAssITSrefitCut; // ITS refit for associated electron
166  Bool_t fUseTender; // Use tender
167  Double_t fSigmaTOFcut; // sigma TOF cut |sigma_TOF|< cut
168  Double_t fSigmaTPCcut; // sigma TPC cut - cut < sigma_TPC < 3
169  Double_t fDcaXYcut; //DCA_xy cut
170  Double_t fDcaZcut; //DCA_xy cut
171  Double_t fIMcut; //invariant mass cut
172 
173  TH1F *fNeventV0;
174  TH1F *fNeventT0;
182  TH1F *fPtJet;
183  TH1F *fPtGenJet;
196  TH1F *fnTPCSigma[5][18];
208  TH1F *fPi0PtGen;
209  TH1F *fPi0PtEnh;
210  TH1F *fEtaPtGen;
211  TH1F *fEtaPtEnh;
212  TH1F *fGenHfePt;
213  TH1F *fGenPePt;
214  TH1F *fRecPEJetPt[5];
215  TH1F *fTotPEJetPt[5];
216  TH1F *fRecPEAng[5];
217  TH1F *fTotPEAng[5];
218  TH1F *fRecPEDisp[6];
219  TH1F *fTotPEDisp[6];
221  TH1F *fptJetIE; // pT of jets containing IE
222  TH1F *fptJetPE; // pT of jets containing PE
223  TH1F *fptJetHFE; // pT of jets containing HFE
224  TH1F *fptRecPE;
225  TH1F *fptTruePE;
230  TH1F *fptWrongPE;
231  TH1F *fPtTrack;
283  TTree *fTreeObservableTagging; // Tree with tagging variables subtracted MC or true MC or raw
284 
285 private:
288 
289  ClassDef(AliAnalysisTaskEmcalHfeTagging, 6)
290 };
291 #endif
292 
Float_t Angularity(AliEmcalJet *jet, Int_t jetContNb)
Float_t GetJetLeSub(AliEmcalJet *jet, Int_t jetContNb)
Bool_t IsFromHFdecay(AliAODMCParticle *particle)
void GetNumberOfTrueElectrons(AliEmcalJet *jet, Int_t jetContNb, Int_t nMother, Double_t listMother[], Int_t &nTrueElec, Int_t &nTrueHFElec, Double_t &ptTrueHFElec)
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.
Bool_t FillHistograms()
Function filling histograms.
Definition: External.C:244
Double_t GetPi0weight(Double_t mcPi0pT) const
Bool_t RetrieveEventObjects()
Retrieve common objects from event.
TCanvas * c
Definition: TestFitELoss.C:172
Bool_t PhotElecTrackCuts(const AliVVertex *pVtx, AliAODTrack *aetrack, Int_t nMother, Double_t listMother[])
Float_t Circularity(AliEmcalJet *jet, Int_t jetContNb)
Bool_t HasMother(AliAODMCParticle *particle)
Int_t GetNumberOfPairs(AliEmcalJet *jet, AliAODTrack *track, const AliVVertex *pVtx, Int_t nMother, Double_t listMother[])
Float_t GetJetCircularity(AliEmcalJet *jet, Int_t jetContNb)
Container for particles within the EMCAL framework.
Float_t Sigma2(AliEmcalJet *jet, Int_t jetContNb)
Float_t PTD(AliEmcalJet *jet, Int_t jetContNb)
Double_t GetEtaweight(Double_t mcEtapT) const
TClonesArray * fTracksTender
PID response.
int Int_t
Definition: External.C:63
float Float_t
Definition: External.C:68
Bool_t IsPrimary(AliAODMCParticle *particle)
Float_t GetJetMass(AliEmcalJet *jet, Int_t jetContNb)
Bool_t InclElecTrackCuts(const AliVVertex *pVtx, AliAODTrack *ietrack, Int_t nMother, Double_t listMother[])
Double_t RelativePhi(Double_t mphi, Double_t vphi)
AliAnalysisTaskEmcalHfeTagging & operator=(const AliAnalysisTaskEmcalHfeTagging &)
void GetNumberOfElectrons(AliEmcalJet *jet, Int_t jetContNb, Int_t nMother, Double_t listMother[], Int_t &nIncElec, Int_t &nPhotElec, Double_t &pElec, Double_t &ptElec, Bool_t &hasElec)
Float_t LeSub(AliEmcalJet *jet, Int_t jetContNb)
void GetWeightAndDecay(AliAODMCParticle *particle, Int_t &decay, Double_t &weight)
decay
Definition: HFPtSpectrum.C:42
Definition: External.C:220
Float_t GetJetCoronna(AliEmcalJet *jet, Int_t jetContNb)
Float_t GetJetAngularity(AliEmcalJet *jet, Int_t jetContNb)
Float_t GetSigma2(AliEmcalJet *jet, Int_t jetContNb)
Base task in the EMCAL jet framework.
Represent a jet reconstructed using the EMCal jet framework.
Definition: AliEmcalJet.h:51
const char Option_t
Definition: External.C:48
bool Bool_t
Definition: External.C:53
Bool_t IsFromLMdecay(AliAODMCParticle *particle)
Int_t SelectTrigger(Float_t minpT, Float_t maxpT)
void SetPtTriggerSelections(Float_t minpT, Float_t maxpT)
Float_t GetJetpTD(AliEmcalJet *jet, Int_t jetContNb)
Float_t Coronna(AliEmcalJet *jet, Int_t jetContNb)
Container for jet within the EMCAL jet framework.
Definition: External.C:196
Float_t GetJetNumberOfConstituents(AliEmcalJet *jet, Int_t jetContNb)