CbmRoot
Loading...
Searching...
No Matches
HalCbmV0TempTrack.cxx
Go to the documentation of this file.
1/* Copyright (C) 2025-2025 Warsaw University of Technology, Warsaw
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Daniel Wielanek [committer] */
4#include "HalCbmV0TempTrack.h"
5
6#include <TLorentzVector.h>
7#include <TVector3.h>
8
9#include <Hal/Event.h>
10#include <Hal/ExpTrack.h>
11#include <Hal/Track.h>
12#include <Hal/V0Track.h>
13
15{
16 switch (val) {
18 return fV0Hidden.GetChi2geo();
19 } break;
21 return fV0Hidden.GetChi2Pos();
22 } break;
24 return fV0Hidden.GetChi2Neg();
25 } break;
27 //return fV0Hidden.GetChi2topo();
28 } break;
30 return fCosinePos;
31 } break;
33 return fCosineNeg;
34 } break;
36 return fV0Hidden.GetChi2Pos();
37 } break;
38 case kTriggerCut::kL: {
39 return fV0Hidden.GetDecLength();
40 } break;
41 case kTriggerCut::kDl: {
42 return fV0Hidden.GetDecDl();
43 } break;
44 case kTriggerCut::kMass: {
45 return 0;
46 } break;
47 case kTriggerCut::kPt: {
48 return fRecoTrack.GetMomentum().Pt();
49 } break;
50 case kTriggerCut::kEta: {
51 return fRecoTrack.GetMomentum().Eta();
52 } break;
53 case kTriggerCut::kRxy: {
54 return fRecoTrack.GetDCA().Pt();
55 } break;
56 case kTriggerCut::kRz: {
57 return fRecoTrack.GetDCA().Z();
58 } break;
60 return fCosineTopo;
61 } break;
62 case kTriggerCut::kPid: {
63 return fV0Hidden.GetPdg();
64 } break;
65 }
66 return 0;
67}
68
69void HalCbmV0TempTrack::ComputeStuff(Hal::Event* event, Hal::Track* assignedTrack)
70{
71 auto dau1 = (HalCbmTrack*) event->GetTrack(fV0Hidden.GetPosId());
72 auto dau2 = (HalCbmTrack*) event->GetTrack(fV0Hidden.GetNegId());
73 TVector3 vtx = event->GetVertex()->Vect();
74 auto expTrack = (Hal::ExpTrack*) assignedTrack;
75 TVector3 pos(expTrack->GetDCA()); //or + event pos?
76 TVector3 mom(expTrack->GetPx(), expTrack->GetPy(), expTrack->GetPz());
77 auto shift = mom.Unit() * fV0Hidden.GetDecLength() + vtx; //new position + pos gorsze wyniki
78 fV0Hidden.SetDecayPos(shift.X(), shift.Y(), shift.Z());
79 TVector3 dau1mom, dau2mom, dau1pos, dau2pos;
80 dau1pos = dau1->GetHelix().Eval(shift.Z(), dau1mom);
81 dau2pos = dau2->GetHelix().Eval(shift.Z(), dau2mom);
82#ifdef DEBUG_EXTR
83 std::cout << "DECPOS " << std::endl;
84 std::cout << __FILE__ << "____" << std::endl;
85 auto print = [](TString t, TVector3 x) {
86 std::cout << Form("%4.4f %4.4f %4.4f %s", x.X(), x.Y(), x.Z(), t.Data()) << std::endl;
87 };
88 print("Dau1dec", dau1pos);
89 print("Dau2dec", dau2pos);
90
91 print("Dau1vec", dau1mom);
92 print("Dau2vec", dau2mom);
93#endif
94 fV0Hidden.SetMomPos(dau1mom.X(), dau1mom.Y(), dau1mom.Z());
95 fV0Hidden.SetMomNeg(dau2mom.X(), dau2mom.Y(), dau2mom.Z());
96 fV0Hidden.Recalc(*assignedTrack);
97}
HalCbmV0Track fV0Hidden
void ComputeStuff(Hal::Event *event, Hal::Track *assignedTrack)
Double_t GetValue(kTriggerCut val)