#include "TMath.h"
#include "TAxis.h"
#include "AliESDEvent.h"
#include "AliStack.h"
#include "AliMCEvent.h"
#include "AliESDtrackCuts.h"
#include "AliAODEvent.h"
#include "AliAODMCParticle.h"
#include "AliEbyEPidRatioDCA.h"
using namespace std;
ClassImp(AliEbyEPidRatioDCA)
AliEbyEPidRatioDCA::AliEbyEPidRatioDCA() :
AliEbyEPidRatioBase("DCA", "DCA"),
fESDTrackCutsBkg(NULL),
fHnDCA(NULL) {
AliLog::SetClassDebugLevel("AliEbyEPidRatioDCA",10);
}
AliEbyEPidRatioDCA::~AliEbyEPidRatioDCA() {
}
void AliEbyEPidRatioDCA::Process() {
Float_t etaRange[2];
fESDTrackCutsBkg->GetEtaRange(etaRange[0],etaRange[1]);
Float_t ptRange[2];
fESDTrackCutsBkg->GetPtRange(ptRange[0],ptRange[1]);
for (Int_t idxTrack = 0; idxTrack < fNTracks; ++idxTrack) {
AliVTrack *track = (fESD) ? static_cast<AliVTrack*>(fESD->GetTrack(idxTrack)) : static_cast<AliVTrack*>(fAOD->GetTrack(idxTrack));
if (!fHelper->IsTrackAcceptedBasicCharged(track))
continue;
if (fESD && !fESDTrackCutsBkg->AcceptTrack(dynamic_cast<AliESDtrack*>(track)))
continue;
if (fAOD){
AliAODTrack * trackAOD = dynamic_cast<AliAODTrack*>(track);
if (!trackAOD) {
AliError("Pointer to dynamic_cast<AliAODTrack*>(track) = ZERO");
continue;
}
if (!trackAOD->TestFilterBit(fAODtrackCutBit))
continue;
if(!(track->Pt() > ptRange[0] && track->Pt() <= ptRange[1] && TMath::Abs(track->Eta()) <= etaRange[1]))
continue;
}
Int_t gPdgCode = 0;
Int_t iPid = 0;
Double_t pid[3];
if (fHelper->IsTrackAcceptedPID(track, pid, (AliPID::kPion))) { iPid = 1; gPdgCode = 211;}
else if (fHelper->IsTrackAcceptedPID(track, pid, (AliPID::kKaon))) { iPid = 2; gPdgCode = 321;}
else if (fHelper->IsTrackAcceptedPID(track, pid, (AliPID::kProton))){ iPid = 3; gPdgCode = 2212;}
else { iPid = 0; gPdgCode = 0;}
Double_t yP;
if (!fHelper->IsTrackAcceptedRapidity(track, yP, iPid))
continue;
Bool_t isDCArAccepted = fHelper->IsTrackAcceptedDCA(track);
if (fESD && !fESDTrackCuts->AcceptTrack(dynamic_cast<AliESDtrack*>(track)))
isDCArAccepted = kFALSE;
Int_t contIdx = (fIsMC) ? GetContIdxTrack(TMath::Abs(track->GetLabel()), track->Charge(), gPdgCode) : 1;
Float_t dca[2], cov[3];
if (fESD)
(dynamic_cast<AliESDtrack*>(track))->GetImpactParameters(dca, cov);
else
dca[0] = 1.;
if(iPid != 0) {
Double_t hnDCA[10] = {fCentralityBin,0.,
static_cast<Double_t>(track->Charge()),
track->Eta(),
yP,
track->Phi(),
track->Pt(),
static_cast<Double_t>(contIdx),
static_cast<Double_t>(isDCArAccepted),
dca[0]};
fHnDCA->Fill(hnDCA);
}
Double_t hnDCA[10] = {fCentralityBin,
static_cast<Double_t>(iPid),
static_cast<Double_t>(track->Charge()),
track->Eta(),
yP,
track->Phi(),
track->Pt(),
static_cast<Double_t>(contIdx),
static_cast<Double_t>(isDCArAccepted),
dca[0]};
fHnDCA->Fill(hnDCA);
}
return;
}
void AliEbyEPidRatioDCA::CreateHistograms() {
Int_t binHnDCA[10] = {AliEbyEPidRatioHelper::fgkfHistNBinsCent,4,
AliEbyEPidRatioHelper::fgkfHistNBinsSign,
AliEbyEPidRatioHelper::fgkfHistNBinsEta,
AliEbyEPidRatioHelper::fgkfHistNBinsRap,
AliEbyEPidRatioHelper::fgkfHistNBinsPhi,
AliEbyEPidRatioHelper::fgkfHistNBinsPt,
4, 2, 77};
Double_t minHnDCA[10] = {AliEbyEPidRatioHelper::fgkfHistRangeCent[0],-0.5,
AliEbyEPidRatioHelper::fgkfHistRangeSign[0],
AliEbyEPidRatioHelper::fgkfHistRangeEta[0],
AliEbyEPidRatioHelper::fgkfHistRangeRap[0],
AliEbyEPidRatioHelper::fgkfHistRangePhi[0],
AliEbyEPidRatioHelper::fgkfHistRangePt[0],
0.5, -0.5, -3.};
Double_t maxHnDCA[10] = {AliEbyEPidRatioHelper::fgkfHistRangeCent[1],3.5,
AliEbyEPidRatioHelper::fgkfHistRangeSign[1],
AliEbyEPidRatioHelper::fgkfHistRangeEta[1],
AliEbyEPidRatioHelper::fgkfHistRangeRap[1],
AliEbyEPidRatioHelper::fgkfHistRangePhi[1],
AliEbyEPidRatioHelper::fgkfHistRangePt[1],
4.5, 1.5, 3.};
fHnDCA = new THnSparseD("hnDCA", "cent:pid:etaRec:yRec:phiRec:ptRec:sign:contPart:contSign:DCArAccepted:DCAr", 10, binHnDCA, minHnDCA, maxHnDCA);
fHnDCA->Sumw2();
fHnDCA->GetAxis(0)->SetTitle("centrality");
fHnDCA->GetAxis(1)->SetTitle("N_{ch}|N_{#pi}|N_{K}|N_{p}");
fHnDCA->GetAxis(2)->SetTitle("sign");
fHnDCA->GetAxis(3)->SetTitle("#eta_{Rec}");
fHnDCA->GetAxis(4)->SetTitle("#it{y}_{Rec}");
fHnDCA->GetAxis(5)->SetTitle("#varphi_{Rec} (rad)");
fHnDCA->GetAxis(6)->SetTitle("#it{p}_{T,Rec} (GeV/#it{c})");
fHnDCA->GetAxis(7)->SetTitle("contPart");
fHnDCA->GetAxis(8)->SetTitle("DCArAccepted");
fHnDCA->GetAxis(9)->SetTitle("DCAr");
fHelper->BinLogAxis(fHnDCA, 6, fESDTrackCuts);
fHelper->BinLogAxis(fHnDCA, 6, fESDTrackCutsBkg);
Double_t binsDCAr[77] = {-3.,-2.85,-2.7,-2.55,-2.4,-2.25,-2.1,-1.95,-1.8,-1.65,-1.5,-1.35,-1.2,-1.05,-0.9,-0.75,-0.6,-0.45,-0.3,-0.285,-0.27,-0.255,-0.24,-0.225,-0.21,-0.195,-0.18,-0.165,-0.15,-0.135,-0.12,-0.105,-0.09,-0.075,-0.06,-0.045,-0.03,-0.015,0.,0.015,0.03,0.045,0.06,0.075,0.09,0.105,0.12,0.135,0.15,0.165,0.18,0.195,0.21,0.225,0.24,0.255,0.27,0.285,0.3,0.45,0.6,0.75,0.9,1.05,1.2,1.35,1.5,1.65,1.8,1.95,2.1,2.25,2.4,2.55,2.7,2.85,3.};
fHnDCA->GetAxis(9)->Set(76, binsDCAr);
return;
}
Int_t AliEbyEPidRatioDCA::GetContIdxTrack(Int_t label, Int_t sign, Int_t gPdgCode) {
Int_t contIdx = -1;
AliVParticle* particle = (fESD) ? fMCEvent->GetTrack(label) : static_cast<AliVParticle*>(fArrayMC->At(label));
if (!particle)
return contIdx;
Bool_t isPhysicalPrimary = (fESD) ? fStack->IsPhysicalPrimary(label): (static_cast<AliAODMCParticle*>(particle))->IsPhysicalPrimary();
Bool_t isSecondaryFromWeakDecay = (fESD) ? fStack->IsSecondaryFromWeakDecay(label) : (static_cast<AliAODMCParticle*>(particle))->IsSecondaryFromWeakDecay();
Bool_t isSecondaryFromMaterial = (fESD) ? fStack->IsSecondaryFromMaterial(label) : (static_cast<AliAODMCParticle*>(particle))->IsSecondaryFromMaterial();
if (isPhysicalPrimary) {
if (gPdgCode == 0) {
if (particle->PdgCode() == (sign*gPdgCode))
contIdx = 1;
else
contIdx = 2;
}
else
contIdx = 1;
}
else if(isSecondaryFromWeakDecay)
contIdx = 3;
else if (isSecondaryFromMaterial)
contIdx = 4;
else
contIdx = -1;
return contIdx;
}
AliEbyEPidRatioDCA.cxx:10 AliEbyEPidRatioDCA.cxx:11 AliEbyEPidRatioDCA.cxx:12 AliEbyEPidRatioDCA.cxx:13 AliEbyEPidRatioDCA.cxx:14 AliEbyEPidRatioDCA.cxx:15 AliEbyEPidRatioDCA.cxx:16 AliEbyEPidRatioDCA.cxx:17 AliEbyEPidRatioDCA.cxx:18 AliEbyEPidRatioDCA.cxx:19 AliEbyEPidRatioDCA.cxx:20 AliEbyEPidRatioDCA.cxx:21 AliEbyEPidRatioDCA.cxx:22 AliEbyEPidRatioDCA.cxx:23 AliEbyEPidRatioDCA.cxx:24 AliEbyEPidRatioDCA.cxx:25 AliEbyEPidRatioDCA.cxx:26 AliEbyEPidRatioDCA.cxx:27 AliEbyEPidRatioDCA.cxx:28 AliEbyEPidRatioDCA.cxx:29 AliEbyEPidRatioDCA.cxx:30 AliEbyEPidRatioDCA.cxx:31 AliEbyEPidRatioDCA.cxx:32 AliEbyEPidRatioDCA.cxx:33 AliEbyEPidRatioDCA.cxx:34 AliEbyEPidRatioDCA.cxx:35 AliEbyEPidRatioDCA.cxx:36 AliEbyEPidRatioDCA.cxx:37 AliEbyEPidRatioDCA.cxx:38 AliEbyEPidRatioDCA.cxx:39 AliEbyEPidRatioDCA.cxx:40 AliEbyEPidRatioDCA.cxx:41 AliEbyEPidRatioDCA.cxx:42 AliEbyEPidRatioDCA.cxx:43 AliEbyEPidRatioDCA.cxx:44 AliEbyEPidRatioDCA.cxx:45 AliEbyEPidRatioDCA.cxx:46 AliEbyEPidRatioDCA.cxx:47 AliEbyEPidRatioDCA.cxx:48 AliEbyEPidRatioDCA.cxx:49 AliEbyEPidRatioDCA.cxx:50 AliEbyEPidRatioDCA.cxx:51 AliEbyEPidRatioDCA.cxx:52 AliEbyEPidRatioDCA.cxx:53 AliEbyEPidRatioDCA.cxx:54 AliEbyEPidRatioDCA.cxx:55 AliEbyEPidRatioDCA.cxx:56 AliEbyEPidRatioDCA.cxx:57 AliEbyEPidRatioDCA.cxx:58 AliEbyEPidRatioDCA.cxx:59 AliEbyEPidRatioDCA.cxx:60 AliEbyEPidRatioDCA.cxx:61 AliEbyEPidRatioDCA.cxx:62 AliEbyEPidRatioDCA.cxx:63 AliEbyEPidRatioDCA.cxx:64 AliEbyEPidRatioDCA.cxx:65 AliEbyEPidRatioDCA.cxx:66 AliEbyEPidRatioDCA.cxx:67 AliEbyEPidRatioDCA.cxx:68 AliEbyEPidRatioDCA.cxx:69 AliEbyEPidRatioDCA.cxx:70 AliEbyEPidRatioDCA.cxx:71 AliEbyEPidRatioDCA.cxx:72 AliEbyEPidRatioDCA.cxx:73 AliEbyEPidRatioDCA.cxx:74 AliEbyEPidRatioDCA.cxx:75 AliEbyEPidRatioDCA.cxx:76 AliEbyEPidRatioDCA.cxx:77 AliEbyEPidRatioDCA.cxx:78 AliEbyEPidRatioDCA.cxx:79 AliEbyEPidRatioDCA.cxx:80 AliEbyEPidRatioDCA.cxx:81 AliEbyEPidRatioDCA.cxx:82 AliEbyEPidRatioDCA.cxx:83 AliEbyEPidRatioDCA.cxx:84 AliEbyEPidRatioDCA.cxx:85 AliEbyEPidRatioDCA.cxx:86 AliEbyEPidRatioDCA.cxx:87 AliEbyEPidRatioDCA.cxx:88 AliEbyEPidRatioDCA.cxx:89 AliEbyEPidRatioDCA.cxx:90 AliEbyEPidRatioDCA.cxx:91 AliEbyEPidRatioDCA.cxx:92 AliEbyEPidRatioDCA.cxx:93 AliEbyEPidRatioDCA.cxx:94 AliEbyEPidRatioDCA.cxx:95 AliEbyEPidRatioDCA.cxx:96 AliEbyEPidRatioDCA.cxx:97 AliEbyEPidRatioDCA.cxx:98 AliEbyEPidRatioDCA.cxx:99 AliEbyEPidRatioDCA.cxx:100 AliEbyEPidRatioDCA.cxx:101 AliEbyEPidRatioDCA.cxx:102 AliEbyEPidRatioDCA.cxx:103 AliEbyEPidRatioDCA.cxx:104 AliEbyEPidRatioDCA.cxx:105 AliEbyEPidRatioDCA.cxx:106 AliEbyEPidRatioDCA.cxx:107 AliEbyEPidRatioDCA.cxx:108 AliEbyEPidRatioDCA.cxx:109 AliEbyEPidRatioDCA.cxx:110 AliEbyEPidRatioDCA.cxx:111 AliEbyEPidRatioDCA.cxx:112 AliEbyEPidRatioDCA.cxx:113 AliEbyEPidRatioDCA.cxx:114 AliEbyEPidRatioDCA.cxx:115 AliEbyEPidRatioDCA.cxx:116 AliEbyEPidRatioDCA.cxx:117 AliEbyEPidRatioDCA.cxx:118 AliEbyEPidRatioDCA.cxx:119 AliEbyEPidRatioDCA.cxx:120 AliEbyEPidRatioDCA.cxx:121 AliEbyEPidRatioDCA.cxx:122 AliEbyEPidRatioDCA.cxx:123 AliEbyEPidRatioDCA.cxx:124 AliEbyEPidRatioDCA.cxx:125 AliEbyEPidRatioDCA.cxx:126 AliEbyEPidRatioDCA.cxx:127 AliEbyEPidRatioDCA.cxx:128 AliEbyEPidRatioDCA.cxx:129 AliEbyEPidRatioDCA.cxx:130 AliEbyEPidRatioDCA.cxx:131 AliEbyEPidRatioDCA.cxx:132 AliEbyEPidRatioDCA.cxx:133 AliEbyEPidRatioDCA.cxx:134 AliEbyEPidRatioDCA.cxx:135 AliEbyEPidRatioDCA.cxx:136 AliEbyEPidRatioDCA.cxx:137 AliEbyEPidRatioDCA.cxx:138 AliEbyEPidRatioDCA.cxx:139 AliEbyEPidRatioDCA.cxx:140 AliEbyEPidRatioDCA.cxx:141 AliEbyEPidRatioDCA.cxx:142 AliEbyEPidRatioDCA.cxx:143 AliEbyEPidRatioDCA.cxx:144 AliEbyEPidRatioDCA.cxx:145 AliEbyEPidRatioDCA.cxx:146 AliEbyEPidRatioDCA.cxx:147 AliEbyEPidRatioDCA.cxx:148 AliEbyEPidRatioDCA.cxx:149 AliEbyEPidRatioDCA.cxx:150 AliEbyEPidRatioDCA.cxx:151 AliEbyEPidRatioDCA.cxx:152 AliEbyEPidRatioDCA.cxx:153 AliEbyEPidRatioDCA.cxx:154 AliEbyEPidRatioDCA.cxx:155 AliEbyEPidRatioDCA.cxx:156 AliEbyEPidRatioDCA.cxx:157 AliEbyEPidRatioDCA.cxx:158 AliEbyEPidRatioDCA.cxx:159 AliEbyEPidRatioDCA.cxx:160 AliEbyEPidRatioDCA.cxx:161 AliEbyEPidRatioDCA.cxx:162 AliEbyEPidRatioDCA.cxx:163 AliEbyEPidRatioDCA.cxx:164 AliEbyEPidRatioDCA.cxx:165 AliEbyEPidRatioDCA.cxx:166 AliEbyEPidRatioDCA.cxx:167 AliEbyEPidRatioDCA.cxx:168 AliEbyEPidRatioDCA.cxx:169 AliEbyEPidRatioDCA.cxx:170 AliEbyEPidRatioDCA.cxx:171 AliEbyEPidRatioDCA.cxx:172 AliEbyEPidRatioDCA.cxx:173 AliEbyEPidRatioDCA.cxx:174 AliEbyEPidRatioDCA.cxx:175 AliEbyEPidRatioDCA.cxx:176 AliEbyEPidRatioDCA.cxx:177 AliEbyEPidRatioDCA.cxx:178 AliEbyEPidRatioDCA.cxx:179 AliEbyEPidRatioDCA.cxx:180 AliEbyEPidRatioDCA.cxx:181 AliEbyEPidRatioDCA.cxx:182 AliEbyEPidRatioDCA.cxx:183 AliEbyEPidRatioDCA.cxx:184 AliEbyEPidRatioDCA.cxx:185 AliEbyEPidRatioDCA.cxx:186 AliEbyEPidRatioDCA.cxx:187 AliEbyEPidRatioDCA.cxx:188 AliEbyEPidRatioDCA.cxx:189 AliEbyEPidRatioDCA.cxx:190 AliEbyEPidRatioDCA.cxx:191 AliEbyEPidRatioDCA.cxx:192 AliEbyEPidRatioDCA.cxx:193 AliEbyEPidRatioDCA.cxx:194 AliEbyEPidRatioDCA.cxx:195 AliEbyEPidRatioDCA.cxx:196 AliEbyEPidRatioDCA.cxx:197 AliEbyEPidRatioDCA.cxx:198 AliEbyEPidRatioDCA.cxx:199 AliEbyEPidRatioDCA.cxx:200 AliEbyEPidRatioDCA.cxx:201 AliEbyEPidRatioDCA.cxx:202 AliEbyEPidRatioDCA.cxx:203 AliEbyEPidRatioDCA.cxx:204 AliEbyEPidRatioDCA.cxx:205 AliEbyEPidRatioDCA.cxx:206 AliEbyEPidRatioDCA.cxx:207 AliEbyEPidRatioDCA.cxx:208 AliEbyEPidRatioDCA.cxx:209 AliEbyEPidRatioDCA.cxx:210 AliEbyEPidRatioDCA.cxx:211 AliEbyEPidRatioDCA.cxx:212 AliEbyEPidRatioDCA.cxx:213 AliEbyEPidRatioDCA.cxx:214 AliEbyEPidRatioDCA.cxx:215 AliEbyEPidRatioDCA.cxx:216 AliEbyEPidRatioDCA.cxx:217 AliEbyEPidRatioDCA.cxx:218 AliEbyEPidRatioDCA.cxx:219 AliEbyEPidRatioDCA.cxx:220 AliEbyEPidRatioDCA.cxx:221 AliEbyEPidRatioDCA.cxx:222 AliEbyEPidRatioDCA.cxx:223 AliEbyEPidRatioDCA.cxx:224 AliEbyEPidRatioDCA.cxx:225 AliEbyEPidRatioDCA.cxx:226 AliEbyEPidRatioDCA.cxx:227 AliEbyEPidRatioDCA.cxx:228 AliEbyEPidRatioDCA.cxx:229 AliEbyEPidRatioDCA.cxx:230 AliEbyEPidRatioDCA.cxx:231 AliEbyEPidRatioDCA.cxx:232 AliEbyEPidRatioDCA.cxx:233 AliEbyEPidRatioDCA.cxx:234 AliEbyEPidRatioDCA.cxx:235 AliEbyEPidRatioDCA.cxx:236 AliEbyEPidRatioDCA.cxx:237 AliEbyEPidRatioDCA.cxx:238 AliEbyEPidRatioDCA.cxx:239 AliEbyEPidRatioDCA.cxx:240 AliEbyEPidRatioDCA.cxx:241 AliEbyEPidRatioDCA.cxx:242 AliEbyEPidRatioDCA.cxx:243 AliEbyEPidRatioDCA.cxx:244 AliEbyEPidRatioDCA.cxx:245 AliEbyEPidRatioDCA.cxx:246 AliEbyEPidRatioDCA.cxx:247 AliEbyEPidRatioDCA.cxx:248 AliEbyEPidRatioDCA.cxx:249 AliEbyEPidRatioDCA.cxx:250 AliEbyEPidRatioDCA.cxx:251 AliEbyEPidRatioDCA.cxx:252 AliEbyEPidRatioDCA.cxx:253 AliEbyEPidRatioDCA.cxx:254