8 #define AliAnalysisTaskV0QA_cxx
17 #include "AliAnalysisTaskSE.h"
18 #include "AliTrackReference.h"
19 #include "AliKFParticle.h"
20 #include "AliKFVertex.h"
21 #include "AliVertexerTracks.h"
22 #include "AliESDEvent.h"
23 #include "AliESDInputHandler.h"
24 #include "AliMCEvent.h"
25 #include "AliMCEventHandler.h"
29 #include "AliCentrality.h"
46 fgConvGamGeantIndex(0),
47 feNegConvGamGeantIndex(0),
48 fePosConvGamGeantIndex(0),
49 feNegConvGamGeantLength(0),
50 fePosConvGamGeantLength(0),
51 feNegConvGamSingleRecIndex(0),
52 fePosConvGamSingleRecIndex(0),
53 feNegConvGamV0RecIndex(0),
54 fePosConvGamV0RecIndex(0),
55 fConvGamV0RecIndexPos(0),
56 fConvGamV0RecIndexNeg(0),
58 flDecayLGeantIndex(0),
59 fpiNegDecayLGeantIndex(0),
60 fpPosDecayLGeantIndex(0),
61 fpiNegDecayLGeantLength(0),
62 fpPosDecayLGeantLength(0),
63 fpiNegDecayLSingleRecIndex(0),
64 fpPosDecayLSingleRecIndex(0),
65 fpiNegDecayLV0RecIndex(0),
66 fpPosDecayLV0RecIndex(0),
67 fDecayLV0RecIndexPos(0),
68 fDecayLV0RecIndexNeg(0),
70 falDecayALGeantIndex(0),
71 fpiPosDecayALGeantIndex(0),
72 fapNegDecayALGeantIndex(0),
73 fpiPosDecayALGeantLength(0),
74 fapNegDecayALGeantLength(0),
75 fpiPosDecayALSingleRecIndex(0),
76 fapNegDecayALSingleRecIndex(0),
77 fpiPosDecayALV0RecIndex(0),
78 fapNegDecayALV0RecIndex(0),
79 fDecayALV0RecIndexPos(0),
80 fDecayALV0RecIndexNeg(0),
82 fK0DecayK0GeantIndex(0),
83 fpiNegDecayK0GeantIndex(0),
84 fpiPosDecayK0GeantIndex(0),
85 fpiNegDecayK0GeantLength(0),
86 fpiPosDecayK0GeantLength(0),
87 fpiNegDecayK0SingleRecIndex(0),
88 fpiPosDecayK0SingleRecIndex(0),
89 fpiNegDecayK0V0RecIndex(0),
90 fpiPosDecayK0V0RecIndex(0),
91 fDecayK0V0RecIndexPos(0),
92 fDecayK0V0RecIndexNeg(0),
115 for(
Int_t i=0;i<100000;i++) fLabelsTPC[i] = 0;
132 fgConvGamGeantIndex(0),
133 feNegConvGamGeantIndex(0),
134 fePosConvGamGeantIndex(0),
135 feNegConvGamGeantLength(0),
136 fePosConvGamGeantLength(0),
137 feNegConvGamSingleRecIndex(0),
138 fePosConvGamSingleRecIndex(0),
139 feNegConvGamV0RecIndex(0),
140 fePosConvGamV0RecIndex(0),
141 fConvGamV0RecIndexPos(0),
142 fConvGamV0RecIndexNeg(0),
144 flDecayLGeantIndex(0),
145 fpiNegDecayLGeantIndex(0),
146 fpPosDecayLGeantIndex(0),
147 fpiNegDecayLGeantLength(0),
148 fpPosDecayLGeantLength(0),
149 fpiNegDecayLSingleRecIndex(0),
150 fpPosDecayLSingleRecIndex(0),
151 fpiNegDecayLV0RecIndex(0),
152 fpPosDecayLV0RecIndex(0),
153 fDecayLV0RecIndexPos(0),
154 fDecayLV0RecIndexNeg(0),
156 falDecayALGeantIndex(0),
157 fpiPosDecayALGeantIndex(0),
158 fapNegDecayALGeantIndex(0),
159 fpiPosDecayALGeantLength(0),
160 fapNegDecayALGeantLength(0),
161 fpiPosDecayALSingleRecIndex(0),
162 fapNegDecayALSingleRecIndex(0),
163 fpiPosDecayALV0RecIndex(0),
164 fapNegDecayALV0RecIndex(0),
165 fDecayALV0RecIndexPos(0),
166 fDecayALV0RecIndexNeg(0),
168 fK0DecayK0GeantIndex(0),
169 fpiNegDecayK0GeantIndex(0),
170 fpiPosDecayK0GeantIndex(0),
171 fpiNegDecayK0GeantLength(0),
172 fpiPosDecayK0GeantLength(0),
173 fpiNegDecayK0SingleRecIndex(0),
174 fpiPosDecayK0SingleRecIndex(0),
175 fpiNegDecayK0V0RecIndex(0),
176 fpiPosDecayK0V0RecIndex(0),
177 fDecayK0V0RecIndexPos(0),
178 fDecayK0V0RecIndexNeg(0),
280 fclRefsP =
new TClonesArray(
"AliTrackReference");
281 fclRefsN =
new TClonesArray(
"AliTrackReference");
286 AliLog::SetGlobalLogLevel(AliLog::kError);
288 DefineOutput(1, TList::Class());
537 TString axisName[38]={
"ptGammaGeant",
545 "TPCTrackLengthEPlusGeant",
549 "TPCTrackLengthEMinusGeant",
550 "ptResEPlusRecSingle",
553 "bXYZEPlusRecSingle",
554 "sigbXYZEPlusRecSingle",
555 "NclsITSEPlusRecSingle",
556 "NclsTPCEPlusRecSingle",
557 "statusRecSinglePos",
558 "ptResEMinusRecSingle",
559 "etaEMinusRecSingle",
560 "phiEMinusRecSingle",
561 "bXYZEMinusRecSingle",
562 "sigbXYZEMinusRecSingle",
563 "NclsITSEMinusRecSingle",
564 "NclsTPCEMinusRecSingle",
565 "statusRecSingleNeg",
579 for (
Int_t iaxis=0; iaxis<
fDim; iaxis++){
580 fSparseV0->GetAxis(iaxis)->SetName(axisName[iaxis]);
581 fSparseV0->GetAxis(iaxis)->SetTitle(axisName[iaxis]);
584 TString axisNameK0[38]={
"ptK0Geant",
592 "TPCTrackLengthPiPlusGeant",
596 "TPCTrackLengthPiMinusGeant",
597 "ptResPiPlusRecSingle",
598 "etaPiPlusRecSingle",
599 "phiPiPlusRecSingle",
600 "bXYZPiPlusRecSingle",
601 "sigbXYZPiPlusRecSingle",
602 "NclsITSPiPlusRecSingle",
603 "NclsTPCPiPlusRecSingle",
604 "statusRecSinglePos",
605 "ptResPiMinusRecSingle",
606 "etaPiMinusRecSingle",
607 "phiPiMinusRecSingle",
608 "bXYZPiMinusRecSingle",
609 "sigbXYZPiMinusRecSingle",
610 "NclsITSPiMinusRecSingle",
611 "NclsTPCPiMinusRecSingle",
612 "statusRecSingleNeg",
626 for (
Int_t iaxis=0; iaxis<
fDim; iaxis++){
627 fSparseK0->GetAxis(iaxis)->SetName(axisNameK0[iaxis]);
628 fSparseK0->GetAxis(iaxis)->SetTitle(axisNameK0[iaxis]);
631 TString axisNameL[38]={
"ptLGeant",
639 "TPCTrackLengthPPlusGeant",
643 "TPCTrackLengthPiMinusGeant",
644 "ptResPPlusRecSingle",
647 "bXYZPPlusRecSingle",
648 "sigbXYZPPlusRecSingle",
649 "NclsITSPPlusRecSingle",
650 "NclsTPCPPlusRecSingle",
651 "statusRecSinglePos",
652 "ptResPiMinusRecSingle",
653 "etaPiMinusRecSingle",
654 "phiPiMinusRecSingle",
655 "bXYZPiMinusRecSingle",
656 "sigbXYZPiMinusRecSingle",
657 "NclsITSPiMinusRecSingle",
658 "NclsTPCPiMinusRecSingle",
659 "statusRecSingleNeg",
672 for (
Int_t iaxis=0; iaxis<
fDim; iaxis++){
673 fSparseL->GetAxis(iaxis)->SetName(axisNameL[iaxis]);
674 fSparseL->GetAxis(iaxis)->SetTitle(axisNameL[iaxis]);
677 TString axisNameAL[38]={
"ptALGeant",
685 "TPCTrackLengthPiPlusGeant",
689 "TPCTrackLengthAPMinusGeant",
690 "ptResPiPlusRecSingle",
691 "etaPiPlusRecSingle",
692 "phiPiPlusRecSingle",
693 "bXYZPiPlusRecSingle",
694 "sigbXYZPiPlusRecSingle",
695 "NclsITSPiPlusRecSingle",
696 "NclsTPCPiPlusRecSingle",
697 "statusRecSinglePos",
698 "ptResAPMinusRecSingle",
699 "etaAPMinusRecSingle",
700 "phiAPMinusRecSingle",
701 "bXYZAPMinusRecSingle",
702 "sigbXYZAPMinusRecSingle",
703 "NclsITSAPMinusRecSingle",
704 "NclsTPCAPMinusRecSingle",
705 "statusRecSingleNeg",
719 for (
Int_t iaxis=0; iaxis<
fDim; iaxis++){
720 fSparseAL->GetAxis(iaxis)->SetName(axisNameAL[iaxis]);
721 fSparseAL->GetAxis(iaxis)->SetTitle(axisNameAL[iaxis]);
752 fMCtruth = (AliMCEventHandler*)((AliAnalysisManager::GetAnalysisManager())->GetMCtruthEventHandler());
757 Double_t lineCutZRSlope=tan(2*atan(exp(-maxEta)));
762 Int_t piNegLIndex=-1;
764 Int_t apNegALIndex=-1;
765 Int_t piPosALIndex=-1;
829 AliKFVertex primVtx(*(
fESD->GetPrimaryVertex()));
840 for (
Int_t iTracks = 0; iTracks <
fMCtruth->MCEvent()->GetNumberOfTracks(); iTracks++) {
843 TParticle* particle =
fStack->Particle(iTracks);
848 Printf(
"ERROR: Could not receive particle %d (mc loop)", iTracks);
852 if(particle->Pt()<0.050)
continue;
853 if(TMath::Abs(particle->Eta())> maxEta)
continue;
856 if (particle->GetPdgCode()== 22){
859 if(particle->GetMother(0) >-1 &&
fStack->Particle(particle->GetMother(0))->GetPdgCode() == 22){
863 if(particle->GetMother(0) >=
fStack->GetNprimary()){
867 TParticle* ePos = NULL;
868 TParticle* eNeg = NULL;
872 if(particle->GetNDaughters() >= 2){
873 for(
Int_t daughterIndex=particle->GetFirstDaughter();daughterIndex<=particle->GetLastDaughter();daughterIndex++){
874 TParticle *tmpDaughter =
fStack->Particle(daughterIndex);
875 if(tmpDaughter->GetUniqueID() == 5){
876 if(tmpDaughter->GetPdgCode() == 11){
878 elecGIndex=daughterIndex;
880 else if(tmpDaughter->GetPdgCode() == -11){
882 posiGIndex=daughterIndex;
889 if(ePos == NULL || eNeg == NULL){
893 if(TMath::Abs(ePos->Eta())> maxEta || TMath::Abs(eNeg->Eta())> maxEta){
897 if(ePos->R()> maxVertex ){
902 if( (TMath::Abs(ePos->Vz()) * lineCutZRSlope - lineCutZValue) > ePos->R() ){
912 AliMCParticle *mcParticlePos = (AliMCParticle*) (
fMCtruth->MCEvent()->GetTrack(posiGIndex));
913 if(!mcParticlePos)
continue;
916 Float_t tpcTrackLengthePos = mcParticlePos->GetTPCTrackLength(
fESD->GetMagneticField(),0.05,counter,3.0);
920 int nPointsP =
fclRefsP->GetEntries();
925 for(
int iPoint=0; iPoint<nPointsP; iPoint++) {
926 AliTrackReference *ref = (AliTrackReference*)
fclRefsP->At(iPoint);
932 for(
int i=0; i<
fRefTPC->GetEntries(); i++) {
933 AliTrackReference *ref = (AliTrackReference*)(*
fRefTPC)[i];
938 AliTrackReference* aRef = (AliTrackReference*)(*
fRefTPC)[iPoint];
939 if (aRef->GetTrack() != posiGIndex )
break;
949 AliMCParticle *mcParticleNeg = (AliMCParticle*) (
fMCtruth->MCEvent()->GetTrack(elecGIndex));
950 if(!mcParticleNeg)
continue;
953 Float_t tpcTrackLengtheNeg = mcParticleNeg->GetTPCTrackLength(
fESD->GetMagneticField(),0.05,counterN,3.0);
954 int nPointsN =
fclRefsN->GetEntries();
959 for(
int iPoint=0; iPoint<nPointsN; iPoint++) {
960 AliTrackReference *ref = (AliTrackReference*)
fclRefsN->At(iPoint);
966 for(
int i=0; i<
fRefTPC->GetEntries(); i++) {
967 AliTrackReference *ref = (AliTrackReference*)(*
fRefTPC)[i];
972 AliTrackReference* aRef = (AliTrackReference*)(*
fRefTPC)[iPoint];
973 if (aRef->GetTrack() != elecGIndex )
break;
979 if ( labelNegRefs==0 || labelPosRefs==0)
continue;
994 TParticle* piPos = NULL;
995 TParticle* piNeg = NULL;
999 if (particle->GetPdgCode()== 310){
1000 if(particle->GetNDaughters() == 2){
1001 for(
Int_t daughterIndex=particle->GetFirstDaughter();daughterIndex<=particle->GetLastDaughter();daughterIndex++){
1002 TParticle *tmpDaughter =
fStack->Particle(daughterIndex);
1003 if(tmpDaughter->GetPdgCode() == 211){
1007 else if(tmpDaughter->GetPdgCode() == -211){
1008 piNeg = tmpDaughter;
1014 if(piPos == NULL || piNeg == NULL){
1018 if(TMath::Abs(piPos->Eta())> maxEta || TMath::Abs(piNeg->Eta())> maxEta){
1022 if(piPos->R()> maxVertex ){
1027 if( (TMath::Abs(piPos->Vz()) * lineCutZRSlope - lineCutZValue) > piPos->R() ){
1037 if(!mcParticlePos)
continue;
1040 Float_t tpcTrackLengthePos = mcParticlePos->GetTPCTrackLength(
fESD->GetMagneticField(),0.05,counter,3.0);
1043 int nPointsP =
fclRefsP->GetEntries();
1047 for(
int iPoint=0; iPoint<nPointsP; iPoint++) {
1048 AliTrackReference *ref = (AliTrackReference*)
fclRefsP->At(iPoint);
1054 for(
int i=0; i<
fRefTPC->GetEntries(); i++) {
1055 AliTrackReference *ref = (AliTrackReference*)(*
fRefTPC)[i];
1060 AliTrackReference* aRef = (AliTrackReference*)(*
fRefTPC)[iPoint];
1072 if(!mcParticleNeg)
continue;
1075 Float_t tpcTrackLengtheNeg = mcParticleNeg->GetTPCTrackLength(
fESD->GetMagneticField(),0.05,counterN,3.0);
1077 int nPointsN =
fclRefsN->GetEntries();
1081 for(
int iPoint=0; iPoint<nPointsN; iPoint++) {
1082 AliTrackReference *ref = (AliTrackReference*)
fclRefsN->At(iPoint);
1088 for(
int i=0; i<
fRefTPC->GetEntries(); i++) {
1089 AliTrackReference *ref = (AliTrackReference*)(*
fRefTPC)[i];
1094 AliTrackReference* aRef = (AliTrackReference*)(*
fRefTPC)[iPoint];
1099 if ( labelNegRefs==0 || labelPosRefs==0)
continue;
1113 TParticle* pPos = NULL;
1114 TParticle* piNegL = NULL;
1119 if (particle->GetPdgCode()== 3122){
1121 if(particle->GetNDaughters() == 2){
1122 for(
Int_t daughterIndex=particle->GetFirstDaughter();daughterIndex<=particle->GetLastDaughter();daughterIndex++){
1123 TParticle *tmpDaughter =
fStack->Particle(daughterIndex);
1124 if(tmpDaughter->GetPdgCode() == 2212){
1126 pPosLIndex=daughterIndex;
1128 else if(tmpDaughter->GetPdgCode() == -211){
1129 piNegL = tmpDaughter;
1130 piNegLIndex=daughterIndex;
1135 if(pPos == NULL || piNegL == NULL){
1139 if(TMath::Abs(pPos->Eta())> maxEta || TMath::Abs(piNegL->Eta())> maxEta){
1143 if(pPos->R()> maxVertex ){
1148 if( (TMath::Abs(pPos->Vz()) * lineCutZRSlope - lineCutZValue) > pPos->R() ){
1158 AliMCParticle *mcParticlePos = (AliMCParticle*) (
fMCtruth->MCEvent()->GetTrack(pPosLIndex));
1159 if(!mcParticlePos)
continue;
1162 Float_t tpcTrackLengthePos = mcParticlePos->GetTPCTrackLength(
fESD->GetMagneticField(),0.05,counter,3.0);
1165 int nPointsP =
fclRefsP->GetEntries();
1169 for(
int iPoint=0; iPoint<nPointsP; iPoint++) {
1170 AliTrackReference *ref = (AliTrackReference*)
fclRefsP->At(iPoint);
1176 for(
int i=0; i<
fRefTPC->GetEntries(); i++) {
1177 AliTrackReference *ref = (AliTrackReference*)(*
fRefTPC)[i];
1182 AliTrackReference* aRef = (AliTrackReference*)(*
fRefTPC)[iPoint];
1183 if (aRef->GetTrack() != pPosLIndex )
break;
1193 AliMCParticle *mcParticleNeg = (AliMCParticle*) (
fMCtruth->MCEvent()->GetTrack(piNegLIndex));
1194 if(!mcParticleNeg)
continue;
1197 Float_t tpcTrackLengtheNeg = mcParticleNeg->GetTPCTrackLength(
fESD->GetMagneticField(),0.05,counterN,3.0);
1199 int nPointsN =
fclRefsN->GetEntries();
1203 for(
int iPoint=0; iPoint<nPointsN; iPoint++) {
1204 AliTrackReference *ref = (AliTrackReference*)
fclRefsN->At(iPoint);
1210 for(
int i=0; i<
fRefTPC->GetEntries(); i++) {
1211 AliTrackReference *ref = (AliTrackReference*)(*
fRefTPC)[i];
1216 AliTrackReference* aRef = (AliTrackReference*)(*
fRefTPC)[iPoint];
1217 if (aRef->GetTrack() != piNegLIndex )
break;
1221 if ( labelNegRefs==0 || labelPosRefs==0)
continue;
1240 TParticle* apNeg = NULL;
1241 TParticle* piPosAL = NULL;
1246 if (particle->GetPdgCode()== -3122){
1248 if(particle->GetNDaughters() == 2){
1249 for(
Int_t daughterIndex=particle->GetFirstDaughter();daughterIndex<=particle->GetLastDaughter();daughterIndex++){
1250 TParticle *tmpDaughter =
fStack->Particle(daughterIndex);
1251 if(tmpDaughter->GetPdgCode() == -2212){
1253 apNegALIndex=daughterIndex;
1255 else if(tmpDaughter->GetPdgCode() == 211){
1256 piPosAL = tmpDaughter;
1257 piPosALIndex=daughterIndex;
1262 if(apNeg == NULL || piPosAL == NULL){
1266 if(TMath::Abs(apNeg->Eta())> maxEta || TMath::Abs(piPosAL->Eta())> maxEta){
1270 if(apNeg->R()> maxVertex ){
1275 if( (TMath::Abs(apNeg->Vz()) * lineCutZRSlope - lineCutZValue) > apNeg->R() ){
1285 AliMCParticle *mcParticlePos = (AliMCParticle*) (
fMCtruth->MCEvent()->GetTrack(piPosALIndex));
1286 if(!mcParticlePos)
continue;
1289 Float_t tpcTrackLengthePos = mcParticlePos->GetTPCTrackLength(
fESD->GetMagneticField(),0.05,counter,3.0);
1291 int nPointsP =
fclRefsP->GetEntries();
1295 for(
int iPoint=0; iPoint<nPointsP; iPoint++) {
1296 AliTrackReference *ref = (AliTrackReference*)
fclRefsP->At(iPoint);
1302 for(
int i=0; i<
fRefTPC->GetEntries(); i++) {
1303 AliTrackReference *ref = (AliTrackReference*)(*
fRefTPC)[i];
1308 AliTrackReference* aRef = (AliTrackReference*)(*
fRefTPC)[iPoint];
1309 if (aRef->GetTrack() != piPosALIndex )
break;
1317 AliMCParticle *mcParticleNeg = (AliMCParticle*) (
fMCtruth->MCEvent()->GetTrack(apNegALIndex));
1318 if(!mcParticleNeg)
continue;
1321 Float_t tpcTrackLengtheNeg = mcParticleNeg->GetTPCTrackLength(
fESD->GetMagneticField(),0.05,counterN,3.0);
1323 int nPointsN =
fclRefsN->GetEntries();
1327 for(
int iPoint=0; iPoint<nPointsN; iPoint++) {
1328 AliTrackReference *ref = (AliTrackReference*)
fclRefsN->At(iPoint);
1334 for(
int i=0; i<
fRefTPC->GetEntries(); i++) {
1335 AliTrackReference *ref = (AliTrackReference*)(*
fRefTPC)[i];
1340 AliTrackReference* aRef = (AliTrackReference*)(*
fRefTPC)[iPoint];
1341 if (aRef->GetTrack() != apNegALIndex )
break;
1347 if ( labelNegRefs==0 || labelPosRefs==0)
continue;
1368 AliKFParticle::SetField(
fESD->GetMagneticField());
1370 const AliESDVertex *pvertex =
fESD->GetPrimaryVertex();
1372 pvertex->GetXYZ(xyzVtx);
1374 AliCentrality *esdCentrality =
fESD->GetCentrality();
1377 fCentralityC = esdCentrality->GetCentralityClass10(
"V0M");
1420 while (start >= 0) {
1421 AliTrackReference *ref = (AliTrackReference*)(*
fRefTPC)[start];
1422 if (ref->GetTrack() != label)
return start+1;
1436 for(
Int_t iTracks = 0; iTracks <
fESD->GetNumberOfTracks(); iTracks++){
1438 AliESDtrack* curTrack =
fESD->GetTrack(iTracks);
1450 Int_t labelMC = TMath::Abs(curTrack->GetLabel());
1452 if ( labelMC >
fStack->GetNtrack() )
continue;
1455 TParticle* curParticle =
fStack->Particle(labelMC);
1456 if(curParticle->GetMother(0)==-1){
1461 if(TMath::Abs(curParticle->GetPdgCode()) == 11){
1463 if(
fStack->Particle(curParticle->GetMother(0))->GetPdgCode()==22 ){
1464 if( curParticle->GetUniqueID()!=5 ){
1469 if(curTrack->GetSign()>0){
1485 if(TMath::Abs(curParticle->GetPdgCode()) == 211 || TMath::Abs(curParticle->GetPdgCode())==2212 ){
1487 if(
fStack->Particle(curParticle->GetMother(0))->GetPdgCode()==310 ||
1488 fStack->Particle(curParticle->GetMother(0))->GetPdgCode()==3122 ||
1489 fStack->Particle(curParticle->GetMother(0))->GetPdgCode()==-3122 ){
1492 if(curTrack->GetSign()>0){
1504 if(curTrack->GetSign()>0){
1516 if(curTrack->GetSign()<0){
1536 AliESDtrack* trackPos= NULL;
1537 AliESDtrack* trackNeg= NULL;
1538 Int_t grandMotherPos=-1;
1539 Int_t grandMotherNeg=-1;
1545 for(
Int_t iV0MI = 0; iV0MI <
fESD->GetNumberOfV0s(); iV0MI++) {
1547 AliESDv0 * fV0MIs =
fESD->GetV0(iV0MI);
1550 if ( !fV0MIs->GetOnFlyStatus() ){
1559 AliESDtrack* trackPosTest =
fESD->GetTrack(fV0MIs->GetPindex());
1560 AliESDtrack* trackNegTest =
fESD->GetTrack(fV0MIs->GetNindex());
1563 if ( trackPosTest->GetSign() == trackNegTest->GetSign()){
1577 if( trackPosTest->GetSign() ==1){
1578 trackPos =
fESD->GetTrack(fV0MIs->GetPindex());
1579 trackNeg =
fESD->GetTrack(fV0MIs->GetNindex());
1580 pIndex=fV0MIs->GetPindex();
1581 nIndex=fV0MIs->GetNindex();
1584 if( trackPosTest->GetSign() ==-1){
1585 trackPos =
fESD->GetTrack(fV0MIs->GetNindex());
1586 trackNeg =
fESD->GetTrack(fV0MIs->GetPindex());
1587 pIndex=fV0MIs->GetNindex();
1588 nIndex=fV0MIs->GetPindex();
1592 if(!trackPos)
return;
1593 if(!trackNeg)
return;
1595 Int_t labelNeg=TMath::Abs(trackNeg->GetLabel());
1596 if(labelNeg >
fStack->GetNtrack() )
continue;
1597 TParticle * particleNeg=
fStack->Particle(labelNeg);
1599 Int_t labelPos=TMath::Abs(trackPos->GetLabel());
1600 if(labelPos >
fStack->GetNtrack() )
continue;
1601 TParticle * particlePos=
fStack->Particle(labelPos);
1604 if(particlePos->GetMother(0)>-1){
1605 grandMotherPos=
fStack->Particle(particlePos->GetMother(0))->GetMother(0);
1606 motherPos=particlePos->GetMother(0);
1609 if(particleNeg->GetMother(0)>-1){
1610 grandMotherNeg=
fStack->Particle(particleNeg->GetMother(0))->GetMother(0);
1611 motherNeg=particleNeg->GetMother(0);
1614 if(motherPos == motherNeg && motherPos!=-1 ){
1615 if( particlePos->GetPdgCode() ==-11 && particleNeg->GetPdgCode()==11 ){
1629 if( particlePos->GetPdgCode()==211 && particleNeg->GetPdgCode()==-211 ){
1643 if( particlePos->GetPdgCode()==2212 && particleNeg->GetPdgCode()==-211 ){
1657 if( particleNeg->GetPdgCode()==-2212 && particlePos->GetPdgCode()==211 ){
1730 TLorentzVector posSglTrack;
1731 TLorentzVector negSglTrack;
1735 TLorentzVector posV0Track;
1736 TLorentzVector negV0Track;
1737 Double_t posV0Pt,posV0Eta,posV0Phi;
1738 Double_t negV0Pt,negV0Eta,negV0Phi;
1746 Int_t statusSingPos=-1;
1747 Int_t statusSingNeg=-1;
1749 Int_t statusV0Pos=-1;
1750 Int_t statusV0Neg=-1;
1759 ePosSglTrack->GetPxPyPz(ppSgl);
1760 posSglTrack.SetXYZM(ppSgl[0],ppSgl[1],ppSgl[2],massE);
1761 posPt = posSglTrack.Pt();
1762 posEta = posSglTrack.Eta();
1763 posPhi = posSglTrack.Phi();
1764 ePosSglTrack->GetImpactParameters(bPosSgl,bPosCov);
1765 nClsITSPos=ePosSglTrack->GetNcls(0);
1766 nClsTPCPos=ePosSglTrack->GetNcls(1);
1771 posPhi = -2*TMath::Pi();
1783 eNegSglTrack->GetPxPyPz(pmSgl);
1784 negSglTrack.SetXYZM(pmSgl[0],pmSgl[1],pmSgl[2],massE);
1785 negPt = negSglTrack.Pt();
1786 negEta = negSglTrack.Eta();
1787 negPhi = negSglTrack.Phi();
1788 eNegSglTrack->GetImpactParameters(bNegSgl,bNegCov);
1789 nClsITSNeg=eNegSglTrack->GetNcls(0);
1790 nClsTPCNeg=eNegSglTrack->GetNcls(1);
1795 negPhi = -2*TMath::Pi();
1807 posV0Phi = -2*TMath::Pi();
1810 negV0Phi = -2*TMath::Pi();
1814 AliESDtrack* trackPosTest =
fESD->GetTrack(fV0MIs->GetPindex());
1815 AliESDtrack* trackNegTest =
fESD->GetTrack(fV0MIs->GetNindex());
1819 if ( trackPosTest->GetSign()==1 ) {
1820 fV0MIs->GetPPxPyPz(ppV0[0],ppV0[1],ppV0[2]);
1822 fV0MIs->GetNPxPyPz(ppV0[0],ppV0[1],ppV0[2]);
1824 posV0Track.SetXYZM(ppV0[0],ppV0[1],ppV0[2],massE);
1826 posV0Pt = posV0Track.Pt();
1827 posV0Eta = posV0Track.Eta();
1828 posV0Phi = posV0Track.Phi();
1833 posV0Phi = -2*TMath::Pi();
1839 if ( trackNegTest->GetSign()==-1 ) {
1840 fV0MIs->GetNPxPyPz(pmV0[0],pmV0[1],pmV0[2]);
1842 fV0MIs->GetPPxPyPz(pmV0[0],pmV0[1],pmV0[2]);
1844 negV0Track.SetXYZM(pmV0[0],pmV0[1],pmV0[2],massE);
1846 negV0Pt = negV0Track.Pt();
1847 negV0Eta = negV0Track.Eta();
1848 negV0Phi = negV0Track.Phi();
1853 negV0Phi = -2*TMath::Pi();
1858 xrG[0] = ePosPart->Vx();
1859 xrG[1] = ePosPart->Vy();
1860 xrG[2] = ePosPart->Vz();
1863 fValueV0[0] = 1./TMath::Sqrt(gamPart->Pt());
1867 if( gamPart->Phi()>TMath::Pi()){
1868 tmpGPhi=gamPart->Phi()-2*TMath::Pi();
1870 fValueV0[2] = tmpGPhi;
1872 fValueV0[3] = TMath::Sqrt(xrG[0]*xrG[0]+xrG[1]*xrG[1]);
1873 fValueV0[4] = xrG[2];
1876 fValueV0[5] = 1./TMath::Sqrt(ePosPart->Pt());
1877 fValueV0[6] = ePosPart->Eta();
1880 if( ePosPart->Phi()>TMath::Pi()){
1881 tmpPPhi = ePosPart->Phi()-2*TMath::Pi();
1883 fValueV0[7] = tmpPPhi;
1886 fValueV0[9] = 1./TMath::Sqrt(eNegPart->Pt());
1887 fValueV0[10] = eNegPart->Eta();
1890 if( eNegPart->Phi()>TMath::Pi()){
1891 tmpNPhi = eNegPart->Phi()-2*TMath::Pi();
1893 fValueV0[11] = tmpNPhi;
1898 fValueV0[13] = (posPt-ePosPart->Pt())/ePosPart->Pt();
1899 fValueV0[14] = posEta;
1900 fValueV0[15] = posPhi;
1901 fValueV0[16] = TMath::Sqrt( bPosSgl[0]* bPosSgl[0] + bPosSgl[1]* bPosSgl[1] );
1902 fValueV0[17] = TMath::Sqrt( bPosSgl[0]* bPosSgl[0] + bPosSgl[1]* bPosSgl[1] )/TMath::Sqrt(bPosCov[0]*bPosCov[0]+bPosCov[2]*bPosCov[2]);
1903 fValueV0[18] = nClsITSPos;
1904 fValueV0[19] = nClsTPCPos;
1905 fValueV0[20] = statusSingPos;
1908 fValueV0[21] = (negPt-eNegPart->Pt())/eNegPart->Pt();
1909 fValueV0[22] = negEta;
1910 fValueV0[23] = negPhi;
1911 fValueV0[24] = TMath::Sqrt( bNegSgl[0]* bNegSgl[0] + bNegSgl[1]* bNegSgl[1] );
1912 fValueV0[25] = TMath::Sqrt( bNegSgl[0]* bNegSgl[0] + bNegSgl[1]* bNegSgl[1] )/TMath::Sqrt(bNegCov[0]*bNegCov[0]+bNegCov[2]*bNegCov[2]);
1914 fValueV0[26] = nClsITSNeg;
1915 fValueV0[27] = nClsTPCNeg;
1916 fValueV0[28] = statusSingNeg;
1921 fValueV0[29] = (posV0Pt-ePosPart->Pt())/ePosPart->Pt();
1922 fValueV0[30] = posV0Eta;
1923 fValueV0[31] = posV0Phi;
1924 fValueV0[32] = statusV0Pos;
1926 fValueV0[33] = (negV0Pt-eNegPart->Pt())/eNegPart->Pt();
1927 fValueV0[34] = negV0Eta;
1928 fValueV0[35] = negV0Phi;
1929 fValueV0[36] = statusV0Neg;
1953 TLorentzVector posSglTrack;
1954 TLorentzVector negSglTrack;
1958 TLorentzVector posV0Track;
1959 TLorentzVector negV0Track;
1960 Double_t posV0Pt,posV0Eta,posV0Phi;
1961 Double_t negV0Pt,negV0Eta,negV0Phi;
1969 Int_t statusSingPos=-1;
1970 Int_t statusSingNeg=-1;
1972 Int_t statusV0Pos=-1;
1973 Int_t statusV0Neg=-1;
1981 ePosSglTrack->GetPxPyPz(ppSgl);
1982 posSglTrack.SetXYZM(ppSgl[0],ppSgl[1],ppSgl[2],massPi);
1983 posPt = posSglTrack.Pt();
1984 posEta = posSglTrack.Eta();
1985 posPhi = posSglTrack.Phi();
1986 ePosSglTrack->GetImpactParameters(bPosSgl,bPosCov);
1987 nClsITSPos=ePosSglTrack->GetNcls(0);
1988 nClsTPCPos=ePosSglTrack->GetNcls(1);
1993 posPhi = -2*TMath::Pi();
2006 eNegSglTrack->GetPxPyPz(pmSgl);
2007 negSglTrack.SetXYZM(pmSgl[0],pmSgl[1],pmSgl[2],massPi);
2008 negPt = negSglTrack.Pt();
2009 negEta = negSglTrack.Eta();
2010 negPhi = negSglTrack.Phi();
2011 eNegSglTrack->GetImpactParameters(bNegSgl,bNegCov);
2012 nClsITSNeg=eNegSglTrack->GetNcls(0);
2013 nClsTPCNeg=eNegSglTrack->GetNcls(1);
2018 negPhi = -2*TMath::Pi();
2030 posV0Phi = -2*TMath::Pi();
2033 negV0Phi = -2*TMath::Pi();
2037 AliESDtrack* trackPosTest =
fESD->GetTrack(fV0MIs->GetPindex());
2038 AliESDtrack* trackNegTest =
fESD->GetTrack(fV0MIs->GetNindex());
2042 if ( trackPosTest->GetSign()==1 ) {
2043 fV0MIs->GetPPxPyPz(ppV0[0],ppV0[1],ppV0[2]);
2045 fV0MIs->GetNPxPyPz(ppV0[0],ppV0[1],ppV0[2]);
2047 posV0Track.SetXYZM(ppV0[0],ppV0[1],ppV0[2],massPi);
2049 posV0Pt = posV0Track.Pt();
2050 posV0Eta = posV0Track.Eta();
2051 posV0Phi = posV0Track.Phi();
2056 posV0Phi = -2*TMath::Pi();
2062 if ( trackNegTest->GetSign()==-1 ) {
2063 fV0MIs->GetNPxPyPz(pmV0[0],pmV0[1],pmV0[2]);
2065 fV0MIs->GetPPxPyPz(pmV0[0],pmV0[1],pmV0[2]);
2067 negV0Track.SetXYZM(pmV0[0],pmV0[1],pmV0[2],massPi);
2069 negV0Pt = negV0Track.Pt();
2070 negV0Eta = negV0Track.Eta();
2071 negV0Phi = negV0Track.Phi();
2076 negV0Phi = -2*TMath::Pi();
2081 xrG[0] = ePosPart->Vx();
2082 xrG[1] = ePosPart->Vy();
2083 xrG[2] = ePosPart->Vz();
2087 fValueK0[0] = 1./TMath::Sqrt(k0Part->Pt());
2091 if( k0Part->Phi()>TMath::Pi()){
2092 tmpGPhi=k0Part->Phi()-2*TMath::Pi();
2094 fValueK0[2] = tmpGPhi;
2096 fValueK0[3] = TMath::Sqrt(xrG[0]*xrG[0]+xrG[1]*xrG[1]);
2097 fValueK0[4] = xrG[2];
2100 fValueK0[5] = 1./TMath::Sqrt(ePosPart->Pt());
2101 fValueK0[6] = ePosPart->Eta();
2104 if( ePosPart->Phi()>TMath::Pi()){
2105 tmpPPhi = ePosPart->Phi()-2*TMath::Pi();
2107 fValueK0[7] = tmpPPhi;
2110 fValueK0[9] = 1./TMath::Sqrt(eNegPart->Pt());
2111 fValueK0[10] = eNegPart->Eta();
2114 if( eNegPart->Phi()>TMath::Pi()){
2115 tmpNPhi = eNegPart->Phi()-2*TMath::Pi();
2117 fValueK0[11] = tmpNPhi;
2121 fValueK0[13] = (posPt-ePosPart->Pt())/ePosPart->Pt() ;
2122 fValueK0[14] = posEta;
2123 fValueK0[15] = posPhi;
2124 fValueK0[16] = TMath::Sqrt( bPosSgl[0]* bPosSgl[0] + bPosSgl[1]* bPosSgl[1] );
2125 fValueK0[17] = TMath::Sqrt( bPosSgl[0]* bPosSgl[0] + bPosSgl[1]* bPosSgl[1] )/TMath::Sqrt(bPosCov[0]*bPosCov[0]+bPosCov[2]*bPosCov[2]);
2127 fValueK0[18] = nClsITSPos;
2128 fValueK0[19] = nClsTPCPos;
2129 fValueK0[20] = statusSingPos;
2131 fValueK0[21] = (negPt-eNegPart->Pt())/eNegPart->Pt();
2132 fValueK0[22] = negEta;
2133 fValueK0[23] = negPhi;
2134 fValueK0[24] = TMath::Sqrt( bNegSgl[0]* bNegSgl[0]+ bNegSgl[1]* bNegSgl[1] );
2135 fValueK0[25] = TMath::Sqrt( bNegSgl[0]* bNegSgl[0]+ bNegSgl[1]* bNegSgl[1] )/TMath::Sqrt(bNegCov[0]*bNegCov[0]+bNegCov[2]*bNegCov[2]);
2136 fValueK0[26] = nClsITSNeg;
2137 fValueK0[27] = nClsTPCNeg;
2138 fValueK0[28] = statusSingNeg;
2143 fValueK0[29] = (posV0Pt-ePosPart->Pt())/ePosPart->Pt();
2144 fValueK0[30] = posV0Eta;
2145 fValueK0[31] = posV0Phi;
2146 fValueK0[32] = statusV0Pos;
2148 fValueK0[33] = (negV0Pt-eNegPart->Pt())/eNegPart->Pt();
2149 fValueK0[34] = negV0Eta;
2150 fValueK0[35] = negV0Phi;
2151 fValueK0[36] = statusV0Neg;
2178 TLorentzVector posSglTrack;
2179 TLorentzVector negSglTrack;
2183 TLorentzVector posV0Track;
2184 TLorentzVector negV0Track;
2185 Double_t posV0Pt,posV0Eta,posV0Phi;
2186 Double_t negV0Pt,negV0Eta,negV0Phi;
2194 Int_t statusSingPos=-1;
2195 Int_t statusSingNeg=-1;
2197 Int_t statusV0Pos=-1;
2198 Int_t statusV0Neg=-1;
2206 ePosSglTrack->GetPxPyPz(ppSgl);
2207 posSglTrack.SetXYZM(ppSgl[0],ppSgl[1],ppSgl[2],massP);
2208 posPt = posSglTrack.Pt();
2209 posEta = posSglTrack.Eta();
2210 posPhi = posSglTrack.Phi();
2211 ePosSglTrack->GetImpactParameters(bPosSgl,bPosCov);
2212 nClsITSPos=ePosSglTrack->GetNcls(0);
2213 nClsTPCPos=ePosSglTrack->GetNcls(1);
2218 posPhi = -2*TMath::Pi();
2230 eNegSglTrack->GetPxPyPz(pmSgl);
2231 negSglTrack.SetXYZM(pmSgl[0],pmSgl[1],pmSgl[2],massPi);
2232 negPt = negSglTrack.Pt();
2233 negEta = negSglTrack.Eta();
2234 negPhi = negSglTrack.Phi();
2235 eNegSglTrack->GetImpactParameters(bNegSgl,bNegCov);
2236 nClsITSNeg=eNegSglTrack->GetNcls(0);
2237 nClsTPCNeg=eNegSglTrack->GetNcls(1);
2242 negPhi = -2*TMath::Pi();
2254 posV0Phi = -2*TMath::Pi();
2257 negV0Phi = -2*TMath::Pi();
2261 AliESDtrack* trackPosTest =
fESD->GetTrack(fV0MIs->GetPindex());
2262 AliESDtrack* trackNegTest =
fESD->GetTrack(fV0MIs->GetNindex());
2266 if ( trackPosTest->GetSign()==1 ) {
2267 fV0MIs->GetPPxPyPz(ppV0[0],ppV0[1],ppV0[2]);
2269 fV0MIs->GetNPxPyPz(ppV0[0],ppV0[1],ppV0[2]);
2271 posV0Track.SetXYZM(ppV0[0],ppV0[1],ppV0[2],massP);
2273 posV0Pt = posV0Track.Pt();
2274 posV0Eta = posV0Track.Eta();
2275 posV0Phi = posV0Track.Phi();
2280 posV0Phi = -2*TMath::Pi();
2286 if ( trackNegTest->GetSign()==-1 ) {
2287 fV0MIs->GetNPxPyPz(pmV0[0],pmV0[1],pmV0[2]);
2289 fV0MIs->GetPPxPyPz(pmV0[0],pmV0[1],pmV0[2]);
2291 negV0Track.SetXYZM(pmV0[0],pmV0[1],pmV0[2],massPi);
2293 negV0Pt = negV0Track.Pt();
2294 negV0Eta = negV0Track.Eta();
2295 negV0Phi = negV0Track.Phi();
2300 negV0Phi = -2*TMath::Pi();
2305 xrG[0] = ePosPart->Vx();
2306 xrG[1] = ePosPart->Vy();
2307 xrG[2] = ePosPart->Vz();
2310 fValueL[0] = 1./TMath::Sqrt(lPart->Pt());
2314 if( lPart->Phi()>TMath::Pi()){
2315 tmpGPhi=lPart->Phi()-2*TMath::Pi();
2317 fValueL[2] = tmpGPhi;
2319 fValueL[3] = TMath::Sqrt(xrG[0]*xrG[0]+xrG[1]*xrG[1]);
2320 fValueL[4] = xrG[2];
2323 fValueL[5] = 1./TMath::Sqrt(ePosPart->Pt());
2324 fValueL[6] = ePosPart->Eta();
2327 if( ePosPart->Phi()>TMath::Pi()){
2328 tmpPPhi = ePosPart->Phi()-2*TMath::Pi();
2330 fValueL[7] = tmpPPhi;
2333 fValueL[9] = 1./TMath::Sqrt(eNegPart->Pt());
2334 fValueL[10] = eNegPart->Eta();
2337 if( eNegPart->Phi()>TMath::Pi()){
2338 tmpNPhi = eNegPart->Phi()-2*TMath::Pi();
2340 fValueL[11] = tmpNPhi;
2344 fValueL[13] = (posPt-ePosPart->Pt())/ePosPart->Pt();
2345 fValueL[14] = posEta;
2346 fValueL[15] = posPhi;
2347 fValueL[16] = TMath::Sqrt( bPosSgl[0]* bPosSgl[0] + bPosSgl[1]* bPosSgl[1]);
2348 fValueL[17] = TMath::Sqrt( bPosSgl[0]* bPosSgl[0] + bPosSgl[1]* bPosSgl[1] )/TMath::Sqrt(bPosCov[0]*bPosCov[0]+bPosCov[2]*bPosCov[2]);
2349 fValueL[18] = nClsITSPos;
2350 fValueL[19] = nClsTPCPos;
2351 fValueL[20] = statusSingPos;
2353 fValueL[21] = (negPt-eNegPart->Pt())/eNegPart->Pt() ;
2354 fValueL[22] = negEta;
2355 fValueL[23] = negPhi;
2356 fValueL[24] = TMath::Sqrt( bNegSgl[0]* bNegSgl[0] + bNegSgl[1]* bNegSgl[1] );
2357 fValueL[25] = TMath::Sqrt( bNegSgl[0]* bNegSgl[0] + bNegSgl[1]* bNegSgl[1] )/TMath::Sqrt(bNegCov[0]*bNegCov[0]+bNegCov[2]*bNegCov[2]);
2358 fValueL[26] = nClsITSNeg;
2359 fValueL[27] = nClsTPCNeg;
2360 fValueL[28] = statusSingNeg;
2366 fValueL[29] = (posV0Pt-ePosPart->Pt())/ePosPart->Pt();
2367 fValueL[30] = posV0Eta;
2368 fValueL[31] = posV0Phi;
2369 fValueL[32] = statusV0Pos;
2372 fValueL[33] = (negV0Pt-eNegPart->Pt())/eNegPart->Pt();
2373 fValueL[34] = negV0Eta;
2374 fValueL[35] = negV0Phi;
2375 fValueL[36] = statusV0Neg;
2403 TLorentzVector posSglTrack;
2404 TLorentzVector negSglTrack;
2408 TLorentzVector posV0Track;
2409 TLorentzVector negV0Track;
2410 Double_t posV0Pt,posV0Eta,posV0Phi;
2411 Double_t negV0Pt,negV0Eta,negV0Phi;
2419 Int_t statusSingPos=-1;
2420 Int_t statusSingNeg=-1;
2422 Int_t statusV0Pos=-1;
2423 Int_t statusV0Neg=-1;
2432 ePosSglTrack->GetPxPyPz(ppSgl);
2433 posSglTrack.SetXYZM(ppSgl[0],ppSgl[1],ppSgl[2],massPi);
2434 posPt = posSglTrack.Pt();
2435 posEta = posSglTrack.Eta();
2436 posPhi = posSglTrack.Phi();
2437 ePosSglTrack->GetImpactParameters(bPosSgl,bPosCov);
2438 nClsITSPos=ePosSglTrack->GetNcls(0);
2439 nClsTPCPos=ePosSglTrack->GetNcls(1);
2444 posPhi = -2*TMath::Pi();
2456 eNegSglTrack->GetPxPyPz(pmSgl);
2457 negSglTrack.SetXYZM(pmSgl[0],pmSgl[1],pmSgl[2],massP);
2458 negPt = negSglTrack.Pt();
2459 negEta = negSglTrack.Eta();
2460 negPhi = negSglTrack.Phi();
2461 eNegSglTrack->GetImpactParameters(bNegSgl,bNegCov);
2462 nClsITSNeg=eNegSglTrack->GetNcls(0);
2463 nClsTPCNeg=eNegSglTrack->GetNcls(1);
2468 negPhi = -2*TMath::Pi();
2480 posV0Phi = -2*TMath::Pi();
2483 negV0Phi = -2*TMath::Pi();
2487 AliESDtrack* trackPosTest =
fESD->GetTrack(fV0MIs->GetPindex());
2488 AliESDtrack* trackNegTest =
fESD->GetTrack(fV0MIs->GetNindex());
2492 if ( trackPosTest->GetSign()==1 ) {
2493 fV0MIs->GetPPxPyPz(ppV0[0],ppV0[1],ppV0[2]);
2495 fV0MIs->GetNPxPyPz(ppV0[0],ppV0[1],ppV0[2]);
2497 posV0Track.SetXYZM(ppV0[0],ppV0[1],ppV0[2],massPi);
2499 posV0Pt = posV0Track.Pt();
2500 posV0Eta = posV0Track.Eta();
2501 posV0Phi = posV0Track.Phi();
2506 posV0Phi = -2*TMath::Pi();
2512 if ( trackNegTest->GetSign()==-1 ) {
2513 fV0MIs->GetNPxPyPz(pmV0[0],pmV0[1],pmV0[2]);
2515 fV0MIs->GetPPxPyPz(pmV0[0],pmV0[1],pmV0[2]);
2517 negV0Track.SetXYZM(pmV0[0],pmV0[1],pmV0[2],massP);
2519 negV0Pt = negV0Track.Pt();
2520 negV0Eta = negV0Track.Eta();
2521 negV0Phi = negV0Track.Phi();
2526 negV0Phi = -2*TMath::Pi();
2531 xrG[0] = ePosPart->Vx();
2532 xrG[1] = ePosPart->Vy();
2533 xrG[2] = ePosPart->Vz();
2536 fValueAL[0] = 1./TMath::Sqrt(alPart->Pt());
2540 if( alPart->Phi()>TMath::Pi()){
2541 tmpGPhi=alPart->Phi()-2*TMath::Pi();
2543 fValueAL[2] = tmpGPhi;
2545 fValueAL[3] = TMath::Sqrt(xrG[0]*xrG[0]+xrG[1]*xrG[1]);
2546 fValueAL[4] = xrG[2];
2549 fValueAL[5] = 1./TMath::Sqrt(ePosPart->Pt());
2550 fValueAL[6] = ePosPart->Eta();
2553 if( ePosPart->Phi()>TMath::Pi()){
2554 tmpPPhi = ePosPart->Phi()-2*TMath::Pi();
2556 fValueAL[7] = tmpPPhi;
2559 fValueAL[9] = 1./TMath::Sqrt(eNegPart->Pt());
2560 fValueAL[10] = eNegPart->Eta();
2563 if( eNegPart->Phi()>TMath::Pi()){
2564 tmpNPhi = eNegPart->Phi()-2*TMath::Pi();
2566 fValueAL[11] = tmpNPhi;
2570 fValueAL[13] = (posPt-ePosPart->Pt())/ePosPart->Pt();
2571 fValueAL[14] = posEta;
2572 fValueAL[15] = posPhi;
2573 fValueAL[16] = TMath::Sqrt( bPosSgl[0]* bPosSgl[0] + bPosSgl[1]* bPosSgl[1]);
2574 fValueAL[17] = TMath::Sqrt( bPosSgl[0]* bPosSgl[0] + bPosSgl[1]* bPosSgl[1] )/TMath::Sqrt(bPosCov[0]*bPosCov[0]+bPosCov[2]*bPosCov[2]);
2575 fValueAL[18] = nClsITSPos;
2576 fValueAL[19] = nClsTPCPos;
2577 fValueAL[20] = statusSingPos;
2579 fValueAL[21] = (negPt-eNegPart->Pt())/eNegPart->Pt() ;
2580 fValueAL[22] = negEta;
2581 fValueAL[23] = negPhi;
2582 fValueAL[24] = TMath::Sqrt( bNegSgl[0]* bNegSgl[0] + bNegSgl[1]* bNegSgl[1] );
2583 fValueAL[25] = TMath::Sqrt( bNegSgl[0]* bNegSgl[0] + bNegSgl[1]* bNegSgl[1] )/TMath::Sqrt(bNegCov[0]*bNegCov[0]+bNegCov[2]*bNegCov[2]);
2584 fValueAL[26] = nClsITSNeg;
2585 fValueAL[27] = nClsTPCNeg;
2586 fValueAL[28] = statusSingNeg;
2592 fValueAL[29] = (posV0Pt-ePosPart->Pt())/ePosPart->Pt();
2593 fValueAL[30] = posV0Eta;
2594 fValueAL[31] = posV0Phi;
2595 fValueAL[32] = statusV0Pos;
2598 fValueAL[33] = (negV0Pt-eNegPart->Pt())/eNegPart->Pt();
2599 fValueAL[34] = negV0Eta;
2600 fValueAL[35] = negV0Phi;
2601 fValueAL[36] = statusV0Neg;
Int_t * fgConvGamGeantIndex
Int_t * fpiPosDecayALV0RecIndex
Int_t * feNegConvGamGeantIndex
Int_t * fDecayLV0RecIndexPos
Int_t * fpiPosDecayALGeantIndex
Int_t * fK0DecayK0GeantIndex
Int_t * fDecayALV0RecIndexNeg
Int_t * fapNegDecayALSingleRecIndex
Float_t * feNegConvGamGeantLength
Int_t * fDecayK0V0RecIndexPos
Int_t * fpiNegDecayLSingleRecIndex
virtual void UserExec(Option_t *option)
Int_t * fpiPosDecayK0GeantIndex
Int_t * fDecayALV0RecIndexPos
ClassImp(AliAnalysisTaskV0QA) AliAnalysisTaskV0QA
Int_t * fapNegDecayALV0RecIndex
Int_t GetTPCReference(Int_t label)
Int_t * feNegConvGamSingleRecIndex
Int_t * feNegConvGamV0RecIndex
Int_t * falDecayALGeantIndex
AliMCEventHandler * fMCtruth
Int_t * fpPosDecayLSingleRecIndex
Int_t * fapNegDecayALGeantIndex
Int_t * flDecayLGeantIndex
Float_t * fpiNegDecayLGeantLength
virtual void UserCreateOutputObjects()
Int_t * fpiNegDecayLV0RecIndex
Int_t * fDecayLV0RecIndexNeg
Int_t * fpiNegDecayK0V0RecIndex
Int_t * fpiPosDecayALSingleRecIndex
Float_t * fpiPosDecayK0GeantLength
Float_t * fpiNegDecayK0GeantLength
virtual ~AliAnalysisTaskV0QA()
Int_t * fpiNegDecayK0SingleRecIndex
virtual void Terminate(Option_t *)
Int_t * fpiNegDecayLGeantIndex
Int_t * fpPosDecayLV0RecIndex
Float_t * fpiPosDecayALGeantLength
Int_t * fePosConvGamV0RecIndex
Int_t * fDecayK0V0RecIndexNeg
Int_t * fpiPosDecayK0V0RecIndex
Int_t * fePosConvGamSingleRecIndex
Int_t * fConvGamV0RecIndexPos
Float_t * fePosConvGamGeantLength
Float_t * fpPosDecayLGeantLength
Int_t * fpPosDecayLGeantIndex
Int_t * fpiNegDecayK0GeantIndex
Int_t * fePosConvGamGeantIndex
void InspectListOfChargedParticles()
Float_t * fapNegDecayALGeantLength
Int_t * fpiPosDecayK0SingleRecIndex
Int_t * fConvGamV0RecIndexNeg