-#ifndef AliAnalysisTaskQASym_cxx
-#define AliAnalysisTaskQASym_cxx
+// Analysis task for basic QA exploiting symmetries
+//of global, TPC, and ITS tracks
+
+#ifndef ALIANALYSISTASKQASYM_H
+#define ALIANALYSISTASKQASYM_H
class TH1F;
class TH2F;
class TH3F;
class TList;
-class TNtuple;
class AliESDEvent;
class AliESDtrack;
#include "AliAnalysisTaskSE.h"
#include "TFile.h"
-#include "TNtuple.h"
class AliAnalysisTaskQASym : public AliAnalysisTaskSE {
public:
virtual void UserCreateOutputObjects();
virtual void UserExec(Option_t *option);
virtual void Terminate(Option_t *);
- virtual void SetTrackType(Int_t type) {fTrackType = type;}
-
+ virtual void SetTrackType(Int_t type) {fTrackType = type;} // set the track type: global, its and tpc
+ virtual void SetStandAloneTrack(Bool_t standAlone = kFALSE) {fStandAlone = standAlone;} //needed for ITS tracks
+
+ virtual void SetNChargedRange(Int_t low = 0, Int_t high=1.0*1e7)//set multiplicity region of analysis
+ // in order to compare different trigger settings
+ {
+ fLow = low;
+ fHigh = high;
+ }
virtual void SetCuts(AliESDtrackCuts* cuts)
{fCuts = cuts;}
private:
- Int_t fTrackType;
- Bool_t fFieldOn;
+ Int_t fTrackType; // track type
+ Bool_t fStandAlone; // needed for ITS tracks
+ Int_t fLow; // low Ncharges cut
+ Int_t fHigh; // high Ncharges cut
+ Bool_t fFieldOn; // field status
TList *fHists; // List of histos
//old
TH1F *fHistRECpt; // pt
TH1F *fEta; // eta
+
+ TH1F *fEtaWidth; // eta of tracks in Nch range (fLow <= Ncharged <= fHigh)
+ TH1F *fPhiWidth; // phi of tracks in Nch range (fLow <= Ncharged <= fHigh)
+ TH1F *fDcaWidth; // dca of tracks in Nch range (fLow <= Ncharged <= fHigh)
+ TH1F *fPtWidth; // pt of tracks in Nch range (fLow <= Ncharged <= fHigh)
+
TH2F *fEtaPhi; // eta-phi
TH1F *fEtaPt; // eta over pt
TH1F *fQPt; // charge over pt
TH1F *fDca; // distance of closest approach
+ TH1F *fDcaZ; // distance of closest approach
TH1F *fqRec; // reconstrcuted charge
- TH1F *fsigmaPt; // sigma_pT
+ TH1F *fSigmaPtHist; // sigma_pT
//positive und negative tracks
TH1F *fRecPtPos; // pt of pos tracks
// 2D: all measures as function of z of first trackpoint
TH2F *fRecPtPosVz; //pt-zfirst of pos tracks
- TH2F *fRecPtNegVz; //pt-zfirst of neg tracks
+ TH2F *fRecPtNegVz; //pt-zfirst of neg tracks
TH2F *fRecEtaPosVz; //eta-zfirst of pos tracks
TH2F *fRecEtaNegVz; //eta-zfirst of neg tracks
TH2F *fRecPhiPosVz; //phi-zfirst of pos tracks
TH1F * fPhiRec; //phi
TH1F * fThetaRec; //theta
TH1F * fNumber; //Number of tracks per event
+ TH1F * fNumberAfterCut; //Number of tracks per event after cuts
TH1F * fVx; // x of first track point
TH1F * fVy; // y of first track point
TH1F * fVz; // z of first track point
- TNtuple * test;
+ TH1F * fNVertexSPD; //number of vertices SPD
+ TH1F * fNVertexTracks; //number of vertices of Tracks
//new
TH2F *fRecDcaPosPhi; //dca-phi for pos.
TH2F *fRecDcaPosPhiEtaNeg; //dca-phi for pos tracks and neg eta
TH2F *fRecDcaNegPhiEtaNeg; //dca-phi for neg tracks and neg eta
+ TH2F *fRecDcaPosPtEtaPos; //dca-pt for pos tracks and pos eta
+ TH2F *fRecDcaNegPtEtaPos; //dca-pt for neg tracks and pos eta
+ TH2F *fRecDcaPosPtEtaNeg; //dca-pt for pos tracks and neg eta
+ TH2F *fRecDcaNegPtEtaNeg; //dca-pt for neg tracks and neg eta
+
TH2F *fRecPtPosPhiEtaPos; //pt-phi for pos tracks and pos eta
TH2F *fRecPtNegPhiEtaPos; //pt-phi for neg tracks and pos eta
TH2F *fRecPtPosPhiEtaNeg; //pt-phi for pos tracks and neg eta
TH2F *fRecPtNegPhiEtaNeg; //pt-phi for neg tracks and neg eta
+ // TH3F *fRecDcaPhiPtPosEtaPos; //dca-pt-phi for pos tracks and pos eta
+ // TH3F *fRecDcaPhiPtNegEtaPos; //dca-pt-phi for neg tracks and pos eta
+ // TH3F *fRecDcaPhiPtPosEtaNeg; //dca-pt-phi for pos tracks and neg eta
+ // TH3F *fRecDcaPhiPtNegEtaNeg; //dca-pt-phi for neg tracks and neg eta
+
+ TH2F *fEtavPt; // eta vs pt
+ TH2F *fPhivPt; // phi vs pt
- TH3F *fRecDcaPhiPtPosEtaPos; //dca-pt-phi for pos tracks and pos eta
- TH3F *fRecDcaPhiPtNegEtaPos; //dca-pt-phi for neg tracks and pos eta
- TH3F *fRecDcaPhiPtPosEtaNeg; //dca-pt-phi for pos tracks and neg eta
- TH3F *fRecDcaPhiPtNegEtaNeg; //dca-pt-phi for neg tracks and neg eta
+ TH2F *fCompareTPCparam; // TPC param
- TH2F *fEtavPt;
+ TH1F *fITSlayer; // ITS layer
+ TH2F *fITSlayerEta; // ITS layer vs eta
+ TH2F *fITSlayerPhi; // ITS layer vs phi
- Double_t sdca;
- Float_t xy, z, xvertexcor, yvertexcor;
- AliESDtrackCuts* fCuts; // List of cuts
+ AliESDtrackCuts* fCuts; // List of cuts
+
+ // four different vertex types: primary, spd, tracks, tpc
+ TH1F * fVertexX[4]; // x of vertex
+ TH1F * fVertexY[4]; // y of vertex
+ TH1F * fVertexZ[4]; // z of vertex
// sectors of TPC
TH1F *fRecPtTpcSector[18]; //pt for TPC sectors
TH2F *fDcaSigmaPos[7]; // dca - sigma_pT for pos tracks
TH2F *fDcaSigmaNeg[7]; // dca - sigma_pT for neg tracks
+ TH1F *fEtaBinPt[3][2]; // eta histogram for different pt bins and different charges
+ TH1F *fPhiBinPt[3][2]; // phi histogram for different pt bins and different charges
+ TH1F *fDcaBinPt[3][2]; // dca histogram for different pt bins and different charges
+ TH2F *fEtaPhiBinPt[3][2]; // eta-phi histogram for different pt bins and different charges
+