X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=ANALYSIS%2FAliAODPair.cxx;h=57fac0f2ddc4be9f2ed7ca4d653588f1550ac68f;hb=fe3f2f54af75d8145b7c9bc2a9197b94e657f1a8;hp=31de69be0aaa4e9b905983835351d0b6d5a2f408;hpb=78d7c6d31835b4721fb8055d8939743a12c73ad2;p=u%2Fmrichter%2FAliRoot.git diff --git a/ANALYSIS/AliAODPair.cxx b/ANALYSIS/AliAODPair.cxx index 31de69be0aa..57fac0f2ddc 100644 --- a/ANALYSIS/AliAODPair.cxx +++ b/ANALYSIS/AliAODPair.cxx @@ -13,7 +13,6 @@ #include "AliVAODParticle.h" #include "AliTrackPoints.h" - ClassImp(AliAODPair) /************************************************************************/ @@ -27,6 +26,10 @@ AliAODPair::AliAODPair(Bool_t rev): fQOutLCMSNotCalc(kTRUE), fQLongLCMS(0.0), fQLongLCMSNotCalc(kTRUE), + fQtLCMS(0.0), + fQtLCMSNotCalc(kTRUE), + fQt(0.0), + fQtNotCalc(kTRUE), fQInv(0.0), fQInvNotCalc(kTRUE), fInvMass(0.0), @@ -35,6 +38,10 @@ AliAODPair::AliAODPair(Bool_t rev): fKtNotCalc(kTRUE), fKStar(0.0), fKStarNotCalc(kTRUE), + fKStarOut(0.0), + fKStarSide(0.0), + fKStarLong(0.0), + fKStarCompNotCalc(kTRUE), fPInv(0.0), fQSide(0.0), fOut(0.0), @@ -80,6 +87,8 @@ AliAODPair::AliAODPair(AliVAODParticle* part1, AliVAODParticle* part2, Bool_t re fQOutLCMSNotCalc(kTRUE), fQLongLCMS(0.0), fQLongLCMSNotCalc(kTRUE), + fQtLCMS(0.0), + fQtLCMSNotCalc(kTRUE), fQInv(0.0), fQInvNotCalc(kTRUE), fInvMass(0.0), @@ -88,6 +97,10 @@ AliAODPair::AliAODPair(AliVAODParticle* part1, AliVAODParticle* part2, Bool_t re fKtNotCalc(kTRUE), fKStar(0.0), fKStarNotCalc(kTRUE), + fKStarOut(0.0), + fKStarSide(0.0), + fKStarLong(0.0), + fKStarCompNotCalc(kTRUE), fPInv(0.0), fQSide(0.0), fOut(0.0), @@ -133,6 +146,8 @@ AliAODPair::AliAODPair(const AliAODPair& in): fQOutLCMSNotCalc(kTRUE), fQLongLCMS(0.0), fQLongLCMSNotCalc(kTRUE), + fQtLCMS(0.0), + fQtLCMSNotCalc(kTRUE), fQInv(0.0), fQInvNotCalc(kTRUE), fInvMass(0.0), @@ -141,6 +156,10 @@ AliAODPair::AliAODPair(const AliAODPair& in): fKtNotCalc(kTRUE), fKStar(0.0), fKStarNotCalc(kTRUE), + fKStarOut(0.0), + fKStarSide(0.0), + fKStarLong(0.0), + fKStarCompNotCalc(kTRUE), fPInv(0.0), fQSide(0.0), fOut(0.0), @@ -298,6 +317,48 @@ Double_t AliAODPair::GetQLongLCMS() } /************************************************************************/ +Double_t AliAODPair::GetQtLCMS() +{ + //returns Q transverse CMS longitudionally co-moving + if (fQtLCMSNotCalc) + { + fQtLCMS = TMath::Hypot(GetQOutLCMS(),GetQSideLCMS()); + fQtLCMSNotCalc = kFALSE; + } + return fQtLCMS; +} +/************************************************************************/ + +Double_t AliAODPair::GetQt() +{ + //returns Q transverse CMS longitudionally co-moving + if (fQtNotCalc) + { + CalculateSums(); + CalculateDiffs(); + + Double_t dotprod = fPxSum*fPxDiff + fPySum*fPyDiff + fPzSum*fPzDiff; + Double_t klen = fPxSum*fPxSum + fPySum*fPySum + fPzSum*fPzSum; + klen = TMath::Sqrt(klen); + Double_t qlen = fPxDiff*fPxDiff + fPyDiff*fPyDiff + fPzDiff*fPzDiff; + qlen = TMath::Sqrt(qlen); + Double_t tmp = klen*qlen; + if (tmp == 0.0) + { + fQt = 10e5; + fQtNotCalc = kFALSE; + return fQt; + } + Double_t cosopenangle = dotprod/tmp; + Double_t sinopenangle = TMath::Sqrt(1.0 - cosopenangle*cosopenangle); + + fQt = sinopenangle*qlen; + fQtNotCalc = kFALSE; + } + return fQt; +} +/************************************************************************/ + Double_t AliAODPair::GetKt() { //calculates the evarage momentum of the pair @@ -359,6 +420,24 @@ Double_t AliAODPair::GetKStar() return fKStar; } /************************************************************************/ +Double_t AliAODPair::GetKStarOut() +{ + CalculateKStarComp(); + return fKStarOut; +} +/************************************************************************/ +Double_t AliAODPair::GetKStarSide() +{ + CalculateKStarComp(); + return fKStarSide; +} +/************************************************************************/ +Double_t AliAODPair::GetKStarLong() +{ + CalculateKStarComp(); + return fKStarLong; +} +/************************************************************************/ Double_t AliAODPair::GetQInv() { @@ -388,6 +467,16 @@ Double_t AliAODPair::GetGammaToLCMS() } /************************************************************************/ +Double_t AliAODPair::GetGammaToTransverse() +{ + //calculates gamma factor of the boost to LCMS + Double_t beta = 2.0*GetKt() / GetMt(); + Double_t gamma = 1.0/TMath::Sqrt(1.0 - beta*beta); + + return gamma; +} +/************************************************************************/ + Double_t AliAODPair::GetMt() { //Calculates transverse mass of the pair @@ -436,3 +525,129 @@ Double_t AliAODPair::AvDistance() return tpts1->AvarageDistance(*tpts2); } +/************************************************************************/ + +Double_t AliAODPair::GetR() +{ +//Returns distance between particles vertexes in thir CMS + + CalculateDiffs(); + + Double_t vxDiff = fPart1->Vx() - fPart2->Vx(); + Double_t vyDiff = fPart1->Vy() - fPart2->Vy(); + Double_t vzDiff = fPart1->Vz() - fPart2->Vz(); + + Double_t r = TMath::Sqrt( vxDiff*vxDiff + vyDiff*vyDiff + vzDiff*vzDiff ); + return r; + +} +/************************************************************************/ + +Double_t AliAODPair::GetRStar() +{ +//Returns distance between particles vertexes in thir CMS + + + CalculateSums(); + + Double_t klen = fPxSum*fPxSum + fPySum*fPySum + fPzSum*fPzSum; + klen = TMath::Sqrt(klen); + + Double_t aBeta = klen/fESum; + Double_t aGamma = 1.0/TMath::Sqrt(1.0 - aBeta*aBeta); + + + Double_t alpha = -TMath::ATan2(fPySum,fPzSum); + Double_t beta = TMath::ATan2(fPxSum,TMath::Hypot(fPySum,fPzSum)); + + Double_t sinalpha = TMath::Sin(alpha); + Double_t cosalpha = TMath::Cos(alpha); + Double_t sinbeta = TMath::Sin(beta); + Double_t cosbeta = TMath::Cos(beta); + + Double_t v1xP = fPart1->Vx(); + Double_t v2xP = fPart2->Vx(); + Double_t v1yP = fPart1->Vy()*cosalpha + fPart1->Vz()*sinalpha; + Double_t v2yP = fPart2->Vy()*cosalpha + fPart2->Vz()*sinalpha; + Double_t v1zP =-fPart1->Vy()*sinalpha + fPart1->Vz()*cosalpha; + Double_t v2zP =-fPart2->Vy()*sinalpha + fPart2->Vz()*cosalpha; + + +/////////////////////////////////////////////////// + +// Double_t p1yP = fPart1->Py()*cosalpha + fPart1->Pz()*sinalpha; +// Double_t p2yP = fPart2->Py()*cosalpha + fPart2->Pz()*sinalpha; +// +// Double_t p1zP =-fPart1->Py()*sinalpha + fPart1->Pz()*cosalpha; +// Double_t p2zP =-fPart2->Py()*sinalpha + fPart2->Pz()*cosalpha; +// +// +// Double_t p1x = fPart1->Px()*cosbeta - p1zP*sinbeta; +// Double_t p2x = fPart2->Px()*cosbeta - p2zP*sinbeta; +// Double_t p1z = fPart1->Px()*sinbeta + p1zP*cosbeta; +// Double_t p2z = fPart2->Px()*sinbeta + p2zP*cosbeta; + +// Info("","%f %f %f",p1yP,p2yP,p1yP+p2yP); +// Info("","%f %f %f",p1x,p2x,p1x+p2x); + +// Info("","%f %f ",p1x+p2x,p1yP+p2yP); + +/////////////////////////////////////////////////// + + + Double_t v1x = v1xP*cosbeta - v1zP*sinbeta; + Double_t v2x = v2xP*cosbeta - v2zP*sinbeta; + Double_t v1y = v1yP; + Double_t v2y = v2yP; + Double_t v1z = v1xP*sinbeta + v1zP*cosbeta; + Double_t v2z = v2xP*sinbeta + v2zP*cosbeta; + + + Double_t v1zB=aGamma*(v1z-aBeta*fPart1->T()); + Double_t v2zB=aGamma*(v2z-aBeta*fPart2->T()); + + + + Double_t dx = v1x - v2x; + Double_t dy = v1y - v2y; + Double_t dz = v1zB - v2zB; + + Double_t rstar = TMath::Sqrt( dx*dx + dy*dy + dz*dz); + + return rstar; +} +/************************************************************************/ + +void AliAODPair::MirrorSecond() +{ +//makes local copy of the second particle and mirrors their momenta +//for its deletion is responsible who calls this method + fPart2 = (AliVAODParticle*)fPart2->Clone(); + fPart2->SetMomentum(-fPart2->Px(),-fPart2->Py(),-fPart2->Pz(),fPart2->E()); + Changed(); +} +/************************************************************************/ + +void AliAODPair::DeleteSecond() +{ +//Deletes second particle + delete fPart2; + fPart2 = 0x0; +} + +void AliAODPair::Print(Option_t* /*option*/) +{ + if (fPart1) fPart1->Print(); + if (fPart2) fPart2->Print(); + + Info("Print","GetKStar() %f",GetKStar()); + Info("Print","GetKt() %f",GetKt() ); + Info("Print","QInv %f", GetQInv() ); + Info("Print","GetQOutLCMS() %f",GetQOutLCMS() ); + Info("Print","GetQSideLCMS %f",GetQSideLCMS() ); + Info("Print","GetQLongLCMS() %f", GetQLongLCMS()); + Info("Print","GetDeltaTheta() %f", GetDeltaTheta()); + Info("Print","GetDeltaPhi() %f", GetDeltaPhi()); + + +}