#ifndef ALIANALYSISTASKLAMBDANAOD_H
#define ALIANALYSISTASKLAMBDANAOD_H
class TF1;
class TH1F;
class TH2F;
class TH3F;
class THnSparse;
class TTree;
class AliAODInputHandler;
class AliAODEvent;
class AliAODVertex;
class AliAODv0;
class AliESDtrackCuts;
class AliESDInputHandler;
class AliESDEvent;
class AliESDVertex;
class AliESDv0;
#include <fstream>
#include "AliAnalysisTaskSE.h"
#include "THnSparse.h"
#include "AliStack.h"
#include "AliVTrack.h"
#define maxNofTracks 100000
class AliAnalysisTaskLambdaNAOD : public AliAnalysisTaskSE {
public:
AliAnalysisTaskLambdaNAOD();
AliAnalysisTaskLambdaNAOD(const char *name);
virtual ~AliAnalysisTaskLambdaNAOD();
virtual void UserCreateOutputObjects();
virtual void UserExec(Option_t *option);
virtual void Terminate(const Option_t*);
Int_t Initialize();
Int_t SetupEvent();
void ResetEvent();
void SetAnalysisType (const char* analysisType = "ESD") { fAnalysisType = analysisType; }
enum PdgCodeType_t {
kPDGPionPlus,
kPDGPionMinus,
kPDGProton,
kPDGAntiProton,
kPDGDeuteron,
kPDGAntiDeuteron,
kPDGHelium3,
kPDGAntiHelium3,
kPDGLambda,
kPDGAntiLambda,
kPDGLambdaNeutron,
kPDGAntiLambdaNeutron,
kPDGHypertriton,
kPDGAntiHypertriton,
kPdgCodeMax
};
enum MassType_t {
kMassPion,
kMassProton,
kMassDeuteron,
kMassTriton,
kMassHelium3,
kMassMax
};
static const Int_t fgkPdgCode[];
static const Double_t fgkMass[];
private:
TString fAnalysisType;
AliInputEventHandler *fEventHandler;
AliESDtrackCuts *fESDtrackCutsV0;
AliESDpid *fESDpid;
AliPIDResponse *fPIDResponse;
TTree *fTreeV0;
TH1F *fHistCentralityClass10;
TH1F *fHistCentralityPercentile;
TH1F *fHistTriggerStat;
TH1F *fHistTriggerStatAfterEventSelection;
TH1F *fHistLambdaNeutronPtGen;
TH1F *fHistLambdaNeutronPtGenMinBias;
TH1F *fHistLambdaNeutronPtGenCentral;
TH1F *fHistLambdaNeutronPtGenSemiCentral;
TH1F *fHistAntiLambdaNeutronPtGen;
TH1F *fHistAntiLambdaNeutronPtGenMinBias;
TH1F *fHistAntiLambdaNeutronPtGenCentral;
TH1F *fHistAntiLambdaNeutronPtGenSemiCentral;
TH1F *fHistLambdaNeutronInvaMassGen;
TH1F *fHistAntiLambdaNeutronInvaMassGen;
TH1F *fHistLambdaNeutronDecayLengthGen;
TH1F *fHistAntiLambdaNeutronDecayLengthGen;
TH1F *fHistLambdaNeutronPtAso;
TH1F *fHistLambdaNeutronPtAsoCuts;
TH1F *fHistAntiLambdaNeutronPtAso;
TH1F *fHistAntiLambdaNeutronPtAsoCuts;
TH1F *fHistLambdaNeutronInvaMassAso;
TH1F *fHistAntiLambdaNeutronInvaMassAso;
TH1F *fHistLambdaNeutronDecayLengthAso;
TH1F *fHistAntiLambdaNeutronDecayLengthAso;
TH2F *fof;
TH2F *fHistArmenterosPodolanskiDeuteronPion;
TH2F *fHistArmenterosPodolanskiAntiDeuteronPion;
TH3F *fHistDeDxQA;
Int_t fNTriggers;
Bool_t fMCtrue;
Bool_t fOnlyQA;
Bool_t fTriggerFired[5];
Int_t fItrk;
Int_t fV0finder[maxNofTracks];
Int_t fkMB[maxNofTracks];
Int_t fkCentral[maxNofTracks];
Int_t fkSemiCentral[maxNofTracks];
Int_t fkEMCEJE[maxNofTracks];
Int_t fkEMCEGA[maxNofTracks];
Int_t fCentralityClass10[maxNofTracks];
Int_t fCentralityPercentile[maxNofTracks];
Int_t fMultiplicity[maxNofTracks];
Int_t fRefMultiplicity[maxNofTracks];
Double_t fPtotN[maxNofTracks];
Double_t fPtotP[maxNofTracks];
Double_t fMotherPt[maxNofTracks];
Double_t fdEdxN[maxNofTracks];
Double_t fdEdxP[maxNofTracks];
Double_t fSignN[maxNofTracks];
Double_t fSignP[maxNofTracks];
Double_t fSigmadEdxPionPos[maxNofTracks];
Double_t fSigmadEdxPionNeg[maxNofTracks];
Float_t fDCAv0[maxNofTracks];
Float_t fCosinePAv0[maxNofTracks];
Float_t fDecayRadiusTree[maxNofTracks];
Double_t fInvaMassDeuteronPionTree[maxNofTracks];
Int_t fChargeComboDeuteronPionTree[maxNofTracks];
Bool_t fIsCorrectlyAssociated[maxNofTracks];
Double_t fAmenterosAlphaTree[maxNofTracks];
Double_t fAmenterosQtTree[maxNofTracks];
Int_t fRotationTree[maxNofTracks];
Double_t fImpactParameterDeuteronPos[maxNofTracks];
Double_t fImpactParameterDeuteronNeg[maxNofTracks];
Double_t fImpactParameterPionPos[maxNofTracks];
Double_t fImpactParameterPionNeg[maxNofTracks];
Double_t fImpactParameterDeuteronPosAliKF[maxNofTracks];
Double_t fImpactParameterDeuteronNegAliKF[maxNofTracks];
Double_t fImpactParameterPionPosAliKF[maxNofTracks];
Double_t fImpactParameterPionNegAliKF[maxNofTracks];
UShort_t fMinNClustersTPCPos[maxNofTracks];
UShort_t fMinNClustersTPCNeg[maxNofTracks];
Double_t fMaxChi2PerClusterTPCPos[maxNofTracks];
Double_t fMaxChi2PerClusterTPCNeg[maxNofTracks];
TObjArray *fOutputContainer;
void BinLogAxis(const THnSparse *h, Int_t axisNumber);
Bool_t IsTriggered();
Bool_t DeuteronPID(AliVTrack *trackP, AliVTrack *trackN, Double_t ptotP, Double_t ptotN, Int_t runNumber, Bool_t isDeuteron[3]);
Bool_t PionPID(AliVTrack *trackP, AliVTrack *trackN, Double_t ptotP, Double_t ptotN, Int_t runNumber, Bool_t isPion[2]);
Bool_t TrackCuts(AliVTrack *track, Bool_t testTrackCuts);
Double_t MomentumInnerParam(AliVTrack *track, Double_t ptot);
UShort_t TPCclusters(AliVTrack *track, UShort_t numberOfTPCclusters);
Double_t TPCchi2(AliVTrack *track, Double_t numberOfChi2clustersTPC, UShort_t numberOfTPCclusters);
Double_t ImpactParameter(AliVTrack *track, Double_t dcaToVertex);
void MCGenerated(AliStack* stack, Int_t multiplicity);
void MCTwoBodyDecay (AliStack* stack, const TParticle *tparticleMother, Long_t PDGMother, Long_t PDGFirstDaughter, Long_t PDGSecondDaughter, Double_t massFirstDaughter, Double_t massSecondDaughter, Int_t multiplicity);
AliAnalysisTaskLambdaNAOD(const AliAnalysisTaskLambdaNAOD&);
AliAnalysisTaskLambdaNAOD& operator=(const AliAnalysisTaskLambdaNAOD&);
ClassDef(AliAnalysisTaskLambdaNAOD, 1);
};
#endif
AliAnalysisTaskLambdaNAOD.h:1 AliAnalysisTaskLambdaNAOD.h:2 AliAnalysisTaskLambdaNAOD.h:3 AliAnalysisTaskLambdaNAOD.h:4 AliAnalysisTaskLambdaNAOD.h:5 AliAnalysisTaskLambdaNAOD.h:6 AliAnalysisTaskLambdaNAOD.h:7 AliAnalysisTaskLambdaNAOD.h:8 AliAnalysisTaskLambdaNAOD.h:9 AliAnalysisTaskLambdaNAOD.h:10 AliAnalysisTaskLambdaNAOD.h:11 AliAnalysisTaskLambdaNAOD.h:12 AliAnalysisTaskLambdaNAOD.h:13 AliAnalysisTaskLambdaNAOD.h:14 AliAnalysisTaskLambdaNAOD.h:15 AliAnalysisTaskLambdaNAOD.h:16 AliAnalysisTaskLambdaNAOD.h:17 AliAnalysisTaskLambdaNAOD.h:18 AliAnalysisTaskLambdaNAOD.h:19 AliAnalysisTaskLambdaNAOD.h:20 AliAnalysisTaskLambdaNAOD.h:21 AliAnalysisTaskLambdaNAOD.h:22 AliAnalysisTaskLambdaNAOD.h:23 AliAnalysisTaskLambdaNAOD.h:24 AliAnalysisTaskLambdaNAOD.h:25 AliAnalysisTaskLambdaNAOD.h:26 AliAnalysisTaskLambdaNAOD.h:27 AliAnalysisTaskLambdaNAOD.h:28 AliAnalysisTaskLambdaNAOD.h:29 AliAnalysisTaskLambdaNAOD.h:30 AliAnalysisTaskLambdaNAOD.h:31 AliAnalysisTaskLambdaNAOD.h:32 AliAnalysisTaskLambdaNAOD.h:33 AliAnalysisTaskLambdaNAOD.h:34 AliAnalysisTaskLambdaNAOD.h:35 AliAnalysisTaskLambdaNAOD.h:36 AliAnalysisTaskLambdaNAOD.h:37 AliAnalysisTaskLambdaNAOD.h:38 AliAnalysisTaskLambdaNAOD.h:39 AliAnalysisTaskLambdaNAOD.h:40 AliAnalysisTaskLambdaNAOD.h:41 AliAnalysisTaskLambdaNAOD.h:42 AliAnalysisTaskLambdaNAOD.h:43 AliAnalysisTaskLambdaNAOD.h:44 AliAnalysisTaskLambdaNAOD.h:45 AliAnalysisTaskLambdaNAOD.h:46 AliAnalysisTaskLambdaNAOD.h:47 AliAnalysisTaskLambdaNAOD.h:48 AliAnalysisTaskLambdaNAOD.h:49 AliAnalysisTaskLambdaNAOD.h:50 AliAnalysisTaskLambdaNAOD.h:51 AliAnalysisTaskLambdaNAOD.h:52 AliAnalysisTaskLambdaNAOD.h:53 AliAnalysisTaskLambdaNAOD.h:54 AliAnalysisTaskLambdaNAOD.h:55 AliAnalysisTaskLambdaNAOD.h:56 AliAnalysisTaskLambdaNAOD.h:57 AliAnalysisTaskLambdaNAOD.h:58 AliAnalysisTaskLambdaNAOD.h:59 AliAnalysisTaskLambdaNAOD.h:60 AliAnalysisTaskLambdaNAOD.h:61 AliAnalysisTaskLambdaNAOD.h:62 AliAnalysisTaskLambdaNAOD.h:63 AliAnalysisTaskLambdaNAOD.h:64 AliAnalysisTaskLambdaNAOD.h:65 AliAnalysisTaskLambdaNAOD.h:66 AliAnalysisTaskLambdaNAOD.h:67 AliAnalysisTaskLambdaNAOD.h:68 AliAnalysisTaskLambdaNAOD.h:69 AliAnalysisTaskLambdaNAOD.h:70 AliAnalysisTaskLambdaNAOD.h:71 AliAnalysisTaskLambdaNAOD.h:72 AliAnalysisTaskLambdaNAOD.h:73 AliAnalysisTaskLambdaNAOD.h:74 AliAnalysisTaskLambdaNAOD.h:75 AliAnalysisTaskLambdaNAOD.h:76 AliAnalysisTaskLambdaNAOD.h:77 AliAnalysisTaskLambdaNAOD.h:78 AliAnalysisTaskLambdaNAOD.h:79 AliAnalysisTaskLambdaNAOD.h:80 AliAnalysisTaskLambdaNAOD.h:81 AliAnalysisTaskLambdaNAOD.h:82 AliAnalysisTaskLambdaNAOD.h:83 AliAnalysisTaskLambdaNAOD.h:84 AliAnalysisTaskLambdaNAOD.h:85 AliAnalysisTaskLambdaNAOD.h:86 AliAnalysisTaskLambdaNAOD.h:87 AliAnalysisTaskLambdaNAOD.h:88 AliAnalysisTaskLambdaNAOD.h:89 AliAnalysisTaskLambdaNAOD.h:90 AliAnalysisTaskLambdaNAOD.h:91 AliAnalysisTaskLambdaNAOD.h:92 AliAnalysisTaskLambdaNAOD.h:93 AliAnalysisTaskLambdaNAOD.h:94 AliAnalysisTaskLambdaNAOD.h:95 AliAnalysisTaskLambdaNAOD.h:96 AliAnalysisTaskLambdaNAOD.h:97 AliAnalysisTaskLambdaNAOD.h:98 AliAnalysisTaskLambdaNAOD.h:99 AliAnalysisTaskLambdaNAOD.h:100 AliAnalysisTaskLambdaNAOD.h:101 AliAnalysisTaskLambdaNAOD.h:102 AliAnalysisTaskLambdaNAOD.h:103 AliAnalysisTaskLambdaNAOD.h:104 AliAnalysisTaskLambdaNAOD.h:105 AliAnalysisTaskLambdaNAOD.h:106 AliAnalysisTaskLambdaNAOD.h:107 AliAnalysisTaskLambdaNAOD.h:108 AliAnalysisTaskLambdaNAOD.h:109 AliAnalysisTaskLambdaNAOD.h:110 AliAnalysisTaskLambdaNAOD.h:111 AliAnalysisTaskLambdaNAOD.h:112 AliAnalysisTaskLambdaNAOD.h:113 AliAnalysisTaskLambdaNAOD.h:114 AliAnalysisTaskLambdaNAOD.h:115 AliAnalysisTaskLambdaNAOD.h:116 AliAnalysisTaskLambdaNAOD.h:117 AliAnalysisTaskLambdaNAOD.h:118 AliAnalysisTaskLambdaNAOD.h:119 AliAnalysisTaskLambdaNAOD.h:120 AliAnalysisTaskLambdaNAOD.h:121 AliAnalysisTaskLambdaNAOD.h:122 AliAnalysisTaskLambdaNAOD.h:123 AliAnalysisTaskLambdaNAOD.h:124 AliAnalysisTaskLambdaNAOD.h:125 AliAnalysisTaskLambdaNAOD.h:126 AliAnalysisTaskLambdaNAOD.h:127 AliAnalysisTaskLambdaNAOD.h:128 AliAnalysisTaskLambdaNAOD.h:129 AliAnalysisTaskLambdaNAOD.h:130 AliAnalysisTaskLambdaNAOD.h:131 AliAnalysisTaskLambdaNAOD.h:132 AliAnalysisTaskLambdaNAOD.h:133 AliAnalysisTaskLambdaNAOD.h:134 AliAnalysisTaskLambdaNAOD.h:135 AliAnalysisTaskLambdaNAOD.h:136 AliAnalysisTaskLambdaNAOD.h:137 AliAnalysisTaskLambdaNAOD.h:138 AliAnalysisTaskLambdaNAOD.h:139 AliAnalysisTaskLambdaNAOD.h:140 AliAnalysisTaskLambdaNAOD.h:141 AliAnalysisTaskLambdaNAOD.h:142 AliAnalysisTaskLambdaNAOD.h:143 AliAnalysisTaskLambdaNAOD.h:144 AliAnalysisTaskLambdaNAOD.h:145 AliAnalysisTaskLambdaNAOD.h:146 AliAnalysisTaskLambdaNAOD.h:147 AliAnalysisTaskLambdaNAOD.h:148 AliAnalysisTaskLambdaNAOD.h:149 AliAnalysisTaskLambdaNAOD.h:150 AliAnalysisTaskLambdaNAOD.h:151 AliAnalysisTaskLambdaNAOD.h:152 AliAnalysisTaskLambdaNAOD.h:153 AliAnalysisTaskLambdaNAOD.h:154 AliAnalysisTaskLambdaNAOD.h:155 AliAnalysisTaskLambdaNAOD.h:156 AliAnalysisTaskLambdaNAOD.h:157 AliAnalysisTaskLambdaNAOD.h:158 AliAnalysisTaskLambdaNAOD.h:159 AliAnalysisTaskLambdaNAOD.h:160 AliAnalysisTaskLambdaNAOD.h:161 AliAnalysisTaskLambdaNAOD.h:162 AliAnalysisTaskLambdaNAOD.h:163 AliAnalysisTaskLambdaNAOD.h:164 AliAnalysisTaskLambdaNAOD.h:165 AliAnalysisTaskLambdaNAOD.h:166 AliAnalysisTaskLambdaNAOD.h:167 AliAnalysisTaskLambdaNAOD.h:168 AliAnalysisTaskLambdaNAOD.h:169 AliAnalysisTaskLambdaNAOD.h:170 AliAnalysisTaskLambdaNAOD.h:171 AliAnalysisTaskLambdaNAOD.h:172 AliAnalysisTaskLambdaNAOD.h:173 AliAnalysisTaskLambdaNAOD.h:174 AliAnalysisTaskLambdaNAOD.h:175 AliAnalysisTaskLambdaNAOD.h:176 AliAnalysisTaskLambdaNAOD.h:177 AliAnalysisTaskLambdaNAOD.h:178 AliAnalysisTaskLambdaNAOD.h:179 AliAnalysisTaskLambdaNAOD.h:180 AliAnalysisTaskLambdaNAOD.h:181 AliAnalysisTaskLambdaNAOD.h:182 AliAnalysisTaskLambdaNAOD.h:183 AliAnalysisTaskLambdaNAOD.h:184 AliAnalysisTaskLambdaNAOD.h:185 AliAnalysisTaskLambdaNAOD.h:186 AliAnalysisTaskLambdaNAOD.h:187 AliAnalysisTaskLambdaNAOD.h:188 AliAnalysisTaskLambdaNAOD.h:189 AliAnalysisTaskLambdaNAOD.h:190 AliAnalysisTaskLambdaNAOD.h:191 AliAnalysisTaskLambdaNAOD.h:192 AliAnalysisTaskLambdaNAOD.h:193 AliAnalysisTaskLambdaNAOD.h:194 AliAnalysisTaskLambdaNAOD.h:195 AliAnalysisTaskLambdaNAOD.h:196 AliAnalysisTaskLambdaNAOD.h:197 AliAnalysisTaskLambdaNAOD.h:198 AliAnalysisTaskLambdaNAOD.h:199 AliAnalysisTaskLambdaNAOD.h:200 AliAnalysisTaskLambdaNAOD.h:201 AliAnalysisTaskLambdaNAOD.h:202 AliAnalysisTaskLambdaNAOD.h:203 AliAnalysisTaskLambdaNAOD.h:204 AliAnalysisTaskLambdaNAOD.h:205 AliAnalysisTaskLambdaNAOD.h:206 AliAnalysisTaskLambdaNAOD.h:207 AliAnalysisTaskLambdaNAOD.h:208 AliAnalysisTaskLambdaNAOD.h:209 AliAnalysisTaskLambdaNAOD.h:210 AliAnalysisTaskLambdaNAOD.h:211 AliAnalysisTaskLambdaNAOD.h:212 AliAnalysisTaskLambdaNAOD.h:213 AliAnalysisTaskLambdaNAOD.h:214 AliAnalysisTaskLambdaNAOD.h:215 AliAnalysisTaskLambdaNAOD.h:216 AliAnalysisTaskLambdaNAOD.h:217 AliAnalysisTaskLambdaNAOD.h:218 AliAnalysisTaskLambdaNAOD.h:219 AliAnalysisTaskLambdaNAOD.h:220 AliAnalysisTaskLambdaNAOD.h:221 AliAnalysisTaskLambdaNAOD.h:222 AliAnalysisTaskLambdaNAOD.h:223 AliAnalysisTaskLambdaNAOD.h:224 AliAnalysisTaskLambdaNAOD.h:225 AliAnalysisTaskLambdaNAOD.h:226 AliAnalysisTaskLambdaNAOD.h:227 AliAnalysisTaskLambdaNAOD.h:228 AliAnalysisTaskLambdaNAOD.h:229 AliAnalysisTaskLambdaNAOD.h:230 AliAnalysisTaskLambdaNAOD.h:231 AliAnalysisTaskLambdaNAOD.h:232 AliAnalysisTaskLambdaNAOD.h:233 AliAnalysisTaskLambdaNAOD.h:234 AliAnalysisTaskLambdaNAOD.h:235 AliAnalysisTaskLambdaNAOD.h:236 AliAnalysisTaskLambdaNAOD.h:237 AliAnalysisTaskLambdaNAOD.h:238 AliAnalysisTaskLambdaNAOD.h:239 AliAnalysisTaskLambdaNAOD.h:240 AliAnalysisTaskLambdaNAOD.h:241 AliAnalysisTaskLambdaNAOD.h:242