Project
Loading...
Searching...
No Matches
Decay3Body.h
Go to the documentation of this file.
1// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3// All rights not expressly granted are reserved.
4//
5// This software is distributed under the terms of the GNU General Public
6// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7//
8// In applying this license CERN does not waive the privileges and immunities
9// granted to it by virtue of its status as an Intergovernmental Organization
10// or submit itself to any jurisdiction.
11
12#ifndef ALICEO2_3BODY_H
13#define ALICEO2_3BODY_H
14
17#include <array>
18#include <Math/SVector.h>
19
20namespace o2
21{
22namespace dataformats
23{
24
26{
27 public:
30
31 Decay3Body() = default;
32 Decay3Body(const std::array<float, 3>& xyz, const std::array<float, 3>& pxyz, const std::array<float, 6>& covxyz, const Track& tr0, const Track& tr1, const Track& tr2, o2::track::PID pid = o2::track::PID::HyperTriton);
33
34 const Track& getProng(int i) const { return mProngs[i]; }
35 Track& getProng(int i) { return mProngs[i]; }
36 void setProng(int i, const Track& t) { mProngs[i] = t; }
37
38 float getCosPA() const { return mCosPA; }
39 void setCosPA(float c) { mCosPA = c; }
40
41 float getDCA() const { return mDCA; }
42 void setDCA(float d) { mDCA = d; }
43
44 float calcMass2() const { return calcMass2PID(mProngs[0].getPID(), mProngs[1].getPID(), mProngs[2].getPID()); }
45 float calcMass2PID(int pid0, int pid1, int pid2) const { return calcMass2(PID::getMass2(pid0), PID::getMass2(pid1), PID::getMass2(pid2)); }
46 float calcMass2(float mass0, float mass1, float mass2) const;
47
48 float calcR2() const { return getX() * getX() + getY() * getY(); }
49
50 protected:
51 std::array<Track, 3> mProngs; // prongs kinematics at vertex
52 float mCosPA = 0; // cos of pointing angle
53 float mDCA = 9990; // distance of closest approach of prongs
54
56};
57
58} // namespace dataformats
59} // namespace o2
60#endif
particle ids, masses, names class definition
Base track model for the Barrel, params only, w/o covariance.
int32_t i
uint32_t pid1
Definition RawData.h:2
uint32_t c
Definition RawData.h:2
uint32_t pid0
Definition RawData.h:1
uint32_t pid2
Definition RawData.h:3
TO BE DONE: extend to generic N body vertex.
Definition Decay3Body.h:26
float calcMass2PID(int pid0, int pid1, int pid2) const
Definition Decay3Body.h:45
const Track & getProng(int i) const
Definition Decay3Body.h:34
o2::track::TrackParCov Track
Definition Decay3Body.h:28
void setProng(int i, const Track &t)
Definition Decay3Body.h:36
std::array< Track, 3 > mProngs
Definition Decay3Body.h:51
static constexpr ID HyperTriton
Definition PID.h:113
TrackParCovF TrackParCov
Definition Track.h:33
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...