#include <TH1F.h>
#include <TH2F.h>
+#include <TH3F.h>
#include "AliAnalysisManager.h"
#include "AliAnalysisTask.h"
fClusterArray(0x0),
fOutputList(0x0),
fHEventStat(0),
- fHTrkEffParGenPt(0),
- fHTrkEffDetGenPt(0),
- fHTrkEffDetRecPt(0),
- fHTrkEffDetRecFakePt(0),
+ fHTrkEffParGenPtEtaPhi(0),
+ fHTrkEffDetGenPtEtaPhi(0),
+ fHTrkEffDetRecPtEtaPhi(0),
+ fHTrkEffDetRecFakePtEtaPhi(0),
fHScaleFactor(0),
fHScaleFactor100HC(0),
fHEOverPVsPt(0x0),
fClusterArray(0x0),
fOutputList(0x0),
fHEventStat(0),
- fHTrkEffParGenPt(0),
- fHTrkEffDetGenPt(0),
- fHTrkEffDetRecPt(0),
- fHTrkEffDetRecFakePt(0),
+ fHTrkEffParGenPtEtaPhi(0),
+ fHTrkEffDetGenPtEtaPhi(0),
+ fHTrkEffDetRecPtEtaPhi(0),
+ fHTrkEffDetRecFakePtEtaPhi(0),
fHScaleFactor(0),
fHScaleFactor100HC(0),
fHEOverPVsPt(0x0),
fHEventStat->GetXaxis()->SetBinLabel(8,"cls/>3-truth");
fOutputList->Add(fHEventStat);
- fHTrkEffParGenPt = new TH1F("fHTrkEffParGenPt", "Particle level truth p_{T} distribution of generated primary charged pions;p_{T}^{gen} (GeV/c)",500,0.0,50.0);
- fOutputList->Add(fHTrkEffParGenPt);
-
- fHTrkEffDetGenPt = new TH1F("fHTrkEffDetGenPt", "Detector level truth p_{T} distribution of primary charged pions;p_{T}^{gen} (GeV/c)",500,0.0,50.0);
- fOutputList->Add(fHTrkEffDetGenPt);
-
- fHTrkEffDetRecPt = new TH1F("fHTrkEffDetRecPt", "Reconstructed track p_{T} distribution of primary charged pions;p_{T}^{rec} (GeV/c)",500,0.0,50.0);
- fOutputList->Add(fHTrkEffDetRecPt);
-
- fHTrkEffDetRecFakePt = new TH1F("fHTrkEffDetRecFakePt", "Reconstructed fake track p_{T} distribution of pions;p_{T}^{rec} (GeV/c)",500,0.0,50.0);
- fOutputList->Add(fHTrkEffDetRecFakePt);
+ fHTrkEffParGenPtEtaPhi = new TH3F("fHTrkEffParGenPtEtaPhi","Particle level truth Phi-Eta-p_{T} distribution of primary charged pions", 500, 0, 50, 60, -1.5, 1.5, 128, 0, 6.4);
+ fHTrkEffParGenPtEtaPhi->GetXaxis()->SetTitle("p_{T}^{gen} (GeV/c)");
+ fHTrkEffParGenPtEtaPhi->GetYaxis()->SetTitle("#eta");
+ fHTrkEffParGenPtEtaPhi->GetZaxis()->SetTitle("#phi");
+ fOutputList->Add(fHTrkEffParGenPtEtaPhi);
+
+ fHTrkEffDetGenPtEtaPhi = new TH3F("fHTrkEffDetGenPtEtaPhi","Detector level truth Phi-Eta-p_{T} distribution of primary charged pions", 500, 0, 50, 60, -1.5, 1.5, 128, 0, 6.4);
+ fHTrkEffDetGenPtEtaPhi->GetXaxis()->SetTitle("p_{T}^{gen} (GeV/c)");
+ fHTrkEffDetGenPtEtaPhi->GetYaxis()->SetTitle("#eta");
+ fHTrkEffDetGenPtEtaPhi->GetZaxis()->SetTitle("#phi");
+ fOutputList->Add(fHTrkEffDetGenPtEtaPhi);
+
+ fHTrkEffDetRecPtEtaPhi = new TH3F("fHTrkEffDetRecPtEtaPhi","Reconstructed track Phi-Eta-p_{T} distribution of primary charged pions", 500, 0, 50, 60, -1.5, 1.5, 128, 0, 6.4);
+ fHTrkEffDetRecPtEtaPhi->GetXaxis()->SetTitle("p_{T}^{gen} (GeV/c)");
+ fHTrkEffDetRecPtEtaPhi->GetYaxis()->SetTitle("#eta");
+ fHTrkEffDetRecPtEtaPhi->GetZaxis()->SetTitle("#phi");
+ fOutputList->Add(fHTrkEffDetRecPtEtaPhi);
+
+ fHTrkEffDetRecFakePtEtaPhi = new TH3F("fHTrkEffDetRecFakePtEtaPhi","Reconstructed fake track Phi-Eta-p_{T} distribution of pions", 500, 0, 50, 60, -1.5, 1.5, 128, 0, 6.4);
+ fHTrkEffDetRecFakePtEtaPhi->GetXaxis()->SetTitle("p_{T}^{gen} (GeV/c)");
+ fHTrkEffDetRecFakePtEtaPhi->GetYaxis()->SetTitle("#eta");
+ fHTrkEffDetRecFakePtEtaPhi->GetZaxis()->SetTitle("#phi");
+ fOutputList->Add(fHTrkEffDetRecFakePtEtaPhi);
fHScaleFactor = new TH1F("fHScaleFactor", "Scale factor distribution without hadronic correction;Scale factor",100,0,10);
fOutputList->Add(fHScaleFactor);
}
// fake and secondary tracks
- if(newTrack->GetLabel()<0 && newTrack->GetPID()==2) fHTrkEffDetRecFakePt->Fill(newTrack->Pt());
+ if(newTrack->GetLabel()<0 && newTrack->GetPID()==2) fHTrkEffDetRecFakePtEtaPhi->Fill(newTrack->Pt(), newTrack->Eta(), newTrack->Phi());
// Track Indices
fTrackIndices->AddAt(itr,nTracks);
//tracking effciency
if(TMath::Abs(vParticle->Eta())<0.9)
{
- if(TMath::Abs(pdgCode==211)) fHTrkEffParGenPt->Fill(vParticle->Pt());
+ if(TMath::Abs(pdgCode==211)) fHTrkEffParGenPtEtaPhi->Fill(vParticle->Pt(), vParticle->Eta(), vParticle->Phi());
for(Int_t j=0; j<fTrackIndices->GetSize(); j++)
{
AliESDtrack *esdtrack = fESD->GetTrack(fTrackIndices->At(j));
{
if(TMath::Abs(pdgCode==211))
{
- fHTrkEffDetGenPt->Fill(vParticle->Pt());
- fHTrkEffDetRecPt->Fill(esdtrack->Pt());
+ fHTrkEffDetGenPtEtaPhi->Fill(vParticle->Pt(), vParticle->Eta(), vParticle->Phi());
+ fHTrkEffDetRecPtEtaPhi->Fill(esdtrack->Pt(), esdtrack->Eta(), esdtrack->Phi());
}
//cluster E vs. truth photon energy
class TList;
class TH1F;
class TH2F;
+class TH3F;
class TArrayI;
class AliESDEvent;
class AliMCEvent;
TList *fOutputList; //!output list
TH1F *fHEventStat; //!statistics histo
- TH1F *fHTrkEffParGenPt; //!mc truth pt spectrum
- TH1F *fHTrkEffDetGenPt; //!mc detector level pt spectrum
- TH1F *fHTrkEffDetRecPt; //!reconstructed detector level pt spectrum
- TH1F *fHTrkEffDetRecFakePt; //!fake and secondary tracks pt spectrum
+ TH3F *fHTrkEffParGenPtEtaPhi; //!mc truth pt spectrum
+ TH3F *fHTrkEffDetGenPtEtaPhi; //!mc detector level pt spectrum
+ TH3F *fHTrkEffDetRecPtEtaPhi; //!reconstructed detector level pt spectrum
+ TH3F *fHTrkEffDetRecFakePtEtaPhi;//!fake and secondary tracks pt spectrum
TH1F *fHScaleFactor; //!scale factor spectrum
TH1F *fHScaleFactor100HC; //!scale factor with 100% HC spectrum
TH2F *fHEOverPVsPt; //!(cluster energy over reconstructed track p) vs. track pt
AliAnalysisTaskSOH(const AliAnalysisTaskSOH&); // not implemented
AliAnalysisTaskSOH& operator=(const AliAnalysisTaskSOH&); // not implemented
- ClassDef(AliAnalysisTaskSOH, 5); // Analysis task Saehanseul Oh
+ ClassDef(AliAnalysisTaskSOH, 6); // Analysis task Saehanseul Oh
};
#endif
void SetOffTrigger(UInt_t t) { fOffTrigger = t; }
void SetPtCut(Double_t cut) { SetClusPtCut(cut); SetTrackPtCut(cut); }
void SetTrackPtCut(Double_t cut) { fTrackPtCut = cut; }
+ void SetTrackEtaLimits(Double_t min, Double_t max) { fMaxTrackEta = max ; fMinTrackEta = min ; }
+ void SetTrackPhiLimits(Double_t min, Double_t max) { fMaxTrackPhi = max ; fMinTrackPhi = min ; }
void SetTracksName(const char *n) { fTracksName = n; }
void SetTrigClass(const char *n) { fTrigClass = n; }
void SetVzRange(Double_t min, Double_t max) { fMinVz = min; fMaxVz = max; }
Double_t fMaxBinPt; // max pt in histograms
Double_t fClusPtCut; // cut on cluster pt
Double_t fTrackPtCut; // cut on track pt
+ Double_t fMinTrackEta; // cut on track eta
+ Double_t fMaxTrackEta; // cut on track eta
+ Double_t fMinTrackPhi; // cut on track phi
+ Double_t fMaxTrackPhi; // cut on track phi
Double_t fClusTimeCutLow; // low time cut for clusters
Double_t fClusTimeCutUp; // up time cut for clusters
TClonesArray *fTracks; //!tracks
AliAnalysisTaskEmcal(const AliAnalysisTaskEmcal&); // not implemented
AliAnalysisTaskEmcal &operator=(const AliAnalysisTaskEmcal&); // not implemented
- ClassDef(AliAnalysisTaskEmcal, 5) // EMCAL base analysis task
+ ClassDef(AliAnalysisTaskEmcal, 6) // EMCAL base analysis task
};
#endif
void UserCreateOutputObjects();
void UserExec(Option_t *option);
- void SetAODfilterBits(Int_t b0 = 0, Int_t b1 = 0) { fAODfilterBits[0] = b0; fAODfilterBits[1] = b1; }
- void SetESDtrackCuts(AliESDtrackCuts *cuts) { fESDtrackCuts = cuts; }
- void SetTracksInName(const char *name) { fTracksInName = name; }
- void SetTracksOutName(const char *name) { fTracksOutName = name; }
- void SetMaxTrackPt(Float_t pt) { fMaxTrackPt = pt ; }
- void SetTrackEfficiency(Double_t eff = 0.95) { fTrackEfficiency = eff ; }
+ void SetAODfilterBits(Int_t b0 = 0, Int_t b1 = 0) { fAODfilterBits[0] = b0 ; fAODfilterBits[1] = b1 ; }
+ void SetESDtrackCuts(AliESDtrackCuts *cuts) { fESDtrackCuts = cuts; }
+ void SetTracksInName(const char *name) { fTracksInName = name; }
+ void SetTracksOutName(const char *name) { fTracksOutName = name; }
+ void SetTrackPtLimits(Double_t min, Double_t max) { fMaxTrackPt = max ; fMinTrackPt = min ; }
+ void SetTrackEtaLimits(Double_t min, Double_t max) { fMaxTrackEta = max ; fMinTrackEta = min ; }
+ void SetTrackPhiLimits(Double_t min, Double_t max) { fMaxTrackPhi = max ; fMinTrackPhi = min ; }
+ void SetTrackEfficiency(Double_t eff = 0.95) { fTrackEfficiency = eff ; }
protected:
Int_t fAODfilterBits[2]; // AOD track filter bit map
AliESDtrackCuts *fESDtrackCuts; // ESD track cuts
TString fTracksOutName; // name of output track array
TString fTracksInName; // name of input track array
- Float_t fMaxTrackPt; // max pt of tracks
+ Double_t fMinTrackPt; // mix pt of tracks
+ Double_t fMaxTrackPt; // max pt of tracks
+ Double_t fMinTrackEta; // cut on track eta
+ Double_t fMaxTrackEta; // cut on track eta
+ Double_t fMinTrackPhi; // cut on track phi
+ Double_t fMaxTrackPhi; // cut on track phi
Double_t fTrackEfficiency; // track efficiency
TClonesArray *fTracksIn; //!track array in
TClonesArray *fTracksOut; //!track array out
AliEmcalPicoTrackMaker(const AliEmcalPicoTrackMaker&); // not implemented
AliEmcalPicoTrackMaker &operator=(const AliEmcalPicoTrackMaker&); // not implemented
- ClassDef(AliEmcalPicoTrackMaker, 2); // Task to make PicoTracks in AOD/ESD events
+ ClassDef(AliEmcalPicoTrackMaker, 3); // Task to make PicoTracks in AOD/ESD events
};
#endif