#include <TDatabasePDG.h>
#include "AliAODRecoDecayHF.h"
#include "AliAODRecoDecayHF4Prong.h"
ClassImp(AliAODRecoDecayHF4Prong)
AliAODRecoDecayHF4Prong::AliAODRecoDecayHF4Prong() :
AliAODRecoDecayHF(),
fDist12toPrim(0),
fDist3toPrim(0),
fDist4toPrim(0)
{
}
AliAODRecoDecayHF4Prong::AliAODRecoDecayHF4Prong(AliAODVertex *vtx2,
Double_t *px,Double_t *py,Double_t *pz,
Double_t *d0,Double_t *d0err,
Double_t *dca,
Double_t dist12,Double_t dist3,
Double_t dist4,
Short_t charge) :
AliAODRecoDecayHF(vtx2,4,charge,px,py,pz,d0,d0err),
fDist12toPrim(dist12),
fDist3toPrim(dist3),
fDist4toPrim(dist4)
{
SetDCAs(6,dca);
}
AliAODRecoDecayHF4Prong::AliAODRecoDecayHF4Prong(AliAODVertex *vtx2,
Double_t *d0,Double_t *d0err,
Double_t *dca,
Double_t dist12,Double_t dist3,
Double_t dist4,
Short_t charge) :
AliAODRecoDecayHF(vtx2,4,charge,d0,d0err),
fDist12toPrim(dist12),
fDist3toPrim(dist3),
fDist4toPrim(dist4)
{
SetDCAs(6,dca);
}
AliAODRecoDecayHF4Prong::AliAODRecoDecayHF4Prong(const AliAODRecoDecayHF4Prong &source) :
AliAODRecoDecayHF(source),
fDist12toPrim(source.fDist12toPrim),
fDist3toPrim(source.fDist3toPrim),
fDist4toPrim(source.fDist4toPrim)
{
}
AliAODRecoDecayHF4Prong &AliAODRecoDecayHF4Prong::operator=(const AliAODRecoDecayHF4Prong &source)
{
if(&source == this) return *this;
AliAODRecoDecayHF::operator=(source);
fDist12toPrim= source.fDist12toPrim;
fDist3toPrim= source.fDist3toPrim;
fDist4toPrim= source.fDist4toPrim;
return *this;
}
void AliAODRecoDecayHF4Prong::InvMassD0(Double_t mD0[2]) const {
UInt_t pdg[4];
pdg[0]=211; pdg[1]=321; pdg[2]=211; pdg[3]=211;
mD0[0]=InvMass(4,pdg);
pdg[1]=211; pdg[3]=321;
mD0[1]=InvMass(4,pdg);
return;
}
void AliAODRecoDecayHF4Prong::InvMassD0bar(Double_t mD0bar[2]) const {
UInt_t pdg[4];
pdg[0]=321; pdg[1]=211; pdg[2]=211; pdg[3]=211;
mD0bar[0]=InvMass(4,pdg);
pdg[0]=211; pdg[2]=321;
mD0bar[1]=InvMass(4,pdg);
return;
}
Bool_t AliAODRecoDecayHF4Prong::SelectD0(const Double_t *cuts,Int_t &okD0,Int_t &okD0bar) const
{
okD0=0; okD0bar=0;
Double_t mD0PDG = TDatabasePDG::Instance()->GetParticle(421)->Mass();
Double_t mD0[2];
Double_t mD0bar[2];
InvMassD0(mD0);
InvMassD0bar(mD0bar);
Bool_t goodMass=kFALSE;
if(TMath::Abs(mD0[0]-mD0PDG)<=cuts[0]) {goodMass=kTRUE; okD0=1;}
if(TMath::Abs(mD0[1]-mD0PDG)<=cuts[0]) {goodMass=kTRUE; okD0=1;}
if(TMath::Abs(mD0bar[0]-mD0PDG)<=cuts[0]) {goodMass=kTRUE; okD0bar=1;}
if(TMath::Abs(mD0bar[1]-mD0PDG)<=cuts[0]) {goodMass=kTRUE; okD0bar=1;}
if(!goodMass) return kFALSE;
if(cuts[1]>0.){
if(GetDCA(0)>cuts[1]) return kFALSE;
if(GetDCA(1)>cuts[1]) return kFALSE;
if(GetDCA(2)>cuts[1]) return kFALSE;
if(GetDCA(3)>cuts[1]) return kFALSE;
if(GetDCA(4)>cuts[1]) return kFALSE;
if(GetDCA(5)>cuts[1]) return kFALSE;
}
if(cuts[2]>0.){
if(fDist12toPrim>10.)return kFALSE;
if(fDist12toPrim<cuts[2])return kFALSE;
}
if(cuts[3]>0.){
if(fDist3toPrim<cuts[3])return kFALSE;
}
if(cuts[4]>0.){
if(fDist4toPrim<cuts[4])return kFALSE;
}
if(cuts[5]>-1.1){
if(CosPointingAngle()<cuts[5])return kFALSE;
}
if(cuts[6]>0.){
if(Pt()<cuts[6])return kFALSE;
}
if(cuts[7]>0.){
Double_t massD0[2];
Double_t massD0bar[2];
Bool_t good=CutRhoMass(massD0,massD0bar,cuts[0],cuts[7]);
if(!good) return kFALSE;
}
return kTRUE;
}
Bool_t AliAODRecoDecayHF4Prong::CutRhoMass(Double_t massD0[2],Double_t massD0bar[2],Double_t cutMass,Double_t cutRho) const
{
Bool_t isGood=kFALSE;
Int_t nprongs=4;
for(Int_t i=0;i<2;i++){massD0[i]=0.;massD0bar[i]=0.;}
Bool_t isRho=kFALSE;
Bool_t isTrue=kFALSE;
Double_t mPDG=TDatabasePDG::Instance()->GetParticle(421)->Mass();
Double_t mPDGRho=TDatabasePDG::Instance()->GetParticle(113)->Mass();
Double_t minv01=InvMassRho(0,1);
if(TMath::Abs(minv01-mPDGRho)<cutRho) isRho=kTRUE;
if(isRho){
UInt_t pdg1[4]={211,211,321,211};
Double_t mass1=InvMass(nprongs,pdg1);
if(TMath::Abs(mass1-mPDG)<cutMass) {isTrue=kTRUE;isGood=kTRUE;}
if(isTrue) massD0bar[1]=mass1;
isTrue=kFALSE;
UInt_t pdg2[4]={211,211,211,321};
Double_t mass2=InvMass(4,pdg2);
if(TMath::Abs(mass2-mPDG)<cutMass) {isTrue=kTRUE;isGood=kTRUE;}
if(isTrue) massD0[1]=mass2;
isTrue=kFALSE;
}
Double_t minv03=InvMassRho(0,3);
if(TMath::Abs(minv03-mPDGRho)<cutRho) isRho=kTRUE;
if(isRho){
UInt_t pdg1[4]={211,211,321,211};
Double_t mass1=InvMass(4,pdg1);
if(TMath::Abs(mass1-mPDG)<cutMass) {isTrue=kTRUE;isGood=kTRUE;}
if(isTrue) massD0bar[1]=mass1;
isTrue=kFALSE;
UInt_t pdg2[4]={211,321,211,211};
Double_t mass2=InvMass(4,pdg2);
if(TMath::Abs(mass2-mPDG)<cutMass) {isTrue=kTRUE;isGood=kTRUE;}
if(isTrue) massD0[0]=mass2;
isTrue=kFALSE;
}
Double_t minv12=InvMassRho(1,2);
if(TMath::Abs(minv12-mPDGRho)<cutRho) isRho=kTRUE;
if(isRho){
UInt_t pdg1[4]={321,211,211,211};
Double_t mass1=InvMass(4,pdg1);
if(TMath::Abs(mass1-mPDG)<cutMass) {isTrue=kTRUE;isGood=kTRUE;}
if(isTrue) massD0bar[0]=mass1;
isTrue=kFALSE;
UInt_t pdg2[4]={211,211,211,321};
Double_t mass2=InvMass(4,pdg2);
if(TMath::Abs(mass2-mPDG)<cutMass) {isTrue=kTRUE;isGood=kTRUE;}
if(isTrue) massD0[1]=mass2;
isTrue=kFALSE;
}
Double_t minv23=InvMassRho(2,3);
if(TMath::Abs(minv23-mPDGRho)<cutRho) isRho=kTRUE;
if(isRho){
UInt_t pdg1[4]={321,211,211,211};
Double_t mass1=InvMass(4,pdg1);
if(TMath::Abs(mass1-mPDG)<cutMass) {isTrue=kTRUE;isGood=kTRUE;}
if(isTrue) massD0bar[0]=mass1;
isTrue=kFALSE;
UInt_t pdg2[4]={211,321,211,211};
Double_t mass2=InvMass(4,pdg2);
if(TMath::Abs(mass2-mPDG)<cutMass) {isTrue=kTRUE;isGood=kTRUE;}
if(isTrue) massD0[0]=mass2;
isTrue=kFALSE;
}
return isGood;
}
AliAODRecoDecayHF4Prong.cxx:1 AliAODRecoDecayHF4Prong.cxx:2 AliAODRecoDecayHF4Prong.cxx:3 AliAODRecoDecayHF4Prong.cxx:4 AliAODRecoDecayHF4Prong.cxx:5 AliAODRecoDecayHF4Prong.cxx:6 AliAODRecoDecayHF4Prong.cxx:7 AliAODRecoDecayHF4Prong.cxx:8 AliAODRecoDecayHF4Prong.cxx:9 AliAODRecoDecayHF4Prong.cxx:10 AliAODRecoDecayHF4Prong.cxx:11 AliAODRecoDecayHF4Prong.cxx:12 AliAODRecoDecayHF4Prong.cxx:13 AliAODRecoDecayHF4Prong.cxx:14 AliAODRecoDecayHF4Prong.cxx:15 AliAODRecoDecayHF4Prong.cxx:16 AliAODRecoDecayHF4Prong.cxx:17 AliAODRecoDecayHF4Prong.cxx:18 AliAODRecoDecayHF4Prong.cxx:19 AliAODRecoDecayHF4Prong.cxx:20 AliAODRecoDecayHF4Prong.cxx:21 AliAODRecoDecayHF4Prong.cxx:22 AliAODRecoDecayHF4Prong.cxx:23 AliAODRecoDecayHF4Prong.cxx:24 AliAODRecoDecayHF4Prong.cxx:25 AliAODRecoDecayHF4Prong.cxx:26 AliAODRecoDecayHF4Prong.cxx:27 AliAODRecoDecayHF4Prong.cxx:28 AliAODRecoDecayHF4Prong.cxx:29 AliAODRecoDecayHF4Prong.cxx:30 AliAODRecoDecayHF4Prong.cxx:31 AliAODRecoDecayHF4Prong.cxx:32 AliAODRecoDecayHF4Prong.cxx:33 AliAODRecoDecayHF4Prong.cxx:34 AliAODRecoDecayHF4Prong.cxx:35 AliAODRecoDecayHF4Prong.cxx:36 AliAODRecoDecayHF4Prong.cxx:37 AliAODRecoDecayHF4Prong.cxx:38 AliAODRecoDecayHF4Prong.cxx:39 AliAODRecoDecayHF4Prong.cxx:40 AliAODRecoDecayHF4Prong.cxx:41 AliAODRecoDecayHF4Prong.cxx:42 AliAODRecoDecayHF4Prong.cxx:43 AliAODRecoDecayHF4Prong.cxx:44 AliAODRecoDecayHF4Prong.cxx:45 AliAODRecoDecayHF4Prong.cxx:46 AliAODRecoDecayHF4Prong.cxx:47 AliAODRecoDecayHF4Prong.cxx:48 AliAODRecoDecayHF4Prong.cxx:49 AliAODRecoDecayHF4Prong.cxx:50 AliAODRecoDecayHF4Prong.cxx:51 AliAODRecoDecayHF4Prong.cxx:52 AliAODRecoDecayHF4Prong.cxx:53 AliAODRecoDecayHF4Prong.cxx:54 AliAODRecoDecayHF4Prong.cxx:55 AliAODRecoDecayHF4Prong.cxx:56 AliAODRecoDecayHF4Prong.cxx:57 AliAODRecoDecayHF4Prong.cxx:58 AliAODRecoDecayHF4Prong.cxx:59 AliAODRecoDecayHF4Prong.cxx:60 AliAODRecoDecayHF4Prong.cxx:61 AliAODRecoDecayHF4Prong.cxx:62 AliAODRecoDecayHF4Prong.cxx:63 AliAODRecoDecayHF4Prong.cxx:64 AliAODRecoDecayHF4Prong.cxx:65 AliAODRecoDecayHF4Prong.cxx:66 AliAODRecoDecayHF4Prong.cxx:67 AliAODRecoDecayHF4Prong.cxx:68 AliAODRecoDecayHF4Prong.cxx:69 AliAODRecoDecayHF4Prong.cxx:70 AliAODRecoDecayHF4Prong.cxx:71 AliAODRecoDecayHF4Prong.cxx:72 AliAODRecoDecayHF4Prong.cxx:73 AliAODRecoDecayHF4Prong.cxx:74 AliAODRecoDecayHF4Prong.cxx:75 AliAODRecoDecayHF4Prong.cxx:76 AliAODRecoDecayHF4Prong.cxx:77 AliAODRecoDecayHF4Prong.cxx:78 AliAODRecoDecayHF4Prong.cxx:79 AliAODRecoDecayHF4Prong.cxx:80 AliAODRecoDecayHF4Prong.cxx:81 AliAODRecoDecayHF4Prong.cxx:82 AliAODRecoDecayHF4Prong.cxx:83 AliAODRecoDecayHF4Prong.cxx:84 AliAODRecoDecayHF4Prong.cxx:85 AliAODRecoDecayHF4Prong.cxx:86 AliAODRecoDecayHF4Prong.cxx:87 AliAODRecoDecayHF4Prong.cxx:88 AliAODRecoDecayHF4Prong.cxx:89 AliAODRecoDecayHF4Prong.cxx:90 AliAODRecoDecayHF4Prong.cxx:91 AliAODRecoDecayHF4Prong.cxx:92 AliAODRecoDecayHF4Prong.cxx:93 AliAODRecoDecayHF4Prong.cxx:94 AliAODRecoDecayHF4Prong.cxx:95 AliAODRecoDecayHF4Prong.cxx:96 AliAODRecoDecayHF4Prong.cxx:97 AliAODRecoDecayHF4Prong.cxx:98 AliAODRecoDecayHF4Prong.cxx:99 AliAODRecoDecayHF4Prong.cxx:100 AliAODRecoDecayHF4Prong.cxx:101 AliAODRecoDecayHF4Prong.cxx:102 AliAODRecoDecayHF4Prong.cxx:103 AliAODRecoDecayHF4Prong.cxx:104 AliAODRecoDecayHF4Prong.cxx:105 AliAODRecoDecayHF4Prong.cxx:106 AliAODRecoDecayHF4Prong.cxx:107 AliAODRecoDecayHF4Prong.cxx:108 AliAODRecoDecayHF4Prong.cxx:109 AliAODRecoDecayHF4Prong.cxx:110 AliAODRecoDecayHF4Prong.cxx:111 AliAODRecoDecayHF4Prong.cxx:112 AliAODRecoDecayHF4Prong.cxx:113 AliAODRecoDecayHF4Prong.cxx:114 AliAODRecoDecayHF4Prong.cxx:115 AliAODRecoDecayHF4Prong.cxx:116 AliAODRecoDecayHF4Prong.cxx:117 AliAODRecoDecayHF4Prong.cxx:118 AliAODRecoDecayHF4Prong.cxx:119 AliAODRecoDecayHF4Prong.cxx:120 AliAODRecoDecayHF4Prong.cxx:121 AliAODRecoDecayHF4Prong.cxx:122 AliAODRecoDecayHF4Prong.cxx:123 AliAODRecoDecayHF4Prong.cxx:124 AliAODRecoDecayHF4Prong.cxx:125 AliAODRecoDecayHF4Prong.cxx:126 AliAODRecoDecayHF4Prong.cxx:127 AliAODRecoDecayHF4Prong.cxx:128 AliAODRecoDecayHF4Prong.cxx:129 AliAODRecoDecayHF4Prong.cxx:130 AliAODRecoDecayHF4Prong.cxx:131 AliAODRecoDecayHF4Prong.cxx:132 AliAODRecoDecayHF4Prong.cxx:133 AliAODRecoDecayHF4Prong.cxx:134 AliAODRecoDecayHF4Prong.cxx:135 AliAODRecoDecayHF4Prong.cxx:136 AliAODRecoDecayHF4Prong.cxx:137 AliAODRecoDecayHF4Prong.cxx:138 AliAODRecoDecayHF4Prong.cxx:139 AliAODRecoDecayHF4Prong.cxx:140 AliAODRecoDecayHF4Prong.cxx:141 AliAODRecoDecayHF4Prong.cxx:142 AliAODRecoDecayHF4Prong.cxx:143 AliAODRecoDecayHF4Prong.cxx:144 AliAODRecoDecayHF4Prong.cxx:145 AliAODRecoDecayHF4Prong.cxx:146 AliAODRecoDecayHF4Prong.cxx:147 AliAODRecoDecayHF4Prong.cxx:148 AliAODRecoDecayHF4Prong.cxx:149 AliAODRecoDecayHF4Prong.cxx:150 AliAODRecoDecayHF4Prong.cxx:151 AliAODRecoDecayHF4Prong.cxx:152 AliAODRecoDecayHF4Prong.cxx:153 AliAODRecoDecayHF4Prong.cxx:154 AliAODRecoDecayHF4Prong.cxx:155 AliAODRecoDecayHF4Prong.cxx:156 AliAODRecoDecayHF4Prong.cxx:157 AliAODRecoDecayHF4Prong.cxx:158 AliAODRecoDecayHF4Prong.cxx:159 AliAODRecoDecayHF4Prong.cxx:160 AliAODRecoDecayHF4Prong.cxx:161 AliAODRecoDecayHF4Prong.cxx:162 AliAODRecoDecayHF4Prong.cxx:163 AliAODRecoDecayHF4Prong.cxx:164 AliAODRecoDecayHF4Prong.cxx:165 AliAODRecoDecayHF4Prong.cxx:166 AliAODRecoDecayHF4Prong.cxx:167 AliAODRecoDecayHF4Prong.cxx:168 AliAODRecoDecayHF4Prong.cxx:169 AliAODRecoDecayHF4Prong.cxx:170 AliAODRecoDecayHF4Prong.cxx:171 AliAODRecoDecayHF4Prong.cxx:172 AliAODRecoDecayHF4Prong.cxx:173 AliAODRecoDecayHF4Prong.cxx:174 AliAODRecoDecayHF4Prong.cxx:175 AliAODRecoDecayHF4Prong.cxx:176 AliAODRecoDecayHF4Prong.cxx:177 AliAODRecoDecayHF4Prong.cxx:178 AliAODRecoDecayHF4Prong.cxx:179 AliAODRecoDecayHF4Prong.cxx:180 AliAODRecoDecayHF4Prong.cxx:181 AliAODRecoDecayHF4Prong.cxx:182 AliAODRecoDecayHF4Prong.cxx:183 AliAODRecoDecayHF4Prong.cxx:184 AliAODRecoDecayHF4Prong.cxx:185 AliAODRecoDecayHF4Prong.cxx:186 AliAODRecoDecayHF4Prong.cxx:187 AliAODRecoDecayHF4Prong.cxx:188 AliAODRecoDecayHF4Prong.cxx:189 AliAODRecoDecayHF4Prong.cxx:190 AliAODRecoDecayHF4Prong.cxx:191 AliAODRecoDecayHF4Prong.cxx:192 AliAODRecoDecayHF4Prong.cxx:193 AliAODRecoDecayHF4Prong.cxx:194 AliAODRecoDecayHF4Prong.cxx:195 AliAODRecoDecayHF4Prong.cxx:196 AliAODRecoDecayHF4Prong.cxx:197 AliAODRecoDecayHF4Prong.cxx:198 AliAODRecoDecayHF4Prong.cxx:199 AliAODRecoDecayHF4Prong.cxx:200 AliAODRecoDecayHF4Prong.cxx:201 AliAODRecoDecayHF4Prong.cxx:202 AliAODRecoDecayHF4Prong.cxx:203 AliAODRecoDecayHF4Prong.cxx:204 AliAODRecoDecayHF4Prong.cxx:205 AliAODRecoDecayHF4Prong.cxx:206 AliAODRecoDecayHF4Prong.cxx:207 AliAODRecoDecayHF4Prong.cxx:208 AliAODRecoDecayHF4Prong.cxx:209 AliAODRecoDecayHF4Prong.cxx:210 AliAODRecoDecayHF4Prong.cxx:211 AliAODRecoDecayHF4Prong.cxx:212 AliAODRecoDecayHF4Prong.cxx:213 AliAODRecoDecayHF4Prong.cxx:214 AliAODRecoDecayHF4Prong.cxx:215 AliAODRecoDecayHF4Prong.cxx:216 AliAODRecoDecayHF4Prong.cxx:217 AliAODRecoDecayHF4Prong.cxx:218 AliAODRecoDecayHF4Prong.cxx:219 AliAODRecoDecayHF4Prong.cxx:220 AliAODRecoDecayHF4Prong.cxx:221 AliAODRecoDecayHF4Prong.cxx:222 AliAODRecoDecayHF4Prong.cxx:223 AliAODRecoDecayHF4Prong.cxx:224 AliAODRecoDecayHF4Prong.cxx:225 AliAODRecoDecayHF4Prong.cxx:226 AliAODRecoDecayHF4Prong.cxx:227 AliAODRecoDecayHF4Prong.cxx:228 AliAODRecoDecayHF4Prong.cxx:229 AliAODRecoDecayHF4Prong.cxx:230 AliAODRecoDecayHF4Prong.cxx:231 AliAODRecoDecayHF4Prong.cxx:232 AliAODRecoDecayHF4Prong.cxx:233 AliAODRecoDecayHF4Prong.cxx:234 AliAODRecoDecayHF4Prong.cxx:235 AliAODRecoDecayHF4Prong.cxx:236 AliAODRecoDecayHF4Prong.cxx:237 AliAODRecoDecayHF4Prong.cxx:238 AliAODRecoDecayHF4Prong.cxx:239 AliAODRecoDecayHF4Prong.cxx:240 AliAODRecoDecayHF4Prong.cxx:241 AliAODRecoDecayHF4Prong.cxx:242 AliAODRecoDecayHF4Prong.cxx:243 AliAODRecoDecayHF4Prong.cxx:244 AliAODRecoDecayHF4Prong.cxx:245 AliAODRecoDecayHF4Prong.cxx:246 AliAODRecoDecayHF4Prong.cxx:247 AliAODRecoDecayHF4Prong.cxx:248 AliAODRecoDecayHF4Prong.cxx:249 AliAODRecoDecayHF4Prong.cxx:250 AliAODRecoDecayHF4Prong.cxx:251 AliAODRecoDecayHF4Prong.cxx:252 AliAODRecoDecayHF4Prong.cxx:253 AliAODRecoDecayHF4Prong.cxx:254 AliAODRecoDecayHF4Prong.cxx:255 AliAODRecoDecayHF4Prong.cxx:256 AliAODRecoDecayHF4Prong.cxx:257 AliAODRecoDecayHF4Prong.cxx:258 AliAODRecoDecayHF4Prong.cxx:259 AliAODRecoDecayHF4Prong.cxx:260 AliAODRecoDecayHF4Prong.cxx:261 AliAODRecoDecayHF4Prong.cxx:262 AliAODRecoDecayHF4Prong.cxx:263 AliAODRecoDecayHF4Prong.cxx:264 AliAODRecoDecayHF4Prong.cxx:265 AliAODRecoDecayHF4Prong.cxx:266 AliAODRecoDecayHF4Prong.cxx:267 AliAODRecoDecayHF4Prong.cxx:268 AliAODRecoDecayHF4Prong.cxx:269 AliAODRecoDecayHF4Prong.cxx:270 AliAODRecoDecayHF4Prong.cxx:271 AliAODRecoDecayHF4Prong.cxx:272 AliAODRecoDecayHF4Prong.cxx:273 AliAODRecoDecayHF4Prong.cxx:274