#ifndef ALIRSNANALYSISPHI7TEV_H
#define ALIRSNANALYSISPHI7TEV_H
#include "AliAnalysisTaskSE.h"
#include "AliESDtrackCuts.h"
#include "AliPID.h"
class TH1I;
class TH1F;
class TH3F;
class AliStack;
class AliESDEvent;
class AliESDVertex;
class AliESDpid;
class AliESDtrack;
class AliCFContainer;
class AliRsnAnalysisPhi7TeV : public AliAnalysisTaskSE {
public:
enum EVertexType {
kGoodTracksPrimaryVertex = 0,
kGoodSPDPrimaryVertex = 1,
kFarTracksPrimaryVertex = 2,
kFarSPDPrimaryVertex = 3,
kNoGoodPrimaryVertex = 4,
kEmptyEvent = 5,
kVertexTypes
};
enum ETrackType {
kITSStandAlone,
kTPConly,
kTPCwithTOF,
kTrackTypes
};
AliRsnAnalysisPhi7TeV(const char *name = "Phi7TeV", Bool_t isMC = kFALSE);
AliRsnAnalysisPhi7TeV(const AliRsnAnalysisPhi7TeV& copy);
AliRsnAnalysisPhi7TeV& operator=(const AliRsnAnalysisPhi7TeV& copy);
virtual ~AliRsnAnalysisPhi7TeV();
void SetMC (Bool_t yn = kTRUE) {fIsMC = yn;}
void SetAddITSTPC(Bool_t yn = kTRUE) {fAddTPC = yn;}
void SetAddITSSA (Bool_t yn = kTRUE) {fAddITS = yn;}
void SetCheckITS (Bool_t yn = kTRUE) {fCheckITS = yn;}
void SetCheckTPC (Bool_t yn = kTRUE) {fCheckTPC = yn;}
void SetCheckTOF (Bool_t yn = kTRUE) {fCheckTOF = yn;}
void SetStep (Int_t step) {fStep = step;}
void SetPhiMass (Double_t value) {fPhiMass = value;}
void SetKaonMass(Double_t value) {fKaonMass = value;}
void SetMaxVz(Double_t v) {fMaxVz = v;}
void SetITSNSigma (Double_t v) {fITSNSigma = v;}
void SetTPCNSigmaLow (Double_t v) {fTPCNSigma[0] = v;}
void SetTPCNSigmaHigh (Double_t v) {fTPCNSigma[1] = v;}
void SetTPCMomentumThreshold(Double_t v) {fTPCMomentumThreshold = v;}
void SetTOFNSigma (Double_t v) {fTOFNSigma = v;}
void SetCutsTPC(AliESDtrackCuts *cuts) {fESDtrackCutsTPC = cuts;}
void SetCutsITS(AliESDtrackCuts *cuts) {fESDtrackCutsITS = cuts;}
void SetESDpid (AliESDpid *pid ) {fESDpid = pid ;}
AliESDtrackCuts* GetCutsTPC() {return fESDtrackCutsTPC;}
AliESDtrackCuts* GetCutsITS() {return fESDtrackCutsITS;}
AliESDpid* GetESDpid() {return fESDpid; }
virtual void UserCreateOutputObjects();
virtual void UserExec(Option_t *option = "");
virtual void Terminate(Option_t *option = "");
EVertexType EventEval(AliESDEvent *esd);
Bool_t IsTPC (AliESDtrack *track);
Bool_t IsITS (AliESDtrack *track);
Bool_t MatchTOF (AliESDtrack *track);
ETrackType TrackType(AliESDtrack *track);
Bool_t OkQualityITS(AliESDtrack *track) {return fESDtrackCutsITS->IsSelected(track);}
Bool_t OkQualityTPC(AliESDtrack *track) {return fESDtrackCutsTPC->IsSelected(track);}
Bool_t OkQuality (AliESDtrack *track);
Bool_t OkPIDITS (AliESDtrack *track, AliPID::EParticleType pid = AliPID::kKaon);
Bool_t OkPIDTPC (AliESDtrack *track, AliPID::EParticleType pid = AliPID::kKaon);
Bool_t OkPIDTOF (AliESDtrack *track, AliPID::EParticleType pid = AliPID::kKaon);
Bool_t OkPID (AliESDtrack *track, AliPID::EParticleType pid = AliPID::kKaon);
private:
void ProcessESD (AliESDEvent *esd, AliMCEvent *mc);
void ProcessMC (AliESDEvent *esd, AliMCEvent *mc);
Int_t MatchedTrack (AliESDEvent *esd, Int_t label, Int_t &npassed, Int_t start = 0);
Int_t BestMatchedTrack(AliESDEvent *esd, Int_t label);
Bool_t fIsMC;
Bool_t fAddTPC;
Bool_t fAddITS;
Bool_t fCheckITS;
Bool_t fCheckTPC;
Bool_t fCheckTOF;
Int_t fStep;
Double_t fPhiMass;
Double_t fKaonMass;
Double_t fMaxVz;
Double_t fITSNSigma;
Double_t fTPCNSigma[2];
Double_t fTPCMomentumThreshold;
Double_t fTOFNSigma;
AliESDtrackCuts *fESDtrackCutsTPC;
AliESDtrackCuts *fESDtrackCutsITS;
AliESDpid *fESDpid;
TList *fOutList;
AliCFContainer *fCFunlike;
AliCFContainer *fCFlikePP;
AliCFContainer *fCFlikeMM;
AliCFContainer *fCFtrues;
AliCFContainer *fCFkaons;
TH1I *fHEvents;
TH1F *fVertexX[2];
TH1F *fVertexY[2];
TH1F *fVertexZ[2];
ClassDef(AliRsnAnalysisPhi7TeV, 1)
};
inline Bool_t AliRsnAnalysisPhi7TeV::IsTPC(AliESDtrack *vtrack)
{
if (!vtrack) {
AliWarning("NULL argument: impossible to check status");
return kFALSE;
}
return vtrack->IsOn(AliESDtrack::kTPCin);
}
inline Bool_t AliRsnAnalysisPhi7TeV::IsITS(AliESDtrack *vtrack)
{
if (!vtrack) {
AliWarning("NULL argument: impossible to check status");
return kFALSE;
}
Bool_t isTPCin = vtrack->IsOn(AliESDtrack::kTPCin);
Bool_t isITSrefit = vtrack->IsOn(AliESDtrack::kITSrefit);
Bool_t isITSpureSA = vtrack->IsOn(AliESDtrack::kITSpureSA);
Bool_t isITSpid = vtrack->IsOn(AliESDtrack::kITSpid);
return ((!isTPCin) && isITSrefit && (!isITSpureSA) && isITSpid);
}
inline Bool_t AliRsnAnalysisPhi7TeV::MatchTOF(AliESDtrack *vtrack)
{
if (!vtrack) {
AliWarning("NULL argument: impossible to check status");
return kFALSE;
}
if (vtrack->GetIntegratedLength() < 350.) return kFALSE;
Bool_t isTOFout = vtrack->IsOn(AliESDtrack::kTOFout);
Bool_t isTIME = vtrack->IsOn(AliESDtrack::kTIME);
return (isTOFout && isTIME);
}
inline AliRsnAnalysisPhi7TeV::ETrackType AliRsnAnalysisPhi7TeV::TrackType(AliESDtrack *track)
{
if (IsITS(track))
return kITSStandAlone;
else if (IsTPC(track)) {
if (MatchTOF(track))
return kTPCwithTOF;
else
return kTPConly;
}
else
return kTrackTypes;
}
inline Bool_t AliRsnAnalysisPhi7TeV::OkQuality(AliESDtrack *track)
{
ETrackType type = TrackType(track);
switch (type) {
case kITSStandAlone:
return OkQualityITS(track);
case kTPConly:
case kTPCwithTOF:
return OkQualityTPC(track);
default:
return kFALSE;
}
}
inline Bool_t AliRsnAnalysisPhi7TeV::OkPID(AliESDtrack *track, AliPID::EParticleType pid)
{
ETrackType type = TrackType(track);
switch (type) {
case kITSStandAlone:
if (fCheckITS) return OkPIDITS(track);
else return kTRUE;
case kTPConly:
if (fCheckTPC) return OkPIDTPC(track);
else return kTRUE;
case kTPCwithTOF:
if (fCheckTPC && fCheckTOF) return (OkPIDTPC(track, pid) && OkPIDTOF(track, pid));
else if (fCheckTOF) return OkPIDTOF(track, pid);
else if (fCheckTPC) return OkPIDTPC(track, pid);
else return kTRUE;
default:
return kFALSE;
}
}
#endif
AliRsnAnalysisPhi7TeV.h:1 AliRsnAnalysisPhi7TeV.h:2 AliRsnAnalysisPhi7TeV.h:3 AliRsnAnalysisPhi7TeV.h:4 AliRsnAnalysisPhi7TeV.h:5 AliRsnAnalysisPhi7TeV.h:6 AliRsnAnalysisPhi7TeV.h:7 AliRsnAnalysisPhi7TeV.h:8 AliRsnAnalysisPhi7TeV.h:9 AliRsnAnalysisPhi7TeV.h:10 AliRsnAnalysisPhi7TeV.h:11 AliRsnAnalysisPhi7TeV.h:12 AliRsnAnalysisPhi7TeV.h:13 AliRsnAnalysisPhi7TeV.h:14 AliRsnAnalysisPhi7TeV.h:15 AliRsnAnalysisPhi7TeV.h:16 AliRsnAnalysisPhi7TeV.h:17 AliRsnAnalysisPhi7TeV.h:18 AliRsnAnalysisPhi7TeV.h:19 AliRsnAnalysisPhi7TeV.h:20 AliRsnAnalysisPhi7TeV.h:21 AliRsnAnalysisPhi7TeV.h:22 AliRsnAnalysisPhi7TeV.h:23 AliRsnAnalysisPhi7TeV.h:24 AliRsnAnalysisPhi7TeV.h:25 AliRsnAnalysisPhi7TeV.h:26 AliRsnAnalysisPhi7TeV.h:27 AliRsnAnalysisPhi7TeV.h:28 AliRsnAnalysisPhi7TeV.h:29 AliRsnAnalysisPhi7TeV.h:30 AliRsnAnalysisPhi7TeV.h:31 AliRsnAnalysisPhi7TeV.h:32 AliRsnAnalysisPhi7TeV.h:33 AliRsnAnalysisPhi7TeV.h:34 AliRsnAnalysisPhi7TeV.h:35 AliRsnAnalysisPhi7TeV.h:36 AliRsnAnalysisPhi7TeV.h:37 AliRsnAnalysisPhi7TeV.h:38 AliRsnAnalysisPhi7TeV.h:39 AliRsnAnalysisPhi7TeV.h:40 AliRsnAnalysisPhi7TeV.h:41 AliRsnAnalysisPhi7TeV.h:42 AliRsnAnalysisPhi7TeV.h:43 AliRsnAnalysisPhi7TeV.h:44 AliRsnAnalysisPhi7TeV.h:45 AliRsnAnalysisPhi7TeV.h:46 AliRsnAnalysisPhi7TeV.h:47 AliRsnAnalysisPhi7TeV.h:48 AliRsnAnalysisPhi7TeV.h:49 AliRsnAnalysisPhi7TeV.h:50 AliRsnAnalysisPhi7TeV.h:51 AliRsnAnalysisPhi7TeV.h:52 AliRsnAnalysisPhi7TeV.h:53 AliRsnAnalysisPhi7TeV.h:54 AliRsnAnalysisPhi7TeV.h:55 AliRsnAnalysisPhi7TeV.h:56 AliRsnAnalysisPhi7TeV.h:57 AliRsnAnalysisPhi7TeV.h:58 AliRsnAnalysisPhi7TeV.h:59 AliRsnAnalysisPhi7TeV.h:60 AliRsnAnalysisPhi7TeV.h:61 AliRsnAnalysisPhi7TeV.h:62 AliRsnAnalysisPhi7TeV.h:63 AliRsnAnalysisPhi7TeV.h:64 AliRsnAnalysisPhi7TeV.h:65 AliRsnAnalysisPhi7TeV.h:66 AliRsnAnalysisPhi7TeV.h:67 AliRsnAnalysisPhi7TeV.h:68 AliRsnAnalysisPhi7TeV.h:69 AliRsnAnalysisPhi7TeV.h:70 AliRsnAnalysisPhi7TeV.h:71 AliRsnAnalysisPhi7TeV.h:72 AliRsnAnalysisPhi7TeV.h:73 AliRsnAnalysisPhi7TeV.h:74 AliRsnAnalysisPhi7TeV.h:75 AliRsnAnalysisPhi7TeV.h:76 AliRsnAnalysisPhi7TeV.h:77 AliRsnAnalysisPhi7TeV.h:78 AliRsnAnalysisPhi7TeV.h:79 AliRsnAnalysisPhi7TeV.h:80 AliRsnAnalysisPhi7TeV.h:81 AliRsnAnalysisPhi7TeV.h:82 AliRsnAnalysisPhi7TeV.h:83 AliRsnAnalysisPhi7TeV.h:84 AliRsnAnalysisPhi7TeV.h:85 AliRsnAnalysisPhi7TeV.h:86 AliRsnAnalysisPhi7TeV.h:87 AliRsnAnalysisPhi7TeV.h:88 AliRsnAnalysisPhi7TeV.h:89 AliRsnAnalysisPhi7TeV.h:90 AliRsnAnalysisPhi7TeV.h:91 AliRsnAnalysisPhi7TeV.h:92 AliRsnAnalysisPhi7TeV.h:93 AliRsnAnalysisPhi7TeV.h:94 AliRsnAnalysisPhi7TeV.h:95 AliRsnAnalysisPhi7TeV.h:96 AliRsnAnalysisPhi7TeV.h:97 AliRsnAnalysisPhi7TeV.h:98 AliRsnAnalysisPhi7TeV.h:99 AliRsnAnalysisPhi7TeV.h:100 AliRsnAnalysisPhi7TeV.h:101 AliRsnAnalysisPhi7TeV.h:102 AliRsnAnalysisPhi7TeV.h:103 AliRsnAnalysisPhi7TeV.h:104 AliRsnAnalysisPhi7TeV.h:105 AliRsnAnalysisPhi7TeV.h:106 AliRsnAnalysisPhi7TeV.h:107 AliRsnAnalysisPhi7TeV.h:108 AliRsnAnalysisPhi7TeV.h:109 AliRsnAnalysisPhi7TeV.h:110 AliRsnAnalysisPhi7TeV.h:111 AliRsnAnalysisPhi7TeV.h:112 AliRsnAnalysisPhi7TeV.h:113 AliRsnAnalysisPhi7TeV.h:114 AliRsnAnalysisPhi7TeV.h:115 AliRsnAnalysisPhi7TeV.h:116 AliRsnAnalysisPhi7TeV.h:117 AliRsnAnalysisPhi7TeV.h:118 AliRsnAnalysisPhi7TeV.h:119 AliRsnAnalysisPhi7TeV.h:120 AliRsnAnalysisPhi7TeV.h:121 AliRsnAnalysisPhi7TeV.h:122 AliRsnAnalysisPhi7TeV.h:123 AliRsnAnalysisPhi7TeV.h:124 AliRsnAnalysisPhi7TeV.h:125 AliRsnAnalysisPhi7TeV.h:126 AliRsnAnalysisPhi7TeV.h:127 AliRsnAnalysisPhi7TeV.h:128 AliRsnAnalysisPhi7TeV.h:129 AliRsnAnalysisPhi7TeV.h:130 AliRsnAnalysisPhi7TeV.h:131 AliRsnAnalysisPhi7TeV.h:132 AliRsnAnalysisPhi7TeV.h:133 AliRsnAnalysisPhi7TeV.h:134 AliRsnAnalysisPhi7TeV.h:135 AliRsnAnalysisPhi7TeV.h:136 AliRsnAnalysisPhi7TeV.h:137 AliRsnAnalysisPhi7TeV.h:138 AliRsnAnalysisPhi7TeV.h:139 AliRsnAnalysisPhi7TeV.h:140 AliRsnAnalysisPhi7TeV.h:141 AliRsnAnalysisPhi7TeV.h:142 AliRsnAnalysisPhi7TeV.h:143 AliRsnAnalysisPhi7TeV.h:144 AliRsnAnalysisPhi7TeV.h:145 AliRsnAnalysisPhi7TeV.h:146 AliRsnAnalysisPhi7TeV.h:147 AliRsnAnalysisPhi7TeV.h:148 AliRsnAnalysisPhi7TeV.h:149 AliRsnAnalysisPhi7TeV.h:150 AliRsnAnalysisPhi7TeV.h:151 AliRsnAnalysisPhi7TeV.h:152 AliRsnAnalysisPhi7TeV.h:153 AliRsnAnalysisPhi7TeV.h:154 AliRsnAnalysisPhi7TeV.h:155 AliRsnAnalysisPhi7TeV.h:156 AliRsnAnalysisPhi7TeV.h:157 AliRsnAnalysisPhi7TeV.h:158 AliRsnAnalysisPhi7TeV.h:159 AliRsnAnalysisPhi7TeV.h:160 AliRsnAnalysisPhi7TeV.h:161 AliRsnAnalysisPhi7TeV.h:162 AliRsnAnalysisPhi7TeV.h:163 AliRsnAnalysisPhi7TeV.h:164 AliRsnAnalysisPhi7TeV.h:165 AliRsnAnalysisPhi7TeV.h:166 AliRsnAnalysisPhi7TeV.h:167 AliRsnAnalysisPhi7TeV.h:168 AliRsnAnalysisPhi7TeV.h:169 AliRsnAnalysisPhi7TeV.h:170 AliRsnAnalysisPhi7TeV.h:171 AliRsnAnalysisPhi7TeV.h:172 AliRsnAnalysisPhi7TeV.h:173 AliRsnAnalysisPhi7TeV.h:174 AliRsnAnalysisPhi7TeV.h:175 AliRsnAnalysisPhi7TeV.h:176 AliRsnAnalysisPhi7TeV.h:177 AliRsnAnalysisPhi7TeV.h:178 AliRsnAnalysisPhi7TeV.h:179 AliRsnAnalysisPhi7TeV.h:180 AliRsnAnalysisPhi7TeV.h:181 AliRsnAnalysisPhi7TeV.h:182 AliRsnAnalysisPhi7TeV.h:183 AliRsnAnalysisPhi7TeV.h:184 AliRsnAnalysisPhi7TeV.h:185 AliRsnAnalysisPhi7TeV.h:186 AliRsnAnalysisPhi7TeV.h:187 AliRsnAnalysisPhi7TeV.h:188 AliRsnAnalysisPhi7TeV.h:189 AliRsnAnalysisPhi7TeV.h:190 AliRsnAnalysisPhi7TeV.h:191 AliRsnAnalysisPhi7TeV.h:192 AliRsnAnalysisPhi7TeV.h:193 AliRsnAnalysisPhi7TeV.h:194 AliRsnAnalysisPhi7TeV.h:195 AliRsnAnalysisPhi7TeV.h:196 AliRsnAnalysisPhi7TeV.h:197 AliRsnAnalysisPhi7TeV.h:198 AliRsnAnalysisPhi7TeV.h:199 AliRsnAnalysisPhi7TeV.h:200 AliRsnAnalysisPhi7TeV.h:201 AliRsnAnalysisPhi7TeV.h:202 AliRsnAnalysisPhi7TeV.h:203 AliRsnAnalysisPhi7TeV.h:204 AliRsnAnalysisPhi7TeV.h:205 AliRsnAnalysisPhi7TeV.h:206 AliRsnAnalysisPhi7TeV.h:207 AliRsnAnalysisPhi7TeV.h:208 AliRsnAnalysisPhi7TeV.h:209 AliRsnAnalysisPhi7TeV.h:210 AliRsnAnalysisPhi7TeV.h:211 AliRsnAnalysisPhi7TeV.h:212 AliRsnAnalysisPhi7TeV.h:213 AliRsnAnalysisPhi7TeV.h:214 AliRsnAnalysisPhi7TeV.h:215 AliRsnAnalysisPhi7TeV.h:216 AliRsnAnalysisPhi7TeV.h:217 AliRsnAnalysisPhi7TeV.h:218 AliRsnAnalysisPhi7TeV.h:219 AliRsnAnalysisPhi7TeV.h:220 AliRsnAnalysisPhi7TeV.h:221 AliRsnAnalysisPhi7TeV.h:222 AliRsnAnalysisPhi7TeV.h:223 AliRsnAnalysisPhi7TeV.h:224 AliRsnAnalysisPhi7TeV.h:225 AliRsnAnalysisPhi7TeV.h:226 AliRsnAnalysisPhi7TeV.h:227 AliRsnAnalysisPhi7TeV.h:228 AliRsnAnalysisPhi7TeV.h:229 AliRsnAnalysisPhi7TeV.h:230 AliRsnAnalysisPhi7TeV.h:231 AliRsnAnalysisPhi7TeV.h:232 AliRsnAnalysisPhi7TeV.h:233 AliRsnAnalysisPhi7TeV.h:234 AliRsnAnalysisPhi7TeV.h:235 AliRsnAnalysisPhi7TeV.h:236 AliRsnAnalysisPhi7TeV.h:237 AliRsnAnalysisPhi7TeV.h:238 AliRsnAnalysisPhi7TeV.h:239 AliRsnAnalysisPhi7TeV.h:240 AliRsnAnalysisPhi7TeV.h:241 AliRsnAnalysisPhi7TeV.h:242 AliRsnAnalysisPhi7TeV.h:243 AliRsnAnalysisPhi7TeV.h:244 AliRsnAnalysisPhi7TeV.h:245 AliRsnAnalysisPhi7TeV.h:246 AliRsnAnalysisPhi7TeV.h:247 AliRsnAnalysisPhi7TeV.h:248 AliRsnAnalysisPhi7TeV.h:249 AliRsnAnalysisPhi7TeV.h:250 AliRsnAnalysisPhi7TeV.h:251 AliRsnAnalysisPhi7TeV.h:252 AliRsnAnalysisPhi7TeV.h:253 AliRsnAnalysisPhi7TeV.h:254 AliRsnAnalysisPhi7TeV.h:255 AliRsnAnalysisPhi7TeV.h:256 AliRsnAnalysisPhi7TeV.h:257