#include "AliAODConversionMother.h"
#include "AliKFConversionMother.h"
#include "AliKFParticle.h"
using namespace std;
ClassImp(AliAODConversionMother)
AliAODConversionMother::AliAODConversionMother() :
AliAODConversionParticle(),
fMCLabel(-1),
fChi2(-1),
fOpeningAngle(-1),
fAlpha(-1),
fWeight(1),
fdcaBetweenPhotons(1),
fdcaZPrimVtx(100),
fdcaRPrimVtx(100),
fQuality(0),
fTrueMeson(0)
{
fLabel[0] = -1;
fLabel[1] = -1;
fLabel[2] = 0;
fProductionVtx[0]=0;
fProductionVtx[1]=0;
fProductionVtx[2]=0;
}
AliAODConversionMother::AliAODConversionMother(AliKFConversionMother *kf):
AliAODConversionParticle(),
fMCLabel(kf->GetMCLabel()),
fChi2(kf->GetChi2()),
fOpeningAngle(kf->GetOpeningAngle()),
fAlpha(kf->GetAlpha()),
fWeight(1),
fdcaBetweenPhotons(100),
fdcaZPrimVtx(100),
fdcaRPrimVtx(100),
fQuality(0),
fTrueMeson(0)
{
SetPxPyPzE(kf->GetPx(),kf->GetPy(),kf->GetPz(),kf->GetE());
fProductionVtx[0]=0;
fProductionVtx[1]=0;
fProductionVtx[2]=0;
fLabel[0]=kf->GetGammaLabel(0);
fLabel[1]=kf->GetGammaLabel(1);
fLabel[2]=0;
}
AliAODConversionMother::AliAODConversionMother(AliAODConversionPhoton *y1,AliAODConversionPhoton *y2):
AliAODConversionParticle(),
fMCLabel(-1),
fChi2(-1),
fOpeningAngle(-1),
fAlpha(-1),
fWeight(1),
fdcaBetweenPhotons(1),
fdcaZPrimVtx(100),
fdcaRPrimVtx(100),
fQuality(0),
fTrueMeson(0)
{
SetPxPyPzE(y1->Px()+y2->Px(),y1->Py()+y2->Py(),y1->Pz()+y2->Pz(),y1->E()+y2->E());
TVector3 v1(y1->Px(),y1->Py(),y1->Pz());
TVector3 v2(y2->Px(),y2->Py(),y2->Pz());
fOpeningAngle=v1.Angle(v2);
fdcaBetweenPhotons = CalculateDistanceBetweenPhotons(y1,y2,fProductionVtx);
DetermineMesonQuality(y1,y2);
if((y1->E()+y2->E()) != 0){
fAlpha=TMath::Abs((y1->E()-y2->E())/(y1->E()+y2->E()));
}
fLabel[0]=-1;
fLabel[1]=-1;
fLabel[2]=0;
}
AliAODConversionMother::AliAODConversionMother(AliAODConversionMother *meson,AliAODConversionPhoton *gamma):
AliAODConversionParticle(),
fMCLabel(-1),
fChi2(-1),
fOpeningAngle(-1),
fAlpha(-1),
fWeight(1),
fdcaBetweenPhotons(1),
fdcaZPrimVtx(100),
fdcaRPrimVtx(100),
fQuality(0),
fTrueMeson(0)
{
SetPxPyPzE(meson->Px()+gamma->Px(),meson->Py()+gamma->Py(),meson->Pz()+gamma->Pz(),meson->E()+gamma->E());
TVector3 v1(meson->Px(),meson->Py(),meson->Pz());
TVector3 v2(gamma->Px(),gamma->Py(),gamma->Pz());
fOpeningAngle=v1.Angle(v2);
fProductionVtx[0]=0;
fProductionVtx[1]=0;
fProductionVtx[2]=0;
if((meson->E()+gamma->E()) != 0){
fAlpha=TMath::Abs((meson->E()-gamma->E())/(meson->E()+gamma->E()));
}
fLabel[0]=-1;
fLabel[1]=-1;
fLabel[2]=0;
}
AliAODConversionMother::~AliAODConversionMother() {
}
TParticle *AliAODConversionMother::GetMCParticle(AliStack *fMCStack){
if(!fMCStack){AliError("MC Stack not defined");return 0x0;}
if(fMCLabel>-1){
return fMCStack->Particle(fMCLabel);
}
return 0x0;
}
Bool_t AliAODConversionMother::IsTrueMeson(AliStack *fMCStack,Int_t pdgcode){
TParticle *part=GetMCParticle(fMCStack);
if(part){
if(part->GetPdgCode()==pdgcode){
return kTRUE;
}
}
return kFALSE;
}
Float_t AliAODConversionMother::CalculateDistanceBetweenPhotons(AliAODConversionPhoton* y1, AliAODConversionPhoton* y2 , Double_t prodPoint[3]){
TVector3 a(y1->GetConversionX(),y1->GetConversionY(),y1->GetConversionZ());
TVector3 b(y1->GetPx(),y1->GetPy(),y1->GetPz());
TVector3 c(y2->GetConversionX(),y2->GetConversionY(),y2->GetConversionZ());
TVector3 d(y2->GetPx(),y2->GetPy(),y2->GetPz());
TVector3 n = b.Cross(d);
TVector3 nn = n.Unit();
Double_t dist = 0;
if (n.Mag() == 0){
TVector3 e = a-c;
if (d.Mag() != 0){
dist = TMath::Abs((e.Cross(d)).Mag())/TMath::Abs(d.Mag());
}
prodPoint[0] = 0;
prodPoint[1] = 0;
prodPoint[2] = 0;
} else {
dist = TMath::Abs(n.Dot(c-a))/TMath::Abs(n.Mag());
Double_t lambda = (b.Dot(d) * (a-c).Dot(d) - d.Dot(d) * (a-c).Dot(b))/(b.Dot(b) * d.Dot(d) - TMath::Power(b.Dot(d),2));
Double_t mu = ((a-c).Dot(d) * b.Dot(b) - (a-c).Dot(b) * b.Dot(d) )/(b.Dot(b) * d.Dot(d) - TMath::Power(b.Dot(d),2));
TVector3 S1 = a + lambda* b;
TVector3 S2 = c + mu* d;
TVector3 Prod = S1 + 0.5*dist*(S2-S1).Unit();
prodPoint[0] = Prod(0);
prodPoint[1] = Prod(1);
prodPoint[2] = Prod(2);
}
if (dist > 1000) dist = 999.;
return dist;
}
void AliAODConversionMother::CalculateDistanceOfClossetApproachToPrimVtx(const AliVVertex* primVertex){
Double_t primCo[3] = {primVertex->GetX(),primVertex->GetY(),primVertex->GetZ()};
Double_t absoluteP = TMath::Sqrt(TMath::Power(Px(),2) + TMath::Power(Py(),2) + TMath::Power(Pz(),2));
Double_t p[3] = {Px()/absoluteP,Py()/absoluteP,Pz()/absoluteP};
Double_t CP[3];
CP[0] = fProductionVtx[0] - primCo[0];
CP[1] = fProductionVtx[1] - primCo[1];
CP[2] = fProductionVtx[2] - primCo[2];
Double_t Lambda = - (CP[0]*p[0]+CP[1]*p[1]+CP[2]*p[2])/(p[0]*p[0]+p[1]*p[1]+p[2]*p[2]);
Double_t S[3];
S[0] = fProductionVtx[0] + p[0]*Lambda;
S[1] = fProductionVtx[1] + p[1]*Lambda;
S[2] = fProductionVtx[2] + p[2]*Lambda;
fdcaRPrimVtx = TMath::Sqrt( TMath::Power(primCo[0]-S[0],2) + TMath::Power(primCo[1]-S[1],2));
fdcaZPrimVtx = primCo[2]-S[2];
return;
}
void AliAODConversionMother::DetermineMesonQuality(AliAODConversionPhoton* y1, AliAODConversionPhoton* y2){
UChar_t photonQA1 = y1->GetPhotonQuality();
UChar_t photonQA2 = y2->GetPhotonQuality();
if (photonQA1 == 0 || photonQA2 == 0){
fQuality = 0;
return;
}
if (photonQA1 == 1 && photonQA2 == 1){
fQuality = 1;
return;
}
if (photonQA1 == 2 && photonQA2 == 2){
fQuality = 4;
return;
}
if (photonQA1 == 3 && photonQA2 == 3){
fQuality = 6;
return;
}
if (photonQA1 == 1){
if (photonQA2 == 2){
fQuality = 2;
return;
}
if (photonQA2 == 3){
fQuality = 3;
return;
}
}
if (photonQA2 == 1){
if (photonQA1 == 2){
fQuality = 2;
return;
}
if (photonQA1 == 3){
fQuality = 3;
return;
}
}
if ((photonQA1 == 2 && photonQA2 == 3)|| (photonQA1 == 3 && photonQA2 == 2)){
fQuality = 5;
return;
}
}
AliAODConversionMother.cxx:1 AliAODConversionMother.cxx:2 AliAODConversionMother.cxx:3 AliAODConversionMother.cxx:4 AliAODConversionMother.cxx:5 AliAODConversionMother.cxx:6 AliAODConversionMother.cxx:7 AliAODConversionMother.cxx:8 AliAODConversionMother.cxx:9 AliAODConversionMother.cxx:10 AliAODConversionMother.cxx:11 AliAODConversionMother.cxx:12 AliAODConversionMother.cxx:13 AliAODConversionMother.cxx:14 AliAODConversionMother.cxx:15 AliAODConversionMother.cxx:16 AliAODConversionMother.cxx:17 AliAODConversionMother.cxx:18 AliAODConversionMother.cxx:19 AliAODConversionMother.cxx:20 AliAODConversionMother.cxx:21 AliAODConversionMother.cxx:22 AliAODConversionMother.cxx:23 AliAODConversionMother.cxx:24 AliAODConversionMother.cxx:25 AliAODConversionMother.cxx:26 AliAODConversionMother.cxx:27 AliAODConversionMother.cxx:28 AliAODConversionMother.cxx:29 AliAODConversionMother.cxx:30 AliAODConversionMother.cxx:31 AliAODConversionMother.cxx:32 AliAODConversionMother.cxx:33 AliAODConversionMother.cxx:34 AliAODConversionMother.cxx:35 AliAODConversionMother.cxx:36 AliAODConversionMother.cxx:37 AliAODConversionMother.cxx:38 AliAODConversionMother.cxx:39 AliAODConversionMother.cxx:40 AliAODConversionMother.cxx:41 AliAODConversionMother.cxx:42 AliAODConversionMother.cxx:43 AliAODConversionMother.cxx:44 AliAODConversionMother.cxx:45 AliAODConversionMother.cxx:46 AliAODConversionMother.cxx:47 AliAODConversionMother.cxx:48 AliAODConversionMother.cxx:49 AliAODConversionMother.cxx:50 AliAODConversionMother.cxx:51 AliAODConversionMother.cxx:52 AliAODConversionMother.cxx:53 AliAODConversionMother.cxx:54 AliAODConversionMother.cxx:55 AliAODConversionMother.cxx:56 AliAODConversionMother.cxx:57 AliAODConversionMother.cxx:58 AliAODConversionMother.cxx:59 AliAODConversionMother.cxx:60 AliAODConversionMother.cxx:61 AliAODConversionMother.cxx:62 AliAODConversionMother.cxx:63 AliAODConversionMother.cxx:64 AliAODConversionMother.cxx:65 AliAODConversionMother.cxx:66 AliAODConversionMother.cxx:67 AliAODConversionMother.cxx:68 AliAODConversionMother.cxx:69 AliAODConversionMother.cxx:70 AliAODConversionMother.cxx:71 AliAODConversionMother.cxx:72 AliAODConversionMother.cxx:73 AliAODConversionMother.cxx:74 AliAODConversionMother.cxx:75 AliAODConversionMother.cxx:76 AliAODConversionMother.cxx:77 AliAODConversionMother.cxx:78 AliAODConversionMother.cxx:79 AliAODConversionMother.cxx:80 AliAODConversionMother.cxx:81 AliAODConversionMother.cxx:82 AliAODConversionMother.cxx:83 AliAODConversionMother.cxx:84 AliAODConversionMother.cxx:85 AliAODConversionMother.cxx:86 AliAODConversionMother.cxx:87 AliAODConversionMother.cxx:88 AliAODConversionMother.cxx:89 AliAODConversionMother.cxx:90 AliAODConversionMother.cxx:91 AliAODConversionMother.cxx:92 AliAODConversionMother.cxx:93 AliAODConversionMother.cxx:94 AliAODConversionMother.cxx:95 AliAODConversionMother.cxx:96 AliAODConversionMother.cxx:97 AliAODConversionMother.cxx:98 AliAODConversionMother.cxx:99 AliAODConversionMother.cxx:100 AliAODConversionMother.cxx:101 AliAODConversionMother.cxx:102 AliAODConversionMother.cxx:103 AliAODConversionMother.cxx:104 AliAODConversionMother.cxx:105 AliAODConversionMother.cxx:106 AliAODConversionMother.cxx:107 AliAODConversionMother.cxx:108 AliAODConversionMother.cxx:109 AliAODConversionMother.cxx:110 AliAODConversionMother.cxx:111 AliAODConversionMother.cxx:112 AliAODConversionMother.cxx:113 AliAODConversionMother.cxx:114 AliAODConversionMother.cxx:115 AliAODConversionMother.cxx:116 AliAODConversionMother.cxx:117 AliAODConversionMother.cxx:118 AliAODConversionMother.cxx:119 AliAODConversionMother.cxx:120 AliAODConversionMother.cxx:121 AliAODConversionMother.cxx:122 AliAODConversionMother.cxx:123 AliAODConversionMother.cxx:124 AliAODConversionMother.cxx:125 AliAODConversionMother.cxx:126 AliAODConversionMother.cxx:127 AliAODConversionMother.cxx:128 AliAODConversionMother.cxx:129 AliAODConversionMother.cxx:130 AliAODConversionMother.cxx:131 AliAODConversionMother.cxx:132 AliAODConversionMother.cxx:133 AliAODConversionMother.cxx:134 AliAODConversionMother.cxx:135 AliAODConversionMother.cxx:136 AliAODConversionMother.cxx:137 AliAODConversionMother.cxx:138 AliAODConversionMother.cxx:139 AliAODConversionMother.cxx:140 AliAODConversionMother.cxx:141 AliAODConversionMother.cxx:142 AliAODConversionMother.cxx:143 AliAODConversionMother.cxx:144 AliAODConversionMother.cxx:145 AliAODConversionMother.cxx:146 AliAODConversionMother.cxx:147 AliAODConversionMother.cxx:148 AliAODConversionMother.cxx:149 AliAODConversionMother.cxx:150 AliAODConversionMother.cxx:151 AliAODConversionMother.cxx:152 AliAODConversionMother.cxx:153 AliAODConversionMother.cxx:154 AliAODConversionMother.cxx:155 AliAODConversionMother.cxx:156 AliAODConversionMother.cxx:157 AliAODConversionMother.cxx:158 AliAODConversionMother.cxx:159 AliAODConversionMother.cxx:160 AliAODConversionMother.cxx:161 AliAODConversionMother.cxx:162 AliAODConversionMother.cxx:163 AliAODConversionMother.cxx:164 AliAODConversionMother.cxx:165 AliAODConversionMother.cxx:166 AliAODConversionMother.cxx:167 AliAODConversionMother.cxx:168 AliAODConversionMother.cxx:169 AliAODConversionMother.cxx:170 AliAODConversionMother.cxx:171 AliAODConversionMother.cxx:172 AliAODConversionMother.cxx:173 AliAODConversionMother.cxx:174 AliAODConversionMother.cxx:175 AliAODConversionMother.cxx:176 AliAODConversionMother.cxx:177 AliAODConversionMother.cxx:178 AliAODConversionMother.cxx:179 AliAODConversionMother.cxx:180 AliAODConversionMother.cxx:181 AliAODConversionMother.cxx:182 AliAODConversionMother.cxx:183 AliAODConversionMother.cxx:184 AliAODConversionMother.cxx:185 AliAODConversionMother.cxx:186 AliAODConversionMother.cxx:187 AliAODConversionMother.cxx:188 AliAODConversionMother.cxx:189 AliAODConversionMother.cxx:190 AliAODConversionMother.cxx:191 AliAODConversionMother.cxx:192 AliAODConversionMother.cxx:193 AliAODConversionMother.cxx:194 AliAODConversionMother.cxx:195 AliAODConversionMother.cxx:196 AliAODConversionMother.cxx:197 AliAODConversionMother.cxx:198 AliAODConversionMother.cxx:199 AliAODConversionMother.cxx:200 AliAODConversionMother.cxx:201 AliAODConversionMother.cxx:202 AliAODConversionMother.cxx:203 AliAODConversionMother.cxx:204 AliAODConversionMother.cxx:205 AliAODConversionMother.cxx:206 AliAODConversionMother.cxx:207 AliAODConversionMother.cxx:208 AliAODConversionMother.cxx:209 AliAODConversionMother.cxx:210 AliAODConversionMother.cxx:211 AliAODConversionMother.cxx:212 AliAODConversionMother.cxx:213 AliAODConversionMother.cxx:214 AliAODConversionMother.cxx:215 AliAODConversionMother.cxx:216 AliAODConversionMother.cxx:217 AliAODConversionMother.cxx:218 AliAODConversionMother.cxx:219 AliAODConversionMother.cxx:220 AliAODConversionMother.cxx:221 AliAODConversionMother.cxx:222 AliAODConversionMother.cxx:223 AliAODConversionMother.cxx:224 AliAODConversionMother.cxx:225 AliAODConversionMother.cxx:226 AliAODConversionMother.cxx:227 AliAODConversionMother.cxx:228 AliAODConversionMother.cxx:229 AliAODConversionMother.cxx:230 AliAODConversionMother.cxx:231 AliAODConversionMother.cxx:232 AliAODConversionMother.cxx:233 AliAODConversionMother.cxx:234 AliAODConversionMother.cxx:235 AliAODConversionMother.cxx:236 AliAODConversionMother.cxx:237 AliAODConversionMother.cxx:238 AliAODConversionMother.cxx:239 AliAODConversionMother.cxx:240 AliAODConversionMother.cxx:241 AliAODConversionMother.cxx:242 AliAODConversionMother.cxx:243 AliAODConversionMother.cxx:244 AliAODConversionMother.cxx:245 AliAODConversionMother.cxx:246 AliAODConversionMother.cxx:247 AliAODConversionMother.cxx:248 AliAODConversionMother.cxx:249 AliAODConversionMother.cxx:250 AliAODConversionMother.cxx:251 AliAODConversionMother.cxx:252 AliAODConversionMother.cxx:253 AliAODConversionMother.cxx:254 AliAODConversionMother.cxx:255 AliAODConversionMother.cxx:256 AliAODConversionMother.cxx:257 AliAODConversionMother.cxx:258 AliAODConversionMother.cxx:259 AliAODConversionMother.cxx:260 AliAODConversionMother.cxx:261 AliAODConversionMother.cxx:262 AliAODConversionMother.cxx:263 AliAODConversionMother.cxx:264 AliAODConversionMother.cxx:265 AliAODConversionMother.cxx:266 AliAODConversionMother.cxx:267 AliAODConversionMother.cxx:268 AliAODConversionMother.cxx:269 AliAODConversionMother.cxx:270 AliAODConversionMother.cxx:271 AliAODConversionMother.cxx:272 AliAODConversionMother.cxx:273 AliAODConversionMother.cxx:274 AliAODConversionMother.cxx:275