#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 "AliAnalysisNetParticleDCA.h"
using namespace std;
ClassImp(AliAnalysisNetParticleDCA)
AliAnalysisNetParticleDCA::AliAnalysisNetParticleDCA() :
AliAnalysisNetParticleBase("DCA", "DCA"),
fESDTrackCutsBkg(NULL),
fHnDCA(NULL) {
AliLog::SetClassDebugLevel("AliAnalysisNetParticleDCA",10);
}
AliAnalysisNetParticleDCA::~AliAnalysisNetParticleDCA() {
}
void AliAnalysisNetParticleDCA::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;
}
Double_t yP;
if (fHelper->GetUsePID() && !fHelper->IsTrackAcceptedRapidity(track, yP))
continue;
Double_t pid[3];
if (!fHelper->IsTrackAcceptedPID(track, pid))
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()) : 1;
Float_t dca[2], cov[3];
if (fESD)
(dynamic_cast<AliESDtrack*>(track))->GetImpactParameters(dca, cov);
else
dca[0] = 1.;
Double_t hnDCA[9] = {fCentralityBin, track->Eta(), yP, track->Phi(), track->Pt(), static_cast<Double_t>(track->Charge()), static_cast<Double_t>(contIdx), static_cast<Double_t>(isDCArAccepted), dca[0]};
fHnDCA->Fill(hnDCA);
}
return;
}
void AliAnalysisNetParticleDCA::CreateHistograms() {
Int_t binHnDCA[9] = {AliAnalysisNetParticleHelper::fgkfHistNBinsCent, AliAnalysisNetParticleHelper::fgkfHistNBinsEta,
AliAnalysisNetParticleHelper::fgkfHistNBinsRap, AliAnalysisNetParticleHelper::fgkfHistNBinsPhi,
AliAnalysisNetParticleHelper::fgkfHistNBinsPt, AliAnalysisNetParticleHelper::fgkfHistNBinsSign,
4, 2, 77};
Double_t minHnDCA[9] = {AliAnalysisNetParticleHelper::fgkfHistRangeCent[0], AliAnalysisNetParticleHelper::fgkfHistRangeEta[0],
AliAnalysisNetParticleHelper::fgkfHistRangeRap[0], AliAnalysisNetParticleHelper::fgkfHistRangePhi[0],
AliAnalysisNetParticleHelper::fgkfHistRangePt[0], AliAnalysisNetParticleHelper::fgkfHistRangeSign[0],
0.5, -0.5, -3.};
Double_t maxHnDCA[9] = {AliAnalysisNetParticleHelper::fgkfHistRangeCent[1], AliAnalysisNetParticleHelper::fgkfHistRangeEta[1],
AliAnalysisNetParticleHelper::fgkfHistRangeRap[1], AliAnalysisNetParticleHelper::fgkfHistRangePhi[1],
AliAnalysisNetParticleHelper::fgkfHistRangePt[1], AliAnalysisNetParticleHelper::fgkfHistRangeSign[1],
4.5, 1.5, 3.};
fHnDCA = new THnSparseD("hnDCA", "cent:etaRec:yRec:phiRec:ptRec:sign:contPart:contSign:DCArAccepted:DCAr", 9, binHnDCA, minHnDCA, maxHnDCA);
fHnDCA->Sumw2();
fHnDCA->GetAxis(0)->SetTitle("centrality");
fHnDCA->GetAxis(1)->SetTitle("#eta_{Rec}");
fHnDCA->GetAxis(2)->SetTitle("#it{y}_{Rec}");
fHnDCA->GetAxis(3)->SetTitle("#varphi_{Rec} (rad)");
fHnDCA->GetAxis(4)->SetTitle("#it{p}_{T,Rec} (GeV/#it{c})");
fHnDCA->GetAxis(5)->SetTitle("sign");
fHnDCA->GetAxis(6)->SetTitle("contPart");
fHnDCA->GetAxis(7)->SetTitle("DCArAccepted");
fHnDCA->GetAxis(8)->SetTitle("DCAr");
fHelper->BinLogAxis(fHnDCA, 4, fESDTrackCuts);
fHelper->BinLogAxis(fHnDCA, 4, 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(8)->Set(76, binsDCAr);
return;
}
Int_t AliAnalysisNetParticleDCA::GetContIdxTrack(Int_t label, Int_t sign) {
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 (fHelper->GetUsePID()) {
if (particle->PdgCode() == (sign*fPdgCode))
contIdx = 1;
else
contIdx = 2;
}
else
contIdx = 1;
}
else if(isSecondaryFromWeakDecay)
contIdx = 3;
else if (isSecondaryFromMaterial)
contIdx = 4;
else
contIdx = -1;
return contIdx;
}
AliAnalysisNetParticleDCA.cxx:1 AliAnalysisNetParticleDCA.cxx:2 AliAnalysisNetParticleDCA.cxx:3 AliAnalysisNetParticleDCA.cxx:4 AliAnalysisNetParticleDCA.cxx:5 AliAnalysisNetParticleDCA.cxx:6 AliAnalysisNetParticleDCA.cxx:7 AliAnalysisNetParticleDCA.cxx:8 AliAnalysisNetParticleDCA.cxx:9 AliAnalysisNetParticleDCA.cxx:10 AliAnalysisNetParticleDCA.cxx:11 AliAnalysisNetParticleDCA.cxx:12 AliAnalysisNetParticleDCA.cxx:13 AliAnalysisNetParticleDCA.cxx:14 AliAnalysisNetParticleDCA.cxx:15 AliAnalysisNetParticleDCA.cxx:16 AliAnalysisNetParticleDCA.cxx:17 AliAnalysisNetParticleDCA.cxx:18 AliAnalysisNetParticleDCA.cxx:19 AliAnalysisNetParticleDCA.cxx:20 AliAnalysisNetParticleDCA.cxx:21 AliAnalysisNetParticleDCA.cxx:22 AliAnalysisNetParticleDCA.cxx:23 AliAnalysisNetParticleDCA.cxx:24 AliAnalysisNetParticleDCA.cxx:25 AliAnalysisNetParticleDCA.cxx:26 AliAnalysisNetParticleDCA.cxx:27 AliAnalysisNetParticleDCA.cxx:28 AliAnalysisNetParticleDCA.cxx:29 AliAnalysisNetParticleDCA.cxx:30 AliAnalysisNetParticleDCA.cxx:31 AliAnalysisNetParticleDCA.cxx:32 AliAnalysisNetParticleDCA.cxx:33 AliAnalysisNetParticleDCA.cxx:34 AliAnalysisNetParticleDCA.cxx:35 AliAnalysisNetParticleDCA.cxx:36 AliAnalysisNetParticleDCA.cxx:37 AliAnalysisNetParticleDCA.cxx:38 AliAnalysisNetParticleDCA.cxx:39 AliAnalysisNetParticleDCA.cxx:40 AliAnalysisNetParticleDCA.cxx:41 AliAnalysisNetParticleDCA.cxx:42 AliAnalysisNetParticleDCA.cxx:43 AliAnalysisNetParticleDCA.cxx:44 AliAnalysisNetParticleDCA.cxx:45 AliAnalysisNetParticleDCA.cxx:46 AliAnalysisNetParticleDCA.cxx:47 AliAnalysisNetParticleDCA.cxx:48 AliAnalysisNetParticleDCA.cxx:49 AliAnalysisNetParticleDCA.cxx:50 AliAnalysisNetParticleDCA.cxx:51 AliAnalysisNetParticleDCA.cxx:52 AliAnalysisNetParticleDCA.cxx:53 AliAnalysisNetParticleDCA.cxx:54 AliAnalysisNetParticleDCA.cxx:55 AliAnalysisNetParticleDCA.cxx:56 AliAnalysisNetParticleDCA.cxx:57 AliAnalysisNetParticleDCA.cxx:58 AliAnalysisNetParticleDCA.cxx:59 AliAnalysisNetParticleDCA.cxx:60 AliAnalysisNetParticleDCA.cxx:61 AliAnalysisNetParticleDCA.cxx:62 AliAnalysisNetParticleDCA.cxx:63 AliAnalysisNetParticleDCA.cxx:64 AliAnalysisNetParticleDCA.cxx:65 AliAnalysisNetParticleDCA.cxx:66 AliAnalysisNetParticleDCA.cxx:67 AliAnalysisNetParticleDCA.cxx:68 AliAnalysisNetParticleDCA.cxx:69 AliAnalysisNetParticleDCA.cxx:70 AliAnalysisNetParticleDCA.cxx:71 AliAnalysisNetParticleDCA.cxx:72 AliAnalysisNetParticleDCA.cxx:73 AliAnalysisNetParticleDCA.cxx:74 AliAnalysisNetParticleDCA.cxx:75 AliAnalysisNetParticleDCA.cxx:76 AliAnalysisNetParticleDCA.cxx:77 AliAnalysisNetParticleDCA.cxx:78 AliAnalysisNetParticleDCA.cxx:79 AliAnalysisNetParticleDCA.cxx:80 AliAnalysisNetParticleDCA.cxx:81 AliAnalysisNetParticleDCA.cxx:82 AliAnalysisNetParticleDCA.cxx:83 AliAnalysisNetParticleDCA.cxx:84 AliAnalysisNetParticleDCA.cxx:85 AliAnalysisNetParticleDCA.cxx:86 AliAnalysisNetParticleDCA.cxx:87 AliAnalysisNetParticleDCA.cxx:88 AliAnalysisNetParticleDCA.cxx:89 AliAnalysisNetParticleDCA.cxx:90 AliAnalysisNetParticleDCA.cxx:91 AliAnalysisNetParticleDCA.cxx:92 AliAnalysisNetParticleDCA.cxx:93 AliAnalysisNetParticleDCA.cxx:94 AliAnalysisNetParticleDCA.cxx:95 AliAnalysisNetParticleDCA.cxx:96 AliAnalysisNetParticleDCA.cxx:97 AliAnalysisNetParticleDCA.cxx:98 AliAnalysisNetParticleDCA.cxx:99 AliAnalysisNetParticleDCA.cxx:100 AliAnalysisNetParticleDCA.cxx:101 AliAnalysisNetParticleDCA.cxx:102 AliAnalysisNetParticleDCA.cxx:103 AliAnalysisNetParticleDCA.cxx:104 AliAnalysisNetParticleDCA.cxx:105 AliAnalysisNetParticleDCA.cxx:106 AliAnalysisNetParticleDCA.cxx:107 AliAnalysisNetParticleDCA.cxx:108 AliAnalysisNetParticleDCA.cxx:109 AliAnalysisNetParticleDCA.cxx:110 AliAnalysisNetParticleDCA.cxx:111 AliAnalysisNetParticleDCA.cxx:112 AliAnalysisNetParticleDCA.cxx:113 AliAnalysisNetParticleDCA.cxx:114 AliAnalysisNetParticleDCA.cxx:115 AliAnalysisNetParticleDCA.cxx:116 AliAnalysisNetParticleDCA.cxx:117 AliAnalysisNetParticleDCA.cxx:118 AliAnalysisNetParticleDCA.cxx:119 AliAnalysisNetParticleDCA.cxx:120 AliAnalysisNetParticleDCA.cxx:121 AliAnalysisNetParticleDCA.cxx:122 AliAnalysisNetParticleDCA.cxx:123 AliAnalysisNetParticleDCA.cxx:124 AliAnalysisNetParticleDCA.cxx:125 AliAnalysisNetParticleDCA.cxx:126 AliAnalysisNetParticleDCA.cxx:127 AliAnalysisNetParticleDCA.cxx:128 AliAnalysisNetParticleDCA.cxx:129 AliAnalysisNetParticleDCA.cxx:130 AliAnalysisNetParticleDCA.cxx:131 AliAnalysisNetParticleDCA.cxx:132 AliAnalysisNetParticleDCA.cxx:133 AliAnalysisNetParticleDCA.cxx:134 AliAnalysisNetParticleDCA.cxx:135 AliAnalysisNetParticleDCA.cxx:136 AliAnalysisNetParticleDCA.cxx:137 AliAnalysisNetParticleDCA.cxx:138 AliAnalysisNetParticleDCA.cxx:139 AliAnalysisNetParticleDCA.cxx:140 AliAnalysisNetParticleDCA.cxx:141 AliAnalysisNetParticleDCA.cxx:142 AliAnalysisNetParticleDCA.cxx:143 AliAnalysisNetParticleDCA.cxx:144 AliAnalysisNetParticleDCA.cxx:145 AliAnalysisNetParticleDCA.cxx:146 AliAnalysisNetParticleDCA.cxx:147 AliAnalysisNetParticleDCA.cxx:148 AliAnalysisNetParticleDCA.cxx:149 AliAnalysisNetParticleDCA.cxx:150 AliAnalysisNetParticleDCA.cxx:151 AliAnalysisNetParticleDCA.cxx:152 AliAnalysisNetParticleDCA.cxx:153 AliAnalysisNetParticleDCA.cxx:154 AliAnalysisNetParticleDCA.cxx:155 AliAnalysisNetParticleDCA.cxx:156 AliAnalysisNetParticleDCA.cxx:157 AliAnalysisNetParticleDCA.cxx:158 AliAnalysisNetParticleDCA.cxx:159 AliAnalysisNetParticleDCA.cxx:160 AliAnalysisNetParticleDCA.cxx:161 AliAnalysisNetParticleDCA.cxx:162 AliAnalysisNetParticleDCA.cxx:163 AliAnalysisNetParticleDCA.cxx:164 AliAnalysisNetParticleDCA.cxx:165 AliAnalysisNetParticleDCA.cxx:166 AliAnalysisNetParticleDCA.cxx:167 AliAnalysisNetParticleDCA.cxx:168 AliAnalysisNetParticleDCA.cxx:169 AliAnalysisNetParticleDCA.cxx:170 AliAnalysisNetParticleDCA.cxx:171 AliAnalysisNetParticleDCA.cxx:172 AliAnalysisNetParticleDCA.cxx:173 AliAnalysisNetParticleDCA.cxx:174 AliAnalysisNetParticleDCA.cxx:175 AliAnalysisNetParticleDCA.cxx:176 AliAnalysisNetParticleDCA.cxx:177 AliAnalysisNetParticleDCA.cxx:178 AliAnalysisNetParticleDCA.cxx:179 AliAnalysisNetParticleDCA.cxx:180 AliAnalysisNetParticleDCA.cxx:181 AliAnalysisNetParticleDCA.cxx:182 AliAnalysisNetParticleDCA.cxx:183 AliAnalysisNetParticleDCA.cxx:184 AliAnalysisNetParticleDCA.cxx:185 AliAnalysisNetParticleDCA.cxx:186 AliAnalysisNetParticleDCA.cxx:187 AliAnalysisNetParticleDCA.cxx:188 AliAnalysisNetParticleDCA.cxx:189 AliAnalysisNetParticleDCA.cxx:190 AliAnalysisNetParticleDCA.cxx:191 AliAnalysisNetParticleDCA.cxx:192 AliAnalysisNetParticleDCA.cxx:193 AliAnalysisNetParticleDCA.cxx:194 AliAnalysisNetParticleDCA.cxx:195 AliAnalysisNetParticleDCA.cxx:196 AliAnalysisNetParticleDCA.cxx:197 AliAnalysisNetParticleDCA.cxx:198 AliAnalysisNetParticleDCA.cxx:199 AliAnalysisNetParticleDCA.cxx:200 AliAnalysisNetParticleDCA.cxx:201 AliAnalysisNetParticleDCA.cxx:202 AliAnalysisNetParticleDCA.cxx:203 AliAnalysisNetParticleDCA.cxx:204 AliAnalysisNetParticleDCA.cxx:205 AliAnalysisNetParticleDCA.cxx:206 AliAnalysisNetParticleDCA.cxx:207 AliAnalysisNetParticleDCA.cxx:208 AliAnalysisNetParticleDCA.cxx:209 AliAnalysisNetParticleDCA.cxx:210 AliAnalysisNetParticleDCA.cxx:211 AliAnalysisNetParticleDCA.cxx:212 AliAnalysisNetParticleDCA.cxx:213 AliAnalysisNetParticleDCA.cxx:214 AliAnalysisNetParticleDCA.cxx:215 AliAnalysisNetParticleDCA.cxx:216 AliAnalysisNetParticleDCA.cxx:217 AliAnalysisNetParticleDCA.cxx:218 AliAnalysisNetParticleDCA.cxx:219 AliAnalysisNetParticleDCA.cxx:220 AliAnalysisNetParticleDCA.cxx:221 AliAnalysisNetParticleDCA.cxx:222 AliAnalysisNetParticleDCA.cxx:223 AliAnalysisNetParticleDCA.cxx:224 AliAnalysisNetParticleDCA.cxx:225 AliAnalysisNetParticleDCA.cxx:226 AliAnalysisNetParticleDCA.cxx:227 AliAnalysisNetParticleDCA.cxx:228 AliAnalysisNetParticleDCA.cxx:229 AliAnalysisNetParticleDCA.cxx:230 AliAnalysisNetParticleDCA.cxx:231 AliAnalysisNetParticleDCA.cxx:232 AliAnalysisNetParticleDCA.cxx:233 AliAnalysisNetParticleDCA.cxx:234