#include <TPolyMarker3D.h>
#include <TColor.h>
+#include <TDatabasePDG.h>
+#include <TParticlePDG.h>
+
#include <vector>
fPointingLine->DecDenyDestroy();
}
+//______________________________________________________________________________
+Float_t AliEveV0::GetInvMass(Float_t nPdgCode, Float_t pPdgCode) const
+{
+ // Returns Invariant Mass assuming the masses of the daughter particles
+ TEveVector lNegMomentum = fNegTrack->GetMomentum();
+ // Does not work properly because momenta at the primary vertex !!!!!!!
+ TEveVector lPosMomentum = fPosTrack->GetMomentum();
+ Double_t nMass=TDatabasePDG::Instance()->GetParticle(nPdgCode)->Mass();
+ Double_t pMass=TDatabasePDG::Instance()->GetParticle(pPdgCode)->Mass();
+
+ printf("\n check the mass of the particle negative %.5f positive %.5f \n",nMass,pMass);
+
+ Double_t eNeg = TMath::Sqrt(nMass*nMass + lNegMomentum.Mag2());
+ Double_t ePos = TMath::Sqrt(pMass*pMass + lPosMomentum.Mag2());
+
+ return TMath::Sqrt( (eNeg+ePos)*(eNeg+ePos) - fRecDecayP.Mag2() );
+}
+
//______________________________________________________________________________
void AliEveV0::MakeV0()
{
#include <TPolyMarker3D.h>
#include <TPolyLine3D.h>
+#include <TPDGCode.h>
+
class TH1F;
class TH2F;
Float_t GetRadius() const { return fRecDecayV.Perp(); }
Float_t GetPt() const { return fRecDecayP.Perp(); }
+ Float_t GetInvMass(Float_t nPdgCode, Float_t pPdgCode) const;
+ Float_t GetK0sInvMass() const { return GetInvMass(kPiMinus,kPiPlus); }
+ Float_t GetLambdaInvMass() const { return GetInvMass(kPiMinus,kProton); }
+ Float_t GetAntiLambdaInvMass() const { return GetInvMass(kProton,kPiPlus); }
+
Bool_t GetOnFlyStatus() const { return fOnFlyStatus; }
void SetOnFlyStatus(Bool_t fs) { fOnFlyStatus = fs; }
void AliEveV0Editor::DisplayDetailed()
{
- printf("Hura!\n");
+ printf("\n Checking invariant mass calculations: K0s %.3f lambda %.3f antilambda %.3f \n",fM->GetK0sInvMass(),fM->GetLambdaInvMass(),fM->GetAntiLambdaInvMass());
TEveWindowSlot *slot = TEveWindow::CreateWindowMainFrame();
TEveWindowPack *pack = slot->MakePack();
TEveWindowFrame *frame = slot->MakeFrame(new TRootEmbeddedCanvas());
frame->SetElementName("Details");
- TLatex* ltx = new TLatex(0.2, 0.2, "#frac{Jacques}{Zoozoo}");
+ TLatex* ltx = new TLatex(0.2, 0.2, "#eta = #frac{1}{2} #times Ln(#frac{E+p_{z}}{E-p_{z}} )");
+ ltx->SetTextSize(0.08);
ltx->Draw();
gEve->Redraw3D();
gRPhiMgr = new TEveProjectionManager();
gRPhiMgr->SetProjection(TEveProjection::kPT_RPhi);
+ gEve->AddToListTree(gRPhiMgr, kFALSE);
{
TEveProjectionAxes* a = new TEveProjectionAxes(gRPhiMgr);
a->SetMainColor(kWhite);
gRhoZMgr = new TEveProjectionManager();
gRhoZMgr->SetProjection(TEveProjection::kPT_RhoZ);
+ gEve->AddToListTree(gRhoZMgr, kFALSE);
{
TEveProjectionAxes* a = new TEveProjectionAxes(gRhoZMgr);
a->SetMainColor(kWhite);