|
27 | 27 | #include <array> |
28 | 28 | #include <cmath> |
29 | 29 |
|
| 30 | +namespace o2::upgrade::pid |
| 31 | +{ |
| 32 | +static constexpr float NoPidSignal = -999.f; |
| 33 | +static constexpr float NoPidSignalThreshold = -990.f; |
| 34 | +} // namespace o2::upgrade::pid |
| 35 | + |
30 | 36 | namespace o2::aod |
31 | 37 | { |
32 | 38 | namespace otfcascade |
@@ -75,6 +81,221 @@ using UpgradeCascade = UpgradeCascades::iterator; |
75 | 81 | DECLARE_SOA_TABLE(A3CascadeMcLabels, "AOD", "A3CASCADEMCLABELS", |
76 | 82 | o2::soa::Index<>, otfcascade::McParticleId); |
77 | 83 |
|
| 84 | +namespace casc_pid |
| 85 | +{ |
| 86 | + |
| 87 | +// Xi |
| 88 | +DECLARE_SOA_COLUMN(NSigmaInnerTofXiBachPi, nSigmaInnerTofXiBachPi, float); |
| 89 | +DECLARE_SOA_COLUMN(NSigmaInnerTofXiPosPr, nSigmaInnerTofXiPosPr, float); |
| 90 | +DECLARE_SOA_COLUMN(NSigmaInnerTofXiPosPi, nSigmaInnerTofXiPosPi, float); |
| 91 | +DECLARE_SOA_COLUMN(NSigmaInnerTofXiNegPr, nSigmaInnerTofXiNegPr, float); |
| 92 | +DECLARE_SOA_COLUMN(NSigmaInnerTofXiNegPi, nSigmaInnerTofXiNegPi, float); |
| 93 | +DECLARE_SOA_DYNAMIC_COLUMN(HasInnerTofXiBachPi, hasInnerTofXiBachPi, |
| 94 | + [](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); }); |
| 95 | +DECLARE_SOA_DYNAMIC_COLUMN(HasInnerTofXiPosPr, hasInnerTofXiPosPr, |
| 96 | + [](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); }); |
| 97 | +DECLARE_SOA_DYNAMIC_COLUMN(HasInnerTofXiPosPi, hasInnerTofXiPosPi, |
| 98 | + [](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); }); |
| 99 | +DECLARE_SOA_DYNAMIC_COLUMN(HasInnerTofXiNegPr, hasInnerTofXiNegPr, |
| 100 | + [](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); }); |
| 101 | +DECLARE_SOA_DYNAMIC_COLUMN(HasInnerTofXiNegPi, hasInnerTofXiNegPi, |
| 102 | + [](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); }); |
| 103 | + |
| 104 | +DECLARE_SOA_COLUMN(NSigmaOuterTofXiBachPi, nSigmaOuterTofXiBachPi, float); |
| 105 | +DECLARE_SOA_COLUMN(NSigmaOuterTofXiPosPr, nSigmaOuterTofXiPosPr, float); |
| 106 | +DECLARE_SOA_COLUMN(NSigmaOuterTofXiPosPi, nSigmaOuterTofXiPosPi, float); |
| 107 | +DECLARE_SOA_COLUMN(NSigmaOuterTofXiNegPr, nSigmaOuterTofXiNegPr, float); |
| 108 | +DECLARE_SOA_COLUMN(NSigmaOuterTofXiNegPi, nSigmaOuterTofXiNegPi, float); |
| 109 | +DECLARE_SOA_DYNAMIC_COLUMN(HasOuterTofXiBachPi, hasOuterTofXiBachPi, |
| 110 | + [](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); }); |
| 111 | +DECLARE_SOA_DYNAMIC_COLUMN(HasOuterTofXiPosPr, hasOuterTofXiPosPr, |
| 112 | + [](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); }); |
| 113 | +DECLARE_SOA_DYNAMIC_COLUMN(HasOuterTofXiPosPi, hasOuterTofXiPosPi, |
| 114 | + [](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); }); |
| 115 | +DECLARE_SOA_DYNAMIC_COLUMN(HasOuterTofXiNegPr, hasOuterTofXiNegPr, |
| 116 | + [](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); }); |
| 117 | +DECLARE_SOA_DYNAMIC_COLUMN(HasOuterTofXiNegPi, hasOuterTofXiNegPi, |
| 118 | + [](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); }); |
| 119 | + |
| 120 | +DECLARE_SOA_COLUMN(ExpectedInnerTofXiBachPi, expectedInnerTofXiBachPi, float); |
| 121 | +DECLARE_SOA_COLUMN(ExpectedInnerTofXiPosPr, expectedInnerTofXiPosPr, float); |
| 122 | +DECLARE_SOA_COLUMN(ExpectedInnerTofXiPosPi, expectedInnerTofXiPosPi, float); |
| 123 | +DECLARE_SOA_COLUMN(ExpectedInnerTofXiNegPr, expectedInnerTofXiNegPr, float); |
| 124 | +DECLARE_SOA_COLUMN(ExpectedInnerTofXiNegPi, expectedInnerTofXiNegPi, float); |
| 125 | + |
| 126 | +DECLARE_SOA_COLUMN(ExpectedOuterTofXiBachPi, expectedOuterTofXiBachPi, float); |
| 127 | +DECLARE_SOA_COLUMN(ExpectedOuterTofXiPosPr, expectedOuterTofXiPosPr, float); |
| 128 | +DECLARE_SOA_COLUMN(ExpectedOuterTofXiPosPi, expectedOuterTofXiPosPi, float); |
| 129 | +DECLARE_SOA_COLUMN(ExpectedOuterTofXiNegPr, expectedOuterTofXiNegPr, float); |
| 130 | +DECLARE_SOA_COLUMN(ExpectedOuterTofXiNegPi, expectedOuterTofXiNegPi, float); |
| 131 | + |
| 132 | +DECLARE_SOA_COLUMN(MeasuredInnerTofXiBachPi, measuredInnerTofXiBachPi, float); |
| 133 | +DECLARE_SOA_COLUMN(MeasuredInnerTofXiPosPr, measuredInnerTofXiPosPr, float); |
| 134 | +DECLARE_SOA_COLUMN(MeasuredInnerTofXiPosPi, measuredInnerTofXiPosPi, float); |
| 135 | +DECLARE_SOA_COLUMN(MeasuredInnerTofXiNegPr, measuredInnerTofXiNegPr, float); |
| 136 | +DECLARE_SOA_COLUMN(MeasuredInnerTofXiNegPi, measuredInnerTofXiNegPi, float); |
| 137 | + |
| 138 | +DECLARE_SOA_COLUMN(MeasuredOuterTofXiBachPi, measuredOuterTofXiBachPi, float); |
| 139 | +DECLARE_SOA_COLUMN(MeasuredOuterTofXiPosPr, measuredOuterTofXiPosPr, float); |
| 140 | +DECLARE_SOA_COLUMN(MeasuredOuterTofXiPosPi, measuredOuterTofXiPosPi, float); |
| 141 | +DECLARE_SOA_COLUMN(MeasuredOuterTofXiNegPr, measuredOuterTofXiNegPr, float); |
| 142 | +DECLARE_SOA_COLUMN(MeasuredOuterTofXiNegPi, measuredOuterTofXiNegPi, float); |
| 143 | + |
| 144 | +// Omega |
| 145 | +DECLARE_SOA_COLUMN(NSigmaInnerTofOmegaBachKa, nSigmaInnerTofOmegaBachKa, float); |
| 146 | +DECLARE_SOA_COLUMN(NSigmaInnerTofOmegaPosPr, nSigmaInnerTofOmegaPosPr, float); |
| 147 | +DECLARE_SOA_COLUMN(NSigmaInnerTofOmegaPosPi, nSigmaInnerTofOmegaPosPi, float); |
| 148 | +DECLARE_SOA_COLUMN(NSigmaInnerTofOmegaNegPr, nSigmaInnerTofOmegaNegPr, float); |
| 149 | +DECLARE_SOA_COLUMN(NSigmaInnerTofOmegaNegPi, nSigmaInnerTofOmegaNegPi, float); |
| 150 | +DECLARE_SOA_DYNAMIC_COLUMN(HasInnerTofOmegaBachKa, hasInnerTofOmegaBachKa, |
| 151 | + [](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); }); |
| 152 | +DECLARE_SOA_DYNAMIC_COLUMN(HasInnerTofOmegaPosPr, hasInnerTofOmegaPosPr, |
| 153 | + [](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); }); |
| 154 | +DECLARE_SOA_DYNAMIC_COLUMN(HasInnerTofOmegaPosPi, hasInnerTofOmegaPosPi, |
| 155 | + [](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); }); |
| 156 | +DECLARE_SOA_DYNAMIC_COLUMN(HasInnerTofOmegaNegPr, hasInnerTofOmegaNegPr, |
| 157 | + [](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); }); |
| 158 | +DECLARE_SOA_DYNAMIC_COLUMN(HasInnerTofOmegaNegPi, hasInnerTofOmegaNegPi, |
| 159 | + [](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); }); |
| 160 | + |
| 161 | +DECLARE_SOA_COLUMN(NSigmaOuterTofOmegaBachKa, nSigmaOuterTofOmegaBachKa, float); |
| 162 | +DECLARE_SOA_COLUMN(NSigmaOuterTofOmegaPosPr, nSigmaOuterTofOmegaPosPr, float); |
| 163 | +DECLARE_SOA_COLUMN(NSigmaOuterTofOmegaPosPi, nSigmaOuterTofOmegaPosPi, float); |
| 164 | +DECLARE_SOA_COLUMN(NSigmaOuterTofOmegaNegPr, nSigmaOuterTofOmegaNegPr, float); |
| 165 | +DECLARE_SOA_COLUMN(NSigmaOuterTofOmegaNegPi, nSigmaOuterTofOmegaNegPi, float); |
| 166 | +DECLARE_SOA_DYNAMIC_COLUMN(HasOuterTofOmegaBachKa, hasOuterTofOmegaBachKa, |
| 167 | + [](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); }); |
| 168 | +DECLARE_SOA_DYNAMIC_COLUMN(HasOuterTofOmegaPosPr, hasOuterTofOmegaPosPr, |
| 169 | + [](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); }); |
| 170 | +DECLARE_SOA_DYNAMIC_COLUMN(HasOuterTofOmegaPosPi, hasOuterTofOmegaPosPi, |
| 171 | + [](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); }); |
| 172 | +DECLARE_SOA_DYNAMIC_COLUMN(HasOuterTofOmegaNegPr, hasOuterTofOmegaNegPr, |
| 173 | + [](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); }); |
| 174 | +DECLARE_SOA_DYNAMIC_COLUMN(HasOuterTofOmegaNegPi, hasOuterTofOmegaNegPi, |
| 175 | + [](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); }); |
| 176 | + |
| 177 | +DECLARE_SOA_COLUMN(ExpectedInnerTofOmegaBachKa, expectedInnerTofOmegaBachKa, float); |
| 178 | +DECLARE_SOA_COLUMN(ExpectedInnerTofOmegaPosPr, expectedInnerTofOmegaPosPr, float); |
| 179 | +DECLARE_SOA_COLUMN(ExpectedInnerTofOmegaPosPi, expectedInnerTofOmegaPosPi, float); |
| 180 | +DECLARE_SOA_COLUMN(ExpectedInnerTofOmegaNegPr, expectedInnerTofOmegaNegPr, float); |
| 181 | +DECLARE_SOA_COLUMN(ExpectedInnerTofOmegaNegPi, expectedInnerTofOmegaNegPi, float); |
| 182 | + |
| 183 | +DECLARE_SOA_COLUMN(ExpectedOuterTofOmegaBachKa, expectedOuterTofOmegaBachKa, float); |
| 184 | +DECLARE_SOA_COLUMN(ExpectedOuterTofOmegaPosPr, expectedOuterTofOmegaPosPr, float); |
| 185 | +DECLARE_SOA_COLUMN(ExpectedOuterTofOmegaPosPi, expectedOuterTofOmegaPosPi, float); |
| 186 | +DECLARE_SOA_COLUMN(ExpectedOuterTofOmegaNegPr, expectedOuterTofOmegaNegPr, float); |
| 187 | +DECLARE_SOA_COLUMN(ExpectedOuterTofOmegaNegPi, expectedOuterTofOmegaNegPi, float); |
| 188 | + |
| 189 | +DECLARE_SOA_COLUMN(MeasuredInnerTofOmegaBachKa, measuredInnerTofOmegaBachKa, float); |
| 190 | +DECLARE_SOA_COLUMN(MeasuredInnerTofOmegaPosPr, measuredInnerTofOmegaPosPr, float); |
| 191 | +DECLARE_SOA_COLUMN(MeasuredInnerTofOmegaPosPi, measuredInnerTofOmegaPosPi, float); |
| 192 | +DECLARE_SOA_COLUMN(MeasuredInnerTofOmegaNegPr, measuredInnerTofOmegaNegPr, float); |
| 193 | +DECLARE_SOA_COLUMN(MeasuredInnerTofOmegaNegPi, measuredInnerTofOmegaNegPi, float); |
| 194 | + |
| 195 | +DECLARE_SOA_COLUMN(MeasuredOuterTofOmegaBachKa, measuredOuterTofOmegaBachKa, float); |
| 196 | +DECLARE_SOA_COLUMN(MeasuredOuterTofOmegaPosPr, measuredOuterTofOmegaPosPr, float); |
| 197 | +DECLARE_SOA_COLUMN(MeasuredOuterTofOmegaPosPi, measuredOuterTofOmegaPosPi, float); |
| 198 | +DECLARE_SOA_COLUMN(MeasuredOuterTofOmegaNegPr, measuredOuterTofOmegaNegPr, float); |
| 199 | +DECLARE_SOA_COLUMN(MeasuredOuterTofOmegaNegPi, measuredOuterTofOmegaNegPi, float); |
| 200 | + |
| 201 | +} // namespace casc_pid |
| 202 | + |
| 203 | +DECLARE_SOA_TABLE(A3XiInnerTofPid, "AOD", "A3XIITOFPID", |
| 204 | + casc_pid::NSigmaInnerTofXiBachPi, |
| 205 | + casc_pid::NSigmaInnerTofXiPosPr, |
| 206 | + casc_pid::NSigmaInnerTofXiPosPi, |
| 207 | + casc_pid::NSigmaInnerTofXiNegPr, |
| 208 | + casc_pid::NSigmaInnerTofXiNegPi, |
| 209 | + casc_pid::HasInnerTofXiBachPi<casc_pid::NSigmaInnerTofXiBachPi>, |
| 210 | + casc_pid::HasInnerTofXiPosPr<casc_pid::NSigmaInnerTofXiPosPr>, |
| 211 | + casc_pid::HasInnerTofXiPosPi<casc_pid::NSigmaInnerTofXiPosPi>, |
| 212 | + casc_pid::HasInnerTofXiNegPr<casc_pid::NSigmaInnerTofXiNegPr>, |
| 213 | + casc_pid::HasInnerTofXiNegPi<casc_pid::NSigmaInnerTofXiNegPi>); |
| 214 | + |
| 215 | +DECLARE_SOA_TABLE(A3XiOuterTofPid, "AOD", "A3XIOTOFPID", |
| 216 | + casc_pid::NSigmaOuterTofXiBachPi, |
| 217 | + casc_pid::NSigmaOuterTofXiPosPr, |
| 218 | + casc_pid::NSigmaOuterTofXiPosPi, |
| 219 | + casc_pid::NSigmaOuterTofXiNegPr, |
| 220 | + casc_pid::NSigmaOuterTofXiNegPi, |
| 221 | + casc_pid::HasOuterTofXiBachPi<casc_pid::NSigmaOuterTofXiBachPi>, |
| 222 | + casc_pid::HasOuterTofXiPosPr<casc_pid::NSigmaOuterTofXiPosPr>, |
| 223 | + casc_pid::HasOuterTofXiPosPi<casc_pid::NSigmaOuterTofXiPosPi>, |
| 224 | + casc_pid::HasOuterTofXiNegPr<casc_pid::NSigmaOuterTofXiNegPr>, |
| 225 | + casc_pid::HasOuterTofXiNegPi<casc_pid::NSigmaOuterTofXiNegPi>); |
| 226 | + |
| 227 | +DECLARE_SOA_TABLE(A3OmegaInnerTofPid, "AOD", "A3OMITOFPID", |
| 228 | + casc_pid::NSigmaInnerTofOmegaBachKa, |
| 229 | + casc_pid::NSigmaInnerTofOmegaPosPr, |
| 230 | + casc_pid::NSigmaInnerTofOmegaPosPi, |
| 231 | + casc_pid::NSigmaInnerTofOmegaNegPr, |
| 232 | + casc_pid::NSigmaInnerTofOmegaNegPi, |
| 233 | + casc_pid::HasInnerTofOmegaBachKa<casc_pid::NSigmaInnerTofOmegaBachKa>, |
| 234 | + casc_pid::HasInnerTofOmegaPosPr<casc_pid::NSigmaInnerTofOmegaPosPr>, |
| 235 | + casc_pid::HasInnerTofOmegaPosPi<casc_pid::NSigmaInnerTofOmegaPosPi>, |
| 236 | + casc_pid::HasInnerTofOmegaNegPr<casc_pid::NSigmaInnerTofOmegaNegPr>, |
| 237 | + casc_pid::HasInnerTofOmegaNegPi<casc_pid::NSigmaInnerTofOmegaNegPi>); |
| 238 | + |
| 239 | +DECLARE_SOA_TABLE(A3OmegaOuterTofPid, "AOD", "A3OMOTOFPID", |
| 240 | + casc_pid::NSigmaOuterTofOmegaBachKa, |
| 241 | + casc_pid::NSigmaOuterTofOmegaPosPr, |
| 242 | + casc_pid::NSigmaOuterTofOmegaPosPi, |
| 243 | + casc_pid::NSigmaOuterTofOmegaNegPr, |
| 244 | + casc_pid::NSigmaOuterTofOmegaNegPi, |
| 245 | + casc_pid::HasOuterTofOmegaBachKa<casc_pid::NSigmaOuterTofOmegaBachKa>, |
| 246 | + casc_pid::HasOuterTofOmegaPosPr<casc_pid::NSigmaOuterTofOmegaPosPr>, |
| 247 | + casc_pid::HasOuterTofOmegaPosPi<casc_pid::NSigmaOuterTofOmegaPosPi>, |
| 248 | + casc_pid::HasOuterTofOmegaNegPr<casc_pid::NSigmaOuterTofOmegaNegPr>, |
| 249 | + casc_pid::HasOuterTofOmegaNegPi<casc_pid::NSigmaOuterTofOmegaNegPi>); |
| 250 | + |
| 251 | +DECLARE_SOA_TABLE(A3XiExpectedInnerTimes, "AOD", "A3XIITIMES", |
| 252 | + casc_pid::ExpectedInnerTofXiBachPi, |
| 253 | + casc_pid::ExpectedInnerTofXiPosPr, |
| 254 | + casc_pid::ExpectedInnerTofXiPosPi, |
| 255 | + casc_pid::ExpectedInnerTofXiNegPr, |
| 256 | + casc_pid::ExpectedInnerTofXiNegPi, |
| 257 | + casc_pid::MeasuredInnerTofXiBachPi, |
| 258 | + casc_pid::MeasuredInnerTofXiPosPr, |
| 259 | + casc_pid::MeasuredInnerTofXiPosPi, |
| 260 | + casc_pid::MeasuredInnerTofXiNegPr, |
| 261 | + casc_pid::MeasuredInnerTofXiNegPi); |
| 262 | + |
| 263 | +DECLARE_SOA_TABLE(A3XiExpectedOuterTimes, "AOD", "A3XIOTIMES", |
| 264 | + casc_pid::ExpectedOuterTofXiBachPi, |
| 265 | + casc_pid::ExpectedOuterTofXiPosPr, |
| 266 | + casc_pid::ExpectedOuterTofXiPosPi, |
| 267 | + casc_pid::ExpectedOuterTofXiNegPr, |
| 268 | + casc_pid::ExpectedOuterTofXiNegPi, |
| 269 | + casc_pid::MeasuredOuterTofXiBachPi, |
| 270 | + casc_pid::MeasuredOuterTofXiPosPr, |
| 271 | + casc_pid::MeasuredOuterTofXiPosPi, |
| 272 | + casc_pid::MeasuredOuterTofXiNegPr, |
| 273 | + casc_pid::MeasuredOuterTofXiNegPi); |
| 274 | + |
| 275 | +DECLARE_SOA_TABLE(A3OmegaExpectedInnerTimes, "AOD", "A3OMITIMES", |
| 276 | + casc_pid::ExpectedInnerTofOmegaBachKa, |
| 277 | + casc_pid::ExpectedInnerTofOmegaPosPr, |
| 278 | + casc_pid::ExpectedInnerTofOmegaPosPi, |
| 279 | + casc_pid::ExpectedInnerTofOmegaNegPr, |
| 280 | + casc_pid::ExpectedInnerTofOmegaNegPi, |
| 281 | + casc_pid::MeasuredInnerTofOmegaBachKa, |
| 282 | + casc_pid::MeasuredInnerTofOmegaPosPr, |
| 283 | + casc_pid::MeasuredInnerTofOmegaPosPi, |
| 284 | + casc_pid::MeasuredInnerTofOmegaNegPr, |
| 285 | + casc_pid::MeasuredInnerTofOmegaNegPi); |
| 286 | + |
| 287 | +DECLARE_SOA_TABLE(A3OmegaExpectedOuterTimes, "AOD", "A3OMOTIMES", |
| 288 | + casc_pid::ExpectedOuterTofOmegaBachKa, |
| 289 | + casc_pid::ExpectedOuterTofOmegaPosPr, |
| 290 | + casc_pid::ExpectedOuterTofOmegaPosPi, |
| 291 | + casc_pid::ExpectedOuterTofOmegaNegPr, |
| 292 | + casc_pid::ExpectedOuterTofOmegaNegPi, |
| 293 | + casc_pid::MeasuredOuterTofOmegaBachKa, |
| 294 | + casc_pid::MeasuredOuterTofOmegaPosPr, |
| 295 | + casc_pid::MeasuredOuterTofOmegaPosPi, |
| 296 | + casc_pid::MeasuredOuterTofOmegaNegPr, |
| 297 | + casc_pid::MeasuredOuterTofOmegaNegPi); |
| 298 | + |
78 | 299 | namespace otfv0 |
79 | 300 | { |
80 | 301 | DECLARE_SOA_INDEX_COLUMN(Collision, collision); //! |
|
0 commit comments