Skip to content

Commit 02e9daf

Browse files
committed
[TrackLTIntegral] optionally update only L and mat.budget integral
1 parent b7df4cd commit 02e9daf

File tree

2 files changed

+21
-4
lines changed

2 files changed

+21
-4
lines changed

DataFormats/Reconstruction/include/ReconstructionDataFormats/TrackLTIntegral.h

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ namespace track
2727
class TrackLTIntegral
2828
{
2929
public:
30+
static constexpr float NeglectTime = -1.; // if 1st mT slot contains this, don't fill time
31+
3032
GPUdDefault() TrackLTIntegral() = default;
3133
GPUdDefault() TrackLTIntegral(const TrackLTIntegral& stc) = default;
3234
GPUdDefault() ~TrackLTIntegral() = default;
@@ -35,32 +37,40 @@ class TrackLTIntegral
3537

3638
GPUd() float getL() const { return mL; }
3739
GPUd() float getX2X0() const { return mX2X0; }
40+
GPUd() float getXRho() const { return mXRho; }
3841
GPUd() float getTOF(int id) const { return mT[id]; }
3942

4043
GPUd() void clear()
4144
{
4245
mL = 0.f;
4346
mX2X0 = 0.f;
47+
mXRho = 0.f;
4448
for (int i = getNTOFs(); i--;) {
4549
mT[i] = 0.f;
4650
}
4751
}
4852

4953
GPUd() void addStep(float dL, float p2Inv);
5054
GPUd() void addX2X0(float d) { mX2X0 += d; }
55+
GPUd() void addXRho(float d) { mXRho += d; }
5156

5257
GPUd() void setL(float l) { mL = l; }
5358
GPUd() void setX2X0(float x) { mX2X0 = x; }
59+
GPUd() void setXRho(float x) { mXRho = x; }
5460
GPUd() void setTOF(float t, int id) { mT[id] = t; }
5561

62+
GPUd() void setTimeNotNeeded() { mT[0] = NeglectTime; }
63+
GPUd() bool isTimeNotNeeded() const { return mT[0] == NeglectTime; }
64+
5665
GPUd() void print() const;
5766

5867
private:
5968
float mL = 0.; // length in cm
6069
float mX2X0 = 0.; // integrated X/X0
70+
float mXRho = 0.; // average X*rho
6171
float mT[o2::track::PID::NIDs] = {0.}; // TOF in ps
6272

63-
ClassDefNV(TrackLTIntegral, 1);
73+
ClassDefNV(TrackLTIntegral, 2);
6474
};
6575
}; // namespace track
6676
}; // namespace o2

DataFormats/Reconstruction/src/TrackLTIntegral.cxx

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,13 @@ namespace track
2121
GPUd() void TrackLTIntegral::print() const
2222
{
2323
#ifndef GPUCA_GPUCODE_DEVICE
24-
printf("L(cm): %6.2f, X2X0: %5.3f TOF(ps): ", getL(), getX2X0());
25-
for (int i = 0; i < getNTOFs(); i++) {
26-
printf(" %7.1f |", getTOF(i));
24+
printf("L(cm): %6.2f, X2X0: %e XRho: %e TOF(ps): ", getL(), getX2X0(), getXRho());
25+
if (isTimeNotNeeded()) {
26+
printf(" Times not filled");
27+
} else {
28+
for (int i = 0; i < getNTOFs(); i++) {
29+
printf(" %7.1f |", getTOF(i));
30+
}
2731
}
2832
printf("\n");
2933
#endif
@@ -34,6 +38,9 @@ GPUd() void TrackLTIntegral::addStep(float dL, float p2Inv)
3438
{
3539
///< add step in cm to integrals
3640
mL += dL;
41+
if (isTimeNotNeeded()) {
42+
return;
43+
}
3744
const float dTns = dL * 1000.f / o2::constants::physics::LightSpeedCm2NS; // time change in ps for beta = 1 particle
3845
for (int id = 0; id < getNTOFs(); id++) {
3946
const float m2z = track::PID::getMass2Z(id);

0 commit comments

Comments
 (0)