Skip to content

Commit 3c97523

Browse files
authored
[PWGUD] MC handling for diTau process (#13686)
1 parent 01cf580 commit 3c97523

File tree

3 files changed

+1705
-0
lines changed

3 files changed

+1705
-0
lines changed
Lines changed: 157 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,157 @@
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+
///
13+
/// \file TauThreeProngEventTables.h
14+
/// \author Adam Matyja <adam.tomasz.matyja@cern.ch>, IFJ PAN, Cracow
15+
/// \since 2025-09-06
16+
/// \brief A table to store information about events preselected to be candidates for UPC gammagamma->tautau in 1+3 ot 3+3 topology
17+
///
18+
19+
#ifndef PWGUD_DATAMODEL_TAUTHREEPRONGEVENTTABLES_H_
20+
#define PWGUD_DATAMODEL_TAUTHREEPRONGEVENTTABLES_H_
21+
22+
#include "Framework/AnalysisDataModel.h"
23+
// derived tables for tautau->4 (=1+3) tracks
24+
namespace o2::aod
25+
{
26+
namespace tautree
27+
{
28+
// event info
29+
DECLARE_SOA_COLUMN(RunNumber, runNumber, int32_t);
30+
DECLARE_SOA_COLUMN(Bc, bc, int);
31+
DECLARE_SOA_COLUMN(TotalTracks, totalTracks, int);
32+
DECLARE_SOA_COLUMN(NumContrib, numContrib, int8_t);
33+
DECLARE_SOA_COLUMN(RctOk, rctOk, int);
34+
// DECLARE_SOA_COLUMN(GlobalNonPVtracks, globalNonPVtracks, int);
35+
// DECLARE_SOA_COLUMN(PosX, posX, float);
36+
// DECLARE_SOA_COLUMN(PosY, posY, float);
37+
DECLARE_SOA_COLUMN(PosZ, posZ, float);
38+
DECLARE_SOA_COLUMN(FlagUPC, flagUPC, int8_t);
39+
DECLARE_SOA_COLUMN(OccupancyInTime, occupancyInTime, int);
40+
DECLARE_SOA_COLUMN(HadronicRate, hadronicRate, double);
41+
DECLARE_SOA_COLUMN(Trs, trs, int8_t);
42+
DECLARE_SOA_COLUMN(Trofs, trofs, int8_t);
43+
DECLARE_SOA_COLUMN(Hmpr, hmpr, int8_t);
44+
DECLARE_SOA_COLUMN(Tfb, tfb, int8_t);
45+
DECLARE_SOA_COLUMN(ItsRofb, itsRofb, int8_t);
46+
DECLARE_SOA_COLUMN(Sbp, sbp, int8_t);
47+
DECLARE_SOA_COLUMN(ZvtxFT0vsPv, zvtxFT0vsPv, int8_t);
48+
DECLARE_SOA_COLUMN(VtxITSTPC, vtxITSTPC, int8_t);
49+
DECLARE_SOA_COLUMN(ZdcAenergy, zdcAenergy, float);
50+
DECLARE_SOA_COLUMN(ZdcCenergy, zdcCenergy, float);
51+
// DECLARE_SOA_COLUMN(Qtot, qtot, int8_t);
52+
// FIT info
53+
DECLARE_SOA_COLUMN(TotalFT0AmplitudeA, totalFT0AmplitudeA, float);
54+
DECLARE_SOA_COLUMN(TotalFT0AmplitudeC, totalFT0AmplitudeC, float);
55+
DECLARE_SOA_COLUMN(TotalFV0AmplitudeA, totalFV0AmplitudeA, float);
56+
// DECLARE_SOA_COLUMN(TimeFT0A, timeFT0A, float);
57+
// DECLARE_SOA_COLUMN(TimeFT0C, timeFT0C, float);
58+
// DECLARE_SOA_COLUMN(TimeFV0A, timeFV0A, float);
59+
// tracks
60+
DECLARE_SOA_COLUMN(TrkPx, trkPx, float[6]);
61+
DECLARE_SOA_COLUMN(TrkPy, trkPy, float[6]);
62+
DECLARE_SOA_COLUMN(TrkPz, trkPz, float[6]);
63+
DECLARE_SOA_COLUMN(TrkSign, trkSign, int[6]);
64+
DECLARE_SOA_COLUMN(TrkDCAxy, trkDCAxy, float[6]);
65+
DECLARE_SOA_COLUMN(TrkDCAz, trkDCAz, float[6]);
66+
DECLARE_SOA_COLUMN(TrkTPCcr, trkTPCcr, int[6]);
67+
DECLARE_SOA_COLUMN(TrkTPCfind, trkTPCfind, int[6]);
68+
DECLARE_SOA_COLUMN(TrkTPCchi2, trkTPCchi2, float[6]);
69+
DECLARE_SOA_COLUMN(TrkITSchi2, trkITSchi2, float[6]);
70+
DECLARE_SOA_COLUMN(TrkITScl, trkITScl, int[6]);
71+
// PID
72+
DECLARE_SOA_COLUMN(TrkTPCsignal, trkTPCsignal, float[6]);
73+
DECLARE_SOA_COLUMN(TrkTPCnSigmaEl, trkTPCnSigmaEl, float[6]);
74+
DECLARE_SOA_COLUMN(TrkTPCnSigmaPi, trkTPCnSigmaPi, float[6]);
75+
DECLARE_SOA_COLUMN(TrkTPCnSigmaKa, trkTPCnSigmaKa, float[6]);
76+
DECLARE_SOA_COLUMN(TrkTPCnSigmaPr, trkTPCnSigmaPr, float[6]);
77+
DECLARE_SOA_COLUMN(TrkTPCnSigmaMu, trkTPCnSigmaMu, float[6]);
78+
DECLARE_SOA_COLUMN(TrkTOFbeta, trkTOFbeta, float[6]);
79+
DECLARE_SOA_COLUMN(TrkTOFnSigmaEl, trkTOFnSigmaEl, float[6]);
80+
DECLARE_SOA_COLUMN(TrkTOFnSigmaPi, trkTOFnSigmaPi, float[6]);
81+
DECLARE_SOA_COLUMN(TrkTOFnSigmaKa, trkTOFnSigmaKa, float[6]);
82+
DECLARE_SOA_COLUMN(TrkTOFnSigmaPr, trkTOFnSigmaPr, float[6]);
83+
DECLARE_SOA_COLUMN(TrkTOFnSigmaMu, trkTOFnSigmaMu, float[6]);
84+
DECLARE_SOA_COLUMN(TrkTOFchi2, trkTOFchi2, float[6]);
85+
// truth event
86+
DECLARE_SOA_COLUMN(TrueChannel, trueChannel, int);
87+
DECLARE_SOA_COLUMN(TrueHasRecoColl, trueHasRecoColl, bool);
88+
// DECLARE_SOA_COLUMN(TruePosX, truePosX, float);
89+
// DECLARE_SOA_COLUMN(TruePosY, truePosY, float);
90+
DECLARE_SOA_COLUMN(TruePosZ, truePosZ, float);
91+
// truth tau particles // index 0: tau+ // index 1: tau -
92+
DECLARE_SOA_COLUMN(TrueTauPx, trueTauPx, float[2]);
93+
DECLARE_SOA_COLUMN(TrueTauPy, trueTauPy, float[2]);
94+
DECLARE_SOA_COLUMN(TrueTauPz, trueTauPz, float[2]);
95+
// truth tau daughter particles
96+
DECLARE_SOA_COLUMN(TrueDaugPx, trueDaugPx, float[6]);
97+
DECLARE_SOA_COLUMN(TrueDaugPy, trueDaugPy, float[6]);
98+
DECLARE_SOA_COLUMN(TrueDaugPz, trueDaugPz, float[6]);
99+
DECLARE_SOA_COLUMN(TrueDaugPdgCode, trueDaugPdgCode, int[6]);
100+
DECLARE_SOA_COLUMN(Problem, problem, int8_t);
101+
} // namespace tautree
102+
103+
DECLARE_SOA_TABLE(DataTauFourTracks, "AOD", "TAUFOURTRACK",
104+
tautree::RunNumber, tautree::Bc, tautree::TotalTracks, tautree::NumContrib,
105+
tautree::RctOk,
106+
// tautree::GlobalNonPVtracks,
107+
// tautree::PosX, tautree::PosY,
108+
tautree::PosZ,
109+
tautree::FlagUPC, tautree::OccupancyInTime, tautree::HadronicRate,
110+
//
111+
tautree::Trs, tautree::Trofs, tautree::Hmpr,
112+
tautree::Tfb, tautree::ItsRofb, tautree::Sbp, tautree::ZvtxFT0vsPv, tautree::VtxITSTPC,
113+
tautree::ZdcAenergy, tautree::ZdcCenergy,
114+
// tautree::Qtot,
115+
tautree::TotalFT0AmplitudeA, tautree::TotalFT0AmplitudeC, tautree::TotalFV0AmplitudeA,
116+
// tautree::TimeFT0A, tautree::TimeFT0C, tautree::TimeFV0A,
117+
tautree::TrkPx, tautree::TrkPy, tautree::TrkPz,
118+
tautree::TrkSign,
119+
tautree::TrkDCAxy, tautree::TrkDCAz,
120+
tautree::TrkTPCcr,
121+
tautree::TrkTPCfind, tautree::TrkTPCchi2, tautree::TrkITSchi2, tautree::TrkITScl,
122+
tautree::TrkTPCsignal, tautree::TrkTPCnSigmaEl, tautree::TrkTPCnSigmaPi, tautree::TrkTPCnSigmaKa, tautree::TrkTPCnSigmaPr, tautree::TrkTPCnSigmaMu,
123+
tautree::TrkTOFbeta, tautree::TrkTOFnSigmaEl, tautree::TrkTOFnSigmaPi, tautree::TrkTOFnSigmaKa, tautree::TrkTOFnSigmaPr, tautree::TrkTOFnSigmaMu,
124+
tautree::TrkTOFchi2);
125+
126+
DECLARE_SOA_TABLE(TrueTauFourTracks, "AOD", "TRUETAU",
127+
tautree::RunNumber, tautree::Bc, tautree::TotalTracks, tautree::NumContrib,
128+
tautree::RctOk,
129+
// tautree::GlobalNonPVtracks,
130+
// tautree::PosX, tautree::PosY,
131+
tautree::PosZ,
132+
tautree::FlagUPC, tautree::OccupancyInTime, tautree::HadronicRate,
133+
tautree::Trs, tautree::Trofs, tautree::Hmpr,
134+
tautree::Tfb, tautree::ItsRofb, tautree::Sbp, tautree::ZvtxFT0vsPv, tautree::VtxITSTPC,
135+
tautree::ZdcAenergy, tautree::ZdcCenergy,
136+
// tautree::Qtot,
137+
tautree::TotalFT0AmplitudeA, tautree::TotalFT0AmplitudeC, tautree::TotalFV0AmplitudeA,
138+
// tautree::TimeFT0A, tautree::TimeFT0C, tautree::TimeFV0A,
139+
tautree::TrkPx, tautree::TrkPy, tautree::TrkPz,
140+
tautree::TrkSign,
141+
tautree::TrkDCAxy, tautree::TrkDCAz,
142+
tautree::TrkTPCcr,
143+
tautree::TrkTPCfind, tautree::TrkTPCchi2, tautree::TrkITSchi2, tautree::TrkITScl,
144+
tautree::TrkTPCsignal, tautree::TrkTPCnSigmaEl, tautree::TrkTPCnSigmaPi, tautree::TrkTPCnSigmaKa, tautree::TrkTPCnSigmaPr, tautree::TrkTPCnSigmaMu,
145+
tautree::TrkTOFbeta, tautree::TrkTOFnSigmaEl, tautree::TrkTOFnSigmaPi, tautree::TrkTOFnSigmaKa, tautree::TrkTOFnSigmaPr, tautree::TrkTOFnSigmaMu,
146+
tautree::TrkTOFchi2,
147+
tautree::TrueChannel,
148+
tautree::TrueHasRecoColl,
149+
tautree::TruePosZ,
150+
tautree::TrueTauPx, tautree::TrueTauPy, tautree::TrueTauPz,
151+
tautree::TrueDaugPx, tautree::TrueDaugPy, tautree::TrueDaugPz,
152+
tautree::TrueDaugPdgCode,
153+
tautree::Problem);
154+
155+
} // namespace o2::aod
156+
157+
#endif // PWGUD_DATAMODEL_TAUTHREEPRONGEVENTTABLES_H_

PWGUD/TableProducer/CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,3 +55,8 @@ o2physics_add_dpl_workflow(udmccollisions-to-udcollisions
5555
SOURCES udMcCollisions2udCollisions.cxx
5656
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore
5757
COMPONENT_NAME Analysis)
58+
59+
o2physics_add_dpl_workflow(tau-three-prong-event-table-producer
60+
SOURCES tauThreeProngEventTableProducer.cxx
61+
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore
62+
COMPONENT_NAME Analysis)

0 commit comments

Comments
 (0)