Skip to content

Commit 59a40c1

Browse files
committed
Fix memory corruption and ITS acceptance limits
1 parent b392d4f commit 59a40c1

File tree

2 files changed

+12
-17
lines changed

2 files changed

+12
-17
lines changed

GeneratorCosmics/GeneratorCosmics.cxx

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
1414
// Modifications for O2: [email protected]
1515

16-
#include <TParticle.h>
1716
#include <TRandom.h>
17+
#include <TParticle.h>
1818
#include <TVirtualMC.h>
1919
#include <TGeoGlobalMagField.h>
2020
#include "GeneratorCosmics.h"
@@ -53,10 +53,8 @@ void GeneratorCosmics::GenerateEvent()
5353
if (!mFieldIsSet && !detectField()) {
5454
throw std::runtime_error("Failed to fetch magnetic field");
5555
}
56-
57-
fParticles->Clear();
56+
fParticles->Clear();
5857
int npart = 0;
59-
std::unique_ptr<TParticle> part;
6058
//
6159
while (npart < mNPart) { // until needed numbe of muons generated
6260
int trials = 0;
@@ -138,11 +136,9 @@ void GeneratorCosmics::GenerateEvent()
138136
}
139137

140138
auto etot = std::sqrt(MuMass * MuMass + ptot * ptot);
141-
part = std::make_unique<TParticle>(pdg, 1, -1, -1, -1, -1, p[0], p[1], p[2], etot, r[0], r[1], r[2], 0);
139+
fParticles->Add( new TParticle(pdg, 1, -1, -1, -1, -1, p[0], p[1], p[2], etot, r[0], r[1], r[2], 0) );
142140
break;
143141
} while (1);
144-
145-
fParticles->Add(part.get());
146142
npart++;
147143
}
148144
}

GeneratorCosmics/GeneratorCosmics.h

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
1717
// Modifications for O2: [email protected]
1818

19-
#include "TGenerator.h"
20-
#include "TClonesArray.h"
19+
#include <TGenerator.h>
20+
#include <TClonesArray.h>
2121
#include <TF1.h>
2222

2323
// Generates requested number of cosmic muons per call, requiring them to pass through
@@ -72,19 +72,18 @@ class GeneratorCosmics : public TGenerator
7272
mXAcc = x < 1 ? 1. : x;
7373
mZAcc = z < 1 ? 1. : z;
7474
}
75-
void requireITS0() { requireXZAccepted(2.7, 27.1); }
76-
void requireITS1() { requireXZAccepted(3.5, 27.1); }
77-
void requireITS2() { requireXZAccepted(4.3, 27.1); }
78-
void requireITS3() { requireXZAccepted(19.8, 84.3); }
79-
void requireITS4() { requireXZAccepted(24.8, 84.3); }
80-
void requireITS5() { requireXZAccepted(34.6, 147.5); }
81-
void requireITS6() { requireXZAccepted(39.5, 147.5); }
75+
void requireITS0() { requireXZAccepted(2.23, 15.56); }
76+
void requireITS1() { requireXZAccepted(3.00, 15.56); }
77+
void requireITS2() { requireXZAccepted(3.78, 15.56); }
78+
void requireITS3() { requireXZAccepted(19.55, 43.77); }
79+
void requireITS4() { requireXZAccepted(24.54, 43.77); }
80+
void requireITS5() { requireXZAccepted(34.38, 75.08); }
81+
void requireITS6() { requireXZAccepted(39.33, 75.08); }
8282
void requireTPC() { requireXZAccepted(250, 250); }
8383

8484
bool getXZatOrigin(float& xpos, float& zpos, const float r[3], const float p[3], int q) const;
8585

8686
private:
87-
8887
bool detectField();
8988

9089
GenParamType mParam = GenParamType::ParamTPC;

0 commit comments

Comments
 (0)