Skip to content

Commit 89f37ae

Browse files
authored
Update spectra TPC task to fix json config issue (#4368)
1 parent 8a46014 commit 89f37ae

File tree

1 file changed

+43
-37
lines changed

1 file changed

+43
-37
lines changed

Analysis/Tasks/spectraTPC.cxx

Lines changed: 43 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -9,29 +9,36 @@
99
// or submit itself to any jurisdiction.
1010

1111
// O2 includes
12-
#include "Framework/runDataProcessing.h"
1312
#include "Framework/AnalysisTask.h"
1413
#include "Framework/AnalysisDataModel.h"
1514
#include "ReconstructionDataFormats/Track.h"
1615
#include "PID/PIDResponse.h"
1716
#include "Framework/ASoAHelpers.h"
17+
#include "Analysis/TrackSelectionTables.h"
1818

1919
// ROOT includes
2020
#include <TH1F.h>
2121

22+
using namespace o2;
23+
using namespace o2::framework;
24+
using namespace o2::framework::expressions;
25+
26+
void customize(std::vector<o2::framework::ConfigParamSpec>& workflowOptions)
27+
{
28+
std::vector<ConfigParamSpec> options{
29+
{"add-tof-histos", VariantType::Int, 0, {"Generate TPC with TOF histograms"}}};
30+
std::swap(workflowOptions, options);
31+
}
32+
33+
#include "Framework/runDataProcessing.h"
34+
35+
#define O2_DEFINE_CONFIGURABLE(NAME, TYPE, DEFAULT, HELP) Configurable<TYPE> NAME{#NAME, DEFAULT, HELP};
36+
2237
#define DOTH1F(OBJ, ...) \
2338
OutputObj<TH1F> OBJ{TH1F(#OBJ, __VA_ARGS__)};
2439
#define DOTH2F(OBJ, ...) \
2540
OutputObj<TH2F> OBJ{TH2F(#OBJ, __VA_ARGS__)};
2641

27-
#define TRACKSELECTION \
28-
UChar_t clustermap = i.itsClusterMap(); \
29-
bool issel = (i.tpcNClsFindable() > 70) && (i.flags() & 0x4) && (TESTBIT(clustermap, 0) || TESTBIT(clustermap, 1)); \
30-
if (!issel) \
31-
continue;
32-
33-
// #define TRACKSELECTION 1;
34-
3542
#define makelogaxis(h) \
3643
{ \
3744
const Int_t nbins = h->GetNbinsX(); \
@@ -47,18 +54,11 @@
4754
h->GetXaxis()->Set(nbins, binp); \
4855
}
4956

50-
using namespace o2;
51-
using namespace o2::framework;
52-
using namespace o2::framework::expressions;
53-
54-
void customize(std::vector<o2::framework::ConfigParamSpec>& workflowOptions)
55-
{
56-
std::vector<ConfigParamSpec> options{
57-
{"add-tof-histos", VariantType::Bool, false, {"Generate TPC with TOF histograms"}}};
58-
std::swap(workflowOptions, options);
59-
}
60-
6157
struct TPCPIDQAExpSignalTask {
58+
// Options
59+
O2_DEFINE_CONFIGURABLE(cfgCutVertex, float, 10.0f, "Accepted z-vertex range")
60+
O2_DEFINE_CONFIGURABLE(cfgCutEta, float, 0.8f, "Eta range for tracks")
61+
6262
#define BIN_AXIS 1000, 0.001, 20, 1000, 0, 1000
6363

6464
DOTH2F(htpcsignal, ";#it{p} (GeV/#it{c});TPC Signal;Tracks", BIN_AXIS);
@@ -89,13 +89,12 @@ struct TPCPIDQAExpSignalTask {
8989
makelogaxis(hexpAl);
9090
}
9191

92-
void process(aod::Collision const& collision, soa::Join<aod::Tracks, aod::TracksExtra, aod::pidRespTPC> const& tracks)
92+
// Filters
93+
Filter collisionFilter = nabs(aod::collision::posZ) < cfgCutVertex;
94+
Filter trackFilter = (nabs(aod::track::eta) < cfgCutEta) && ((aod::track::isGlobalTrack == (uint8_t)1) || (aod::track::isGlobalTrackSDD == (uint8_t)1));
95+
void process(aod::Collision const& collision, soa::Filtered<soa::Join<aod::Tracks, aod::TracksExtra, aod::pidRespTPC, aod::TrackSelection>> const& tracks)
9396
{
9497
for (auto const& i : tracks) {
95-
// Track selection
96-
TRACKSELECTION;
97-
//
98-
9998
// const float mom = i.p();
10099
const float mom = i.tpcInnerParam();
101100
htpcsignal->Fill(mom, i.tpcSignal());
@@ -113,6 +112,10 @@ struct TPCPIDQAExpSignalTask {
113112
};
114113

115114
struct TPCPIDQANSigmaTask {
115+
// Options
116+
O2_DEFINE_CONFIGURABLE(cfgCutVertex, float, 10.0f, "Accepted z-vertex range")
117+
O2_DEFINE_CONFIGURABLE(cfgCutEta, float, 0.8f, "Eta range for tracks")
118+
116119
#define BIN_AXIS 1000, 0.001, 20, 1000, -10, 10
117120

118121
// TPC NSigma
@@ -142,13 +145,13 @@ struct TPCPIDQANSigmaTask {
142145
makelogaxis(hnsigmaAl);
143146
}
144147

145-
void process(aod::Collision const& collision, soa::Join<aod::Tracks, aod::TracksExtra, aod::pidRespTPC> const& tracks)
148+
// Filters
149+
Filter collisionFilter = nabs(aod::collision::posZ) < cfgCutVertex;
150+
Filter trackFilter = (nabs(aod::track::eta) < cfgCutEta) && ((aod::track::isGlobalTrack == (uint8_t)1) || (aod::track::isGlobalTrackSDD == (uint8_t)1));
151+
152+
void process(aod::Collision const& collision, soa::Filtered<soa::Join<aod::Tracks, aod::TracksExtra, aod::pidRespTPC, aod::TrackSelection>> const& tracks)
146153
{
147154
for (auto const& i : tracks) {
148-
// Track selection
149-
TRACKSELECTION;
150-
//
151-
152155
hnsigmaEl->Fill(i.p(), i.tpcNSigmaEl());
153156
hnsigmaMu->Fill(i.p(), i.tpcNSigmaMu());
154157
hnsigmaPi->Fill(i.p(), i.tpcNSigmaPi());
@@ -163,6 +166,10 @@ struct TPCPIDQANSigmaTask {
163166
};
164167

165168
struct TPCPIDQASignalwTOFTask {
169+
// Options
170+
O2_DEFINE_CONFIGURABLE(cfgCutVertex, float, 10.0f, "Accepted z-vertex range")
171+
O2_DEFINE_CONFIGURABLE(cfgCutEta, float, 0.8f, "Eta range for tracks")
172+
166173
#define BIN_AXIS 1000, 0.001, 20, 1000, 0, 1000
167174

168175
DOTH2F(htpcsignalEl, ";#it{p} (GeV/#it{c});TPC Signal;Tracks", BIN_AXIS);
@@ -191,11 +198,13 @@ struct TPCPIDQASignalwTOFTask {
191198
makelogaxis(htpcsignalAl);
192199
}
193200

194-
void process(aod::Collision const& collision, soa::Join<aod::Tracks, aod::TracksExtra, aod::pidRespTPC, aod::pidRespTOF> const& tracks)
201+
// Filters
202+
Filter collisionFilter = nabs(aod::collision::posZ) < cfgCutVertex;
203+
Filter trackFilter = (nabs(aod::track::eta) < cfgCutEta) && ((aod::track::isGlobalTrack == (uint8_t)1) || (aod::track::isGlobalTrackSDD == (uint8_t)1));
204+
205+
void process(aod::Collision const& collision, soa::Filtered<soa::Join<aod::Tracks, aod::TracksExtra, aod::pidRespTPC, aod::pidRespTOF, aod::TrackSelection>> const& tracks)
195206
{
196207
for (auto const& i : tracks) {
197-
// Track selection
198-
TRACKSELECTION;
199208
// Require kTIME and kTOFout
200209
if (!(i.flags() & 0x2000))
201210
continue;
@@ -255,9 +264,6 @@ struct TPCSpectraTask {
255264
void process(soa::Join<aod::Tracks, aod::TracksExtra, aod::pidRespTPC> const& tracks)
256265
{
257266
for (auto i : tracks) {
258-
// Track selection
259-
TRACKSELECTION;
260-
//
261267
if (TMath::Abs(i.tpcNSigmaEl()) < 3) {
262268
hp_El->Fill(i.p());
263269
hpt_El->Fill(i.pt());
@@ -280,7 +286,7 @@ struct TPCSpectraTask {
280286

281287
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
282288
{
283-
bool TPCwTOF = cfgc.options().get<bool>("add-tof-histos");
289+
int TPCwTOF = cfgc.options().get<int>("add-tof-histos");
284290
WorkflowSpec workflow{adaptAnalysisTask<TPCPIDQAExpSignalTask>("TPCpidqa-expsignal-task"),
285291
adaptAnalysisTask<TPCPIDQANSigmaTask>("TPCpidqa-nsigma-task"),
286292
adaptAnalysisTask<TPCSpectraTask>("tpcspectra-task")};

0 commit comments

Comments
 (0)