+++ /dev/null
-#ifndef ALIANALYSISTPCTOFPA_H
-#define ALIANALYSISTPCTOFPA_H
-
-//////////////////////////////////////////////////////////////////////////////
-// //
-// This analysis extracts pT-spectra of charged kaons, protons, and pions. //
-// It is based on particles identifation via the dE/dx signal of the TPC. //
-// //
-//////////////////////////////////////////////////////////////////////////////
-
-class TH1;
-class TH1F;
-class TH2D;
-class TH3D;
-class TList;
-class TObjArray;
-class AliESDEvent;
-class AliESDtrack;
-class AliESDtrackCuts;
-class AliHeader;
-class AliESDpid;
-
-
-#include "AliAnalysisTaskSE.h"
-#include "THnSparse.h"
-
-class AliAnalysisTPCTOFpA : public AliAnalysisTaskSE {
- public:
- AliAnalysisTPCTOFpA(const char *name);
- AliAnalysisTPCTOFpA();
- virtual ~AliAnalysisTPCTOFpA() {}
- //
- virtual void UserCreateOutputObjects();
- virtual void UserExec(Option_t *option);
- virtual void Terminate(Option_t *);
- //
- Bool_t SelectOnImpPar(AliESDtrack* t);
- //
- void SetESDtrackCuts(AliESDtrackCuts * trackCuts){fESDtrackCuts = trackCuts;};
- void SetAlephParameters(const Double_t * parameters){for(Int_t j=0;j<5;j++) fAlephParameters[j] = parameters[j]; Initialize();};
- void SetIsMCtrue(Bool_t isMCdata = kTRUE){fMCtrue = isMCdata;};
- void SetUseHBTmultiplicity(Bool_t useHBTmultiplicity = kTRUE){fUseHBTmultiplicity = useHBTmultiplicity;};
- void SetUseTPConlyTracks(Bool_t useTPConlyTracks = kTRUE){fUseTPConlyTracks = useTPConlyTracks;};
- void SetSaveMotherPDG(Bool_t saveMotherPDG =kTRUE){fSaveMotherPDG = saveMotherPDG;};
- void SetSmallTHnSparse(Bool_t smallTHnSparse = kTRUE) {fSmallTHnSparse = smallTHnSparse;};
- void SetTPCnSigmaCuts(Double_t nSigmaTPCLow = -3., Double_t nSigmaTPCHigh = 3.){fTPCnSigmaCutLow = nSigmaTPCLow; fTPCnSigmaCutHigh = nSigmaTPCHigh;};
- void SetRapidityCuts(Double_t rapidityLow = 0., Double_t rapidityHigh = 0.5){fRapidityCutLow = rapidityLow; fRapidityCutHigh = rapidityHigh;};
- void SetEvenDCAbinning(Bool_t EvenDCAbinning = kTRUE) {fEvenDCAbinning = EvenDCAbinning;};
- void SetIspA(Bool_t ispA = kTRUE) {fIspA = ispA;};
- void SetRapCMS(Bool_t rapCMS = kTRUE) {fRapCMS = rapCMS;};
- void SetCentEst(TString centEst = "V0M") {fCentEst = centEst.Data();};
- void SetTOFmisMatch(Int_t TOFmisMatch = 2) {fTOFmisMatch = TOFmisMatch;};
- void SetTOFwindow(Double_t TOFwindow = 10.) {fTOFwindow = TOFwindow;};
- void SetCrossedRows(Double_t crossedRows = 70.) {fCrossedRows = crossedRows;};
- void SetRatioRowsClusters(Double_t ratioRowsClusters = 0.8) {fRatioRowsClusters = ratioRowsClusters;};
- void SetTRDinReject(Bool_t TRDinReject = kFALSE) {fTRDinReject = TRDinReject;};
- void SetDCAzCut(Double_t dcaZcut = 2.){fDCAzCut = dcaZcut;};
- void Initialize();
- //
-
- private:
- //
- void BinLogAxis(const TH1 *h);
- Int_t GetPythiaEventProcessType(const AliHeader* aHeader, const Bool_t adebug = kFALSE) const;
- //
- AliESDEvent *fESD; //! ESD object
- TList *fListHist; //! list for histograms
- //
- AliESDtrackCuts * fESDtrackCuts; // basic cut variables
- AliESDtrackCuts * fESDTrackCutsMult; // cuts for the MULTIPLICITY DETERMINATION
- AliESDpid * fESDpid; // basic TPC object for n-sigma cuts
- Bool_t fMCtrue; // flag if real data or MC is processed
- Bool_t fOnlyQA; // flag if only QA histograms should be filled
- Bool_t fUseHBTmultiplicity; // flag if multiplicity determination should be done as in the HBT paper
- Bool_t fUseTPConlyTracks; // flag if TPConly-track should be used
- Bool_t fSaveMotherPDG; // flag if PDG of mother should be saved (weak decays)
- Bool_t fSmallTHnSparse; // flag if to do cuts on TPC n-sigma and rapidity in task or not
- Bool_t fIspA; // flag for pA analysis
- Bool_t fRapCMS; // flag if rapitidy should be shifted by 0.465 do have rap in CMS of pPb
- TString fCentEst; // string which contains the string for the centrality estimator
- Int_t fTOFmisMatch; // switch for how tof mismatch should be handled. possible options 0,1,2
- Bool_t fTRDinReject; // flag to reject all tracks with TRDin flag set
- Double_t fTOFwindow; // set cut on dx and dz TOF window
- Double_t fDCAzCut; // set cut on DCA z -standard is 2cm
- Double_t fCrossedRows; // min. number of crossed rows for track cuts
- Double_t fRatioRowsClusters; // ratio of findable clusters over crossed rows
- Double_t fTPCnSigmaCutLow; // low border for TPC n-sigma cut
- Double_t fTPCnSigmaCutHigh; // high border for TPC n-sigma cut
- Double_t fRapidityCutLow; // low border for rapidity cut
- Double_t fRapidityCutHigh; // high border for rapidity cut
- Double_t fEvenDCAbinning; // same bin width for all bins in DCA xy
- Double_t fAlephParameters[5]; // Aleph Parameters for Bethe-Bloch
-
- //
- //
- //
- THnSparseF * fHistRealTracks; //! histogram with all necessary information for real tracks
- THnSparseF * fHistMCparticles; //! histogram with all necessary information for MC particles
- //
- TH3D * fHistPidQA; //! histogram for the QA of the PID
- TH2D * fHistMult; //! control histogram for multiplicity
- TH1D * fHistCentrality; //! control histogram for centrality
- TH2D * fHistTOFwindow; //! control histogram for TOF window
- //
- AliAnalysisTPCTOFpA(const AliAnalysisTPCTOFpA&);
- AliAnalysisTPCTOFpA& operator=(const AliAnalysisTPCTOFpA&);
-
- ClassDef(AliAnalysisTPCTOFpA, 1);
-};
-
-#endif