#ifndef AliEbyENetChargeFluctuationTask_cxx
#define AliEbyENetChargeFluctuationTask_cxx
#include "THnBase.h"
#include "THn.h"
#include "TH1F.h"
#include "TF1.h"
#include "TProfile2D.h"
#include "TRandom3.h"
class TList;
class AliESDtrack;
class AliMCEvent;
class AliStack;
class AliPIDResponse;
class AliESDtrackCuts;
class AliInputEventHandler;
class AliESDInputHandler;
class AliAODInputHandler;
class AliAODEvent;
class AliAODTrack;
class AliAODMCParticle;
class AliMCParticle;
class TClonesArray;
class AliHelperPID;
#include "AliAnalysisTaskSE.h"
class AliEbyENetChargeFluctuationTask: public AliAnalysisTaskSE {
public:
AliEbyENetChargeFluctuationTask( const char *name = "NetChargeFluctuation");
virtual ~AliEbyENetChargeFluctuationTask();
virtual void UserCreateOutputObjects();
virtual void UserExec(Option_t *option);
virtual void Terminate(Option_t *);
void SetVertexDiamond(Double_t vx, Double_t vy, Double_t vz) {
fVxMax = vx;fVyMax = vy; fVzMax = vz;
}
void SetKinematicsCuts(Double_t ptl, Double_t pth, Double_t eta, Double_t rap) {
fPtMin = ptl; fPtMax = pth; fEtaMin = -eta; fEtaMax = eta; fRapMin = -rap; fRapMax = rap;
}
void SetTrackFilterBit(Int_t bit) {fAODtrackCutBit = bit; }
void SetCentralityEstimator(const char* cent) { fCentralityEstimator = cent;}
void SetSystemType(Int_t i) { fSystemType = i; }
void SetPhi(Double_t phil) {fPhiMax = phil;}
void SetIsMC() {fIsMC = kTRUE;}
void SetNSubSamples(Int_t i) {fNSubSamples = i;}
void Debug() {fDebug = kTRUE;}
void SetIsAOD() {fIsAOD = kTRUE;}
void SetAnal(Int_t i);
void SetHelperPID(AliHelperPID* pid){ fHelperPID = pid; }
void SetDca(Double_t dcaxy,Double_t dcaz) { fDcaXy = dcaxy; fDcaZ = dcaz;}
void SetAnalysisCutObject(AliESDtrackCuts *const trackCuts) {
fESDtrackCuts = trackCuts;}
private:
Int_t GetPDG(Int_t i) {
if (i == 0) return 0; else if (i == 1) return 211;
else if (i == 2) return 321; else if (i == 3) return 2212;
else return 0; }
Double_t *CreateLogAxis(Int_t nbins, Double_t xmin, Double_t xmax);
Int_t SetupEvent();
Int_t SetupESD();
Int_t SetupAOD();
Int_t SetupMC();
Int_t SetupEventCR(AliESDInputHandler *esdHandler, AliAODInputHandler *aodHandler, AliMCEvent *mcEvent);
void ResetCurrentEvent();
Bool_t ChargedTrack(AliVTrack* track);
Bool_t TriggeredEvents();
Bool_t RejectedEvent();
Bool_t ParticleRapidity(AliVParticle *particle, Double_t &yP, Int_t gCurPid);
Bool_t TrackRapidity(AliVTrack *track, Double_t &yP, Int_t gCurPid);
Bool_t IsFindableInTPC(Int_t label);
Bool_t AcceptEvent(AliAODEvent *event, Int_t cent) const;
Bool_t IsEventStats(Int_t *aEventCuts);
Bool_t AcceptTrack(AliVTrack *track) const;
Bool_t AcceptTrackMC(AliVParticle *particle, Int_t idxMC) const;
void InitPhy();
void CreateQA();
void CreateBasicQA();
void CreateBasicHistos(const Char_t *name, const Char_t *title);
void CreateRatioHistos(const Char_t *name, const Char_t *title,Bool_t isPer);
void CreateGroupHistos(const Char_t *name, const Char_t *title, Int_t nSample,Bool_t isPer);
void FillBasicHistos(const Char_t *name, Bool_t isMC);
void FillRatioHistos(const Char_t *name,Bool_t isMC,Bool_t isPer);
void FillGroupHistos(const Char_t *name, Int_t iSub, Bool_t isMC,Bool_t isPer);
void FillCC(Int_t i);
void FillRCC(Int_t i);
void FillRecCE(Int_t i);
void FillRecDE(Int_t i);
void FillRecDED(Int_t i);
void FillGenCE(Int_t i);
void FillQAThnRec(AliVTrack *track, Int_t gPid, Double_t rap);
void FillQAThnMc(AliVParticle *particle, Int_t gPid, Double_t rap);
void ExecAA();
void ExecpA();
void Execpp();
void CalEC();
void CalED();
void CreateCE();
void CreateDEM();
void CreateDED();
void CalculateCE(Int_t gPid);
void CalculateDE(Int_t gPid);
void CalculateDED(Int_t gPid);
AliInputEventHandler *fInputEventHandler;
AliESDEvent *fESD;
AliAODEvent *fAOD;
AliMCEvent *fMCEvent;
AliStack *fStack;
AliAODInputHandler *fAODHandler;
AliESDInputHandler *fESDHandler;
AliStack *fMCStack;
TClonesArray *fArrayMC;
AliESDtrackCuts *fESDtrackCuts;
TList *fQaList;
TList *fPhyList;
TList *fDcaList;
TList *fEffList;
Int_t fSystemType;
TString fCentralityEstimator;
Double_t fVxMax;
Double_t fVyMax;
Double_t fVzMax;
Double_t fPhiMin;
Double_t fPhiMax;
Double_t fPtMin;
Double_t fPtMax;
Double_t fEtaMin;
Double_t fEtaMax;
Double_t fRapMin;
Double_t fRapMax;
Double_t fDcaXy;
Double_t fDcaZ;
Double_t fCentralityBin;
Double_t fCentralityPercentile;
Double_t fNp[4][2];
Double_t fMCNp[4][2];
Double_t fRedFactp[9][2];
Double_t fCurGen[8];
Double_t fCurGenD[8];
Double_t fCurRecD[7];
Double_t fCurRec[5];
Double_t fCurCont[6];
Float_t fMinTrackLengthMC;
Int_t fAODtrackCutBit;
Int_t fNSubSamples;
Int_t fSubSampleIdx;
Int_t fOrder;
Int_t fNTriggers;
Int_t fHEventStatMax;
Int_t fNCentralityBins;
Int_t fCentralityBinMax;
Int_t fNTracks;
Bool_t fIsMC;
Bool_t fIsRatio;
Bool_t fIsAOD;
Bool_t fIsSub;
Bool_t fIsBS;
Bool_t fIsPer;
Bool_t fIsEff;
Bool_t fDebug;
Bool_t fIsQa;
Bool_t fIsPhy;
Bool_t fIsDca;
TRandom3 *fRan;
TRandom3 *fRanIdx;
AliHelperPID *fHelperPID;
AliEbyENetChargeFluctuationTask(const AliEbyENetChargeFluctuationTask&);
AliEbyENetChargeFluctuationTask& operator = (const AliEbyENetChargeFluctuationTask&);
ClassDef(AliEbyENetChargeFluctuationTask, 1);
};
#endif
AliEbyENetChargeFluctuationTask.h:1 AliEbyENetChargeFluctuationTask.h:2 AliEbyENetChargeFluctuationTask.h:3 AliEbyENetChargeFluctuationTask.h:4 AliEbyENetChargeFluctuationTask.h:5 AliEbyENetChargeFluctuationTask.h:6 AliEbyENetChargeFluctuationTask.h:7 AliEbyENetChargeFluctuationTask.h:8 AliEbyENetChargeFluctuationTask.h:9 AliEbyENetChargeFluctuationTask.h:10 AliEbyENetChargeFluctuationTask.h:11 AliEbyENetChargeFluctuationTask.h:12 AliEbyENetChargeFluctuationTask.h:13 AliEbyENetChargeFluctuationTask.h:14 AliEbyENetChargeFluctuationTask.h:15 AliEbyENetChargeFluctuationTask.h:16 AliEbyENetChargeFluctuationTask.h:17 AliEbyENetChargeFluctuationTask.h:18 AliEbyENetChargeFluctuationTask.h:19 AliEbyENetChargeFluctuationTask.h:20 AliEbyENetChargeFluctuationTask.h:21 AliEbyENetChargeFluctuationTask.h:22 AliEbyENetChargeFluctuationTask.h:23 AliEbyENetChargeFluctuationTask.h:24 AliEbyENetChargeFluctuationTask.h:25 AliEbyENetChargeFluctuationTask.h:26 AliEbyENetChargeFluctuationTask.h:27 AliEbyENetChargeFluctuationTask.h:28 AliEbyENetChargeFluctuationTask.h:29 AliEbyENetChargeFluctuationTask.h:30 AliEbyENetChargeFluctuationTask.h:31 AliEbyENetChargeFluctuationTask.h:32 AliEbyENetChargeFluctuationTask.h:33 AliEbyENetChargeFluctuationTask.h:34 AliEbyENetChargeFluctuationTask.h:35 AliEbyENetChargeFluctuationTask.h:36 AliEbyENetChargeFluctuationTask.h:37 AliEbyENetChargeFluctuationTask.h:38 AliEbyENetChargeFluctuationTask.h:39 AliEbyENetChargeFluctuationTask.h:40 AliEbyENetChargeFluctuationTask.h:41 AliEbyENetChargeFluctuationTask.h:42 AliEbyENetChargeFluctuationTask.h:43 AliEbyENetChargeFluctuationTask.h:44 AliEbyENetChargeFluctuationTask.h:45 AliEbyENetChargeFluctuationTask.h:46 AliEbyENetChargeFluctuationTask.h:47 AliEbyENetChargeFluctuationTask.h:48 AliEbyENetChargeFluctuationTask.h:49 AliEbyENetChargeFluctuationTask.h:50 AliEbyENetChargeFluctuationTask.h:51 AliEbyENetChargeFluctuationTask.h:52 AliEbyENetChargeFluctuationTask.h:53 AliEbyENetChargeFluctuationTask.h:54 AliEbyENetChargeFluctuationTask.h:55 AliEbyENetChargeFluctuationTask.h:56 AliEbyENetChargeFluctuationTask.h:57 AliEbyENetChargeFluctuationTask.h:58 AliEbyENetChargeFluctuationTask.h:59 AliEbyENetChargeFluctuationTask.h:60 AliEbyENetChargeFluctuationTask.h:61 AliEbyENetChargeFluctuationTask.h:62 AliEbyENetChargeFluctuationTask.h:63 AliEbyENetChargeFluctuationTask.h:64 AliEbyENetChargeFluctuationTask.h:65 AliEbyENetChargeFluctuationTask.h:66 AliEbyENetChargeFluctuationTask.h:67 AliEbyENetChargeFluctuationTask.h:68 AliEbyENetChargeFluctuationTask.h:69 AliEbyENetChargeFluctuationTask.h:70 AliEbyENetChargeFluctuationTask.h:71 AliEbyENetChargeFluctuationTask.h:72 AliEbyENetChargeFluctuationTask.h:73 AliEbyENetChargeFluctuationTask.h:74 AliEbyENetChargeFluctuationTask.h:75 AliEbyENetChargeFluctuationTask.h:76 AliEbyENetChargeFluctuationTask.h:77 AliEbyENetChargeFluctuationTask.h:78 AliEbyENetChargeFluctuationTask.h:79 AliEbyENetChargeFluctuationTask.h:80 AliEbyENetChargeFluctuationTask.h:81 AliEbyENetChargeFluctuationTask.h:82 AliEbyENetChargeFluctuationTask.h:83 AliEbyENetChargeFluctuationTask.h:84 AliEbyENetChargeFluctuationTask.h:85 AliEbyENetChargeFluctuationTask.h:86 AliEbyENetChargeFluctuationTask.h:87 AliEbyENetChargeFluctuationTask.h:88 AliEbyENetChargeFluctuationTask.h:89 AliEbyENetChargeFluctuationTask.h:90 AliEbyENetChargeFluctuationTask.h:91 AliEbyENetChargeFluctuationTask.h:92 AliEbyENetChargeFluctuationTask.h:93 AliEbyENetChargeFluctuationTask.h:94 AliEbyENetChargeFluctuationTask.h:95 AliEbyENetChargeFluctuationTask.h:96 AliEbyENetChargeFluctuationTask.h:97 AliEbyENetChargeFluctuationTask.h:98 AliEbyENetChargeFluctuationTask.h:99 AliEbyENetChargeFluctuationTask.h:100 AliEbyENetChargeFluctuationTask.h:101 AliEbyENetChargeFluctuationTask.h:102 AliEbyENetChargeFluctuationTask.h:103 AliEbyENetChargeFluctuationTask.h:104 AliEbyENetChargeFluctuationTask.h:105 AliEbyENetChargeFluctuationTask.h:106 AliEbyENetChargeFluctuationTask.h:107 AliEbyENetChargeFluctuationTask.h:108 AliEbyENetChargeFluctuationTask.h:109 AliEbyENetChargeFluctuationTask.h:110 AliEbyENetChargeFluctuationTask.h:111 AliEbyENetChargeFluctuationTask.h:112 AliEbyENetChargeFluctuationTask.h:113 AliEbyENetChargeFluctuationTask.h:114 AliEbyENetChargeFluctuationTask.h:115 AliEbyENetChargeFluctuationTask.h:116 AliEbyENetChargeFluctuationTask.h:117 AliEbyENetChargeFluctuationTask.h:118 AliEbyENetChargeFluctuationTask.h:119 AliEbyENetChargeFluctuationTask.h:120 AliEbyENetChargeFluctuationTask.h:121 AliEbyENetChargeFluctuationTask.h:122 AliEbyENetChargeFluctuationTask.h:123 AliEbyENetChargeFluctuationTask.h:124 AliEbyENetChargeFluctuationTask.h:125 AliEbyENetChargeFluctuationTask.h:126 AliEbyENetChargeFluctuationTask.h:127 AliEbyENetChargeFluctuationTask.h:128 AliEbyENetChargeFluctuationTask.h:129 AliEbyENetChargeFluctuationTask.h:130 AliEbyENetChargeFluctuationTask.h:131 AliEbyENetChargeFluctuationTask.h:132 AliEbyENetChargeFluctuationTask.h:133 AliEbyENetChargeFluctuationTask.h:134 AliEbyENetChargeFluctuationTask.h:135 AliEbyENetChargeFluctuationTask.h:136 AliEbyENetChargeFluctuationTask.h:137 AliEbyENetChargeFluctuationTask.h:138 AliEbyENetChargeFluctuationTask.h:139 AliEbyENetChargeFluctuationTask.h:140 AliEbyENetChargeFluctuationTask.h:141 AliEbyENetChargeFluctuationTask.h:142 AliEbyENetChargeFluctuationTask.h:143 AliEbyENetChargeFluctuationTask.h:144 AliEbyENetChargeFluctuationTask.h:145 AliEbyENetChargeFluctuationTask.h:146 AliEbyENetChargeFluctuationTask.h:147 AliEbyENetChargeFluctuationTask.h:148 AliEbyENetChargeFluctuationTask.h:149 AliEbyENetChargeFluctuationTask.h:150 AliEbyENetChargeFluctuationTask.h:151 AliEbyENetChargeFluctuationTask.h:152 AliEbyENetChargeFluctuationTask.h:153 AliEbyENetChargeFluctuationTask.h:154 AliEbyENetChargeFluctuationTask.h:155 AliEbyENetChargeFluctuationTask.h:156 AliEbyENetChargeFluctuationTask.h:157 AliEbyENetChargeFluctuationTask.h:158 AliEbyENetChargeFluctuationTask.h:159 AliEbyENetChargeFluctuationTask.h:160 AliEbyENetChargeFluctuationTask.h:161 AliEbyENetChargeFluctuationTask.h:162 AliEbyENetChargeFluctuationTask.h:163 AliEbyENetChargeFluctuationTask.h:164 AliEbyENetChargeFluctuationTask.h:165 AliEbyENetChargeFluctuationTask.h:166 AliEbyENetChargeFluctuationTask.h:167 AliEbyENetChargeFluctuationTask.h:168 AliEbyENetChargeFluctuationTask.h:169 AliEbyENetChargeFluctuationTask.h:170 AliEbyENetChargeFluctuationTask.h:171 AliEbyENetChargeFluctuationTask.h:172 AliEbyENetChargeFluctuationTask.h:173 AliEbyENetChargeFluctuationTask.h:174 AliEbyENetChargeFluctuationTask.h:175 AliEbyENetChargeFluctuationTask.h:176 AliEbyENetChargeFluctuationTask.h:177 AliEbyENetChargeFluctuationTask.h:178 AliEbyENetChargeFluctuationTask.h:179 AliEbyENetChargeFluctuationTask.h:180 AliEbyENetChargeFluctuationTask.h:181 AliEbyENetChargeFluctuationTask.h:182 AliEbyENetChargeFluctuationTask.h:183 AliEbyENetChargeFluctuationTask.h:184 AliEbyENetChargeFluctuationTask.h:185 AliEbyENetChargeFluctuationTask.h:186 AliEbyENetChargeFluctuationTask.h:187 AliEbyENetChargeFluctuationTask.h:188 AliEbyENetChargeFluctuationTask.h:189 AliEbyENetChargeFluctuationTask.h:190 AliEbyENetChargeFluctuationTask.h:191 AliEbyENetChargeFluctuationTask.h:192 AliEbyENetChargeFluctuationTask.h:193 AliEbyENetChargeFluctuationTask.h:194 AliEbyENetChargeFluctuationTask.h:195 AliEbyENetChargeFluctuationTask.h:196 AliEbyENetChargeFluctuationTask.h:197 AliEbyENetChargeFluctuationTask.h:198 AliEbyENetChargeFluctuationTask.h:199 AliEbyENetChargeFluctuationTask.h:200 AliEbyENetChargeFluctuationTask.h:201 AliEbyENetChargeFluctuationTask.h:202 AliEbyENetChargeFluctuationTask.h:203 AliEbyENetChargeFluctuationTask.h:204 AliEbyENetChargeFluctuationTask.h:205 AliEbyENetChargeFluctuationTask.h:206 AliEbyENetChargeFluctuationTask.h:207 AliEbyENetChargeFluctuationTask.h:208 AliEbyENetChargeFluctuationTask.h:209 AliEbyENetChargeFluctuationTask.h:210 AliEbyENetChargeFluctuationTask.h:211 AliEbyENetChargeFluctuationTask.h:212 AliEbyENetChargeFluctuationTask.h:213 AliEbyENetChargeFluctuationTask.h:214 AliEbyENetChargeFluctuationTask.h:215 AliEbyENetChargeFluctuationTask.h:216 AliEbyENetChargeFluctuationTask.h:217 AliEbyENetChargeFluctuationTask.h:218