1 #ifndef ALIANALYSISTASKPIDFLUCTUATION_H
2 #define ALIANALYSISTASKPIDFLUCTUATION_H
5 * updated by Zubayer Ahammed to instruct CINT about streaming
7 * Event by event PID fluctuation analysis
8 * author: Roberto Preghenella (R+)
9 * email: preghenella@bo.infn.it
19 class AliESDtrackCuts;
22 #include "AliAnalysisTaskSE.h"
24 #include "THnSparse.h"
26 class AliAnalysisTaskPIDFluctuation :
27 public AliAnalysisTaskSE
32 AliAnalysisTaskPIDFluctuation(const Char_t *name = "PIDFluctuation"); // default constructor
33 virtual ~AliAnalysisTaskPIDFluctuation(); // default destructor
35 void UserCreateOutputObjects();
36 void UserExec(Option_t *option);
39 void SetPIDMethod(Int_t value) {fPIDMethod = value;}; // set PID method
40 void SetESDtrackCuts(AliESDtrackCuts *value) {fESDtrackCuts = value;}; // set ESD track cuts
41 void SetAODfilterBit(Int_t value) {fAODfilterBit = value;}; // set AOD filter bit
42 void SetEtaRange(Float_t etaMin, Float_t etaMax) {fEtaMin = etaMin; fEtaMax = etaMax;}; // set eta range
43 void SetPtRange(Float_t ptMin, Float_t ptMax) {fPtMin = ptMin; fPtMax = ptMax;}; // set pt range
45 static const Int_t kNCentralityBins = 10; // N centrality bins
47 enum EEventCounter_t {
83 static void MeasureNuDyn(const Char_t *filename, Int_t i1, Int_t i2, Int_t centralityEstimator = kCent_V0M);
87 AliAnalysisTaskPIDFluctuation(const AliAnalysisTaskPIDFluctuation &); // not implemented
88 AliAnalysisTaskPIDFluctuation &operator=(const AliAnalysisTaskPIDFluctuation &); // not implemented
90 /*** event and track selection ***/
91 Bool_t AcceptEvent(AliVEvent *event) const; // accept event
92 Bool_t AcceptTrack(AliVTrack *track) const; // accept track
94 /*** PID functions ***/
95 Bool_t HasTPCPID(AliVTrack *track) const; // has TPC PID
96 Bool_t HasTOFPID(AliVTrack *track) const; // has TOF PID
97 Double_t MakeTPCPID(AliVTrack *track, Double_t *nSigma) const; // make TPC PID
98 Double_t MakeTOFPID(AliVTrack *track, Double_t *nSigma) const; // make TOF PID
99 void MakePID(AliVTrack *track, Bool_t *pidFlag, Float_t centrality) const; // make PID
100 Bool_t InitPID(AliVEvent *event); // init PID
102 /*** PID objects and flags ***/
103 Int_t fPIDMethod; // PID method
104 AliESDtrackCuts *fESDtrackCuts; // ESD track cuts
105 Int_t fAODfilterBit; // AOD filter bit
106 Float_t fEtaMin; // eta min
107 Float_t fEtaMax; // eta max
108 Float_t fPtMin; // pt min
109 Float_t fPtMax; // pt max
110 AliPIDResponse *fPID; //! PID
113 TList *fHistoList; //! histo list
114 TH1F *fHistoEventCounter; //! event counter
115 TH2F *fHistoAcceptedTracks; //! accepted tracks
116 TH2F *fHistoTOFMatchedTracks; //! TOF-matched tracks
117 TH3F *fHistoTPCdEdx; //! TPC dEdx
118 TH3F *fHistoTPCdEdx_inclusive; //! TPC dEdx
119 TH3F *fHistoTOFbeta; //! TOF beta
120 TH3F *fHistoTPCdEdx_selected[AliPID::kSPECIES]; //! TPC dEdx
121 TH3F *fHistoTOFbeta_selected[AliPID::kSPECIES]; //! TOF beta
122 TH3F *fHistoNSigmaTPC[AliPID::kSPECIES]; //! nsigma TPC
123 TH3F *fHistoNSigmaTOF[AliPID::kSPECIES]; //! nsigma TOF
125 /*** correlation histos */
126 THnSparseI *fHistoCorrelation; // correlation THnSparse
128 /*** labels, names and titles ***/
129 static const Char_t *fgkEventCounterName[kNEventCounters]; // event couter name
130 static const Char_t *fgkEventCounterTitle[kNEventCounters]; // event couter title
131 static const Char_t *fgkSparseDataName[kNSparseData]; // sparse data name
132 static const Char_t *fgkSparseDataTitle[kNSparseData]; // sparse data title
135 ClassDef(AliAnalysisTaskPIDFluctuation, 1);
138 #endif /* ALIANALYSISTASKPIDFLUCTUATION_H */