Skip to content

Commit 9bfc210

Browse files
committed
adding rct analyses to jet framework
1 parent ba02103 commit 9bfc210

File tree

7 files changed

+27
-16
lines changed

7 files changed

+27
-16
lines changed

EventFiltering/PWGJE/jetFilter.cxx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
#include "PWGJE/Core/JetBkgSubUtils.h"
3434
#include "PWGJE/DataModel/EMCALClusters.h"
3535
#include "PWGJE/DataModel/Jet.h"
36+
#include "PWGJE/Core/JetDerivedDataUtilities.h"
3637

3738
#include "../filterTables.h"
3839

@@ -189,7 +190,7 @@ struct jetFilter {
189190

190191
// collision process loop
191192
bool keepEvent[kTriggerObjects]{false, false, false, false};
192-
if (!collision.selection_bit(aod::evsel::kNoTimeFrameBorder)) {
193+
if (!jetderiveddatautilities::selectCollision(collision, jetderiveddatautilities::initialiseEventSelectionBits(static_cast<std::string>("NoTimeFrameBorder")))) {
193194
tags(keepEvent[kJetChLowPt], keepEvent[kJetChHighPt], keepEvent[kTrackLowPt], keepEvent[kTrackHighPt]);
194195
return;
195196
}
@@ -287,13 +288,13 @@ struct jetFilter {
287288
tags(keepEvent[kJetChLowPt], keepEvent[kJetChHighPt], keepEvent[kTrackLowPt], keepEvent[kTrackHighPt]);
288289
}
289290

290-
void processWithoutRho(soa::Join<aod::JetCollisions, aod::EvSels>::iterator const& collision, o2::aod::ChargedJets const& jets, soa::Filtered<aod::JetTracks> const& tracks)
291+
void processWithoutRho(aod::JetCollision const& collision, o2::aod::ChargedJets const& jets, soa::Filtered<aod::JetTracks> const& tracks)
291292
{
292293
doTriggering<false>(collision, jets, tracks);
293294
}
294295
PROCESS_SWITCH(jetFilter, processWithoutRho, "Do charged jet triggering without background estimation for filling histograms", true);
295296

296-
void processWithRho(soa::Join<aod::JetCollisions, aod::BkgChargedRhos, aod::EvSels>::iterator const& collision, o2::aod::ChargedJets const& jets, soa::Filtered<aod::JetTracks> const& tracks)
297+
void processWithRho(soa::Join<aod::JetCollisions, aod::BkgChargedRhos>::iterator const& collision, o2::aod::ChargedJets const& jets, soa::Filtered<aod::JetTracks> const& tracks)
297298
{
298299
doTriggering<true>(collision, jets, tracks);
299300
}

PWGJE/Core/JetDerivedDataUtilities.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
#include "Common/CCDB/EventSelectionParams.h"
2121
#include "Common/CCDB/TriggerAliases.h"
22+
#include "Common/CCDB/RCTSelectionFlags.h"
2223

2324
#include <Rtypes.h>
2425

@@ -53,11 +54,16 @@ enum JCollisionSubGeneratorId {
5354
};
5455

5556
template <typename T>
56-
bool selectCollision(T const& collision, std::vector<int> eventSelectionMaskBits, bool skipMBGapEvents = true)
57+
bool selectCollision(T const& collision, std::vector<int> eventSelectionMaskBits, bool skipMBGapEvents = true, bool rctSelection = true, std::string rctLabel = "CBT_hadronPID", bool rejectLimitedAcceptanceRct = false, bool requireZDCRct = false)
5758
{
5859
if (skipMBGapEvents && collision.subGeneratorId() == JCollisionSubGeneratorId::mbGap) {
5960
return false;
6061
}
62+
o2::aod::rctsel::RCTFlagsChecker rctChecker;
63+
rctChecker.init(rctLabel, requireZDCRct, rejectLimitedAcceptanceRct);
64+
if (rctSelection && !rctChecker.checkTable(collision)) { //CBT_hadronPID given as default so that TOF is included in RCT selection to benefit from better timing for tracks. Impact of this for inclusive jets should be studied
65+
return false;
66+
}
6167
if (eventSelectionMaskBits.size() == 0) {
6268
return true;
6369
}

PWGJE/DataModel/JetReducedData.h

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ DECLARE_SOA_COLUMN(GlobalBC, globalBC, uint64_t);
3838
DECLARE_SOA_COLUMN(Timestamp, timestamp, uint64_t);
3939
DECLARE_SOA_BITMAP_COLUMN(Alias, alias, 32);
4040
DECLARE_SOA_BITMAP_COLUMN(Selection, selection, 64);
41+
DECLARE_SOA_BITMAP_COLUMN(Rct, rct, 32);
4142
DECLARE_SOA_COLUMN(ReadCounts, readCounts, std::vector<int>);
4243
DECLARE_SOA_COLUMN(ReadCountsWithTVX, readCountsWithTVX, std::vector<int>);
4344
DECLARE_SOA_COLUMN(ReadCountsWithTVXAndNoTFB, readCountsWithTVXAndNoTFB, std::vector<int>);
@@ -50,7 +51,8 @@ DECLARE_SOA_TABLE_STAGED(JBCs, "JBC",
5051
jbc::GlobalBC,
5152
jbc::Timestamp,
5253
jbc::Alias,
53-
jbc::Selection);
54+
jbc::Selection,
55+
jbc::Rct);
5456

5557
using JBC = JBCs::iterator;
5658
using StoredJBC = StoredJBCs::iterator;
@@ -91,6 +93,7 @@ DECLARE_SOA_COLUMN(Weight, weight, float);
9193
DECLARE_SOA_COLUMN(SubGeneratorId, subGeneratorId, int);
9294
DECLARE_SOA_COLUMN(EventSel, eventSel, uint16_t);
9395
DECLARE_SOA_BITMAP_COLUMN(Alias, alias, 32);
96+
DECLARE_SOA_BITMAP_COLUMN(Rct, rct, 32);
9497
DECLARE_SOA_COLUMN(TrackOccupancyInTimeRange, trackOccupancyInTimeRange, int);
9598
DECLARE_SOA_COLUMN(TriggerSel, triggerSel, uint64_t);
9699
DECLARE_SOA_COLUMN(ChargedTriggerSel, chargedTriggerSel, uint8_t);
@@ -133,8 +136,9 @@ DECLARE_SOA_TABLE_STAGED(JCollisions, "JCOLLISION",
133136
jcollision::CentFT0CVariant1,
134137
jcollision::HadronicRate,
135138
jcollision::TrackOccupancyInTimeRange,
136-
jcollision::EventSel,
137139
jcollision::Alias,
140+
jcollision::EventSel,
141+
jcollision::Rct,
138142
jcollision::TriggerSel);
139143

140144
using JCollision = JCollisions::iterator;

PWGJE/TableProducer/derivedDataProducer.cxx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ struct JetDerivedDataProducerTask {
194194

195195
void processBunchCrossings(soa::Join<aod::BCs, aod::Timestamps, aod::BcSels>::iterator const& bc)
196196
{
197-
products.jBCsTable(bc.runNumber(), bc.globalBC(), bc.timestamp(), bc.alias_raw(), bc.selection_raw());
197+
products.jBCsTable(bc.runNumber(), bc.globalBC(), bc.timestamp(), bc.alias_raw(), bc.selection_raw(), bc.rct_raw());
198198
products.jBCParentIndexTable(bc.globalIndex());
199199
}
200200
PROCESS_SWITCH(JetDerivedDataProducerTask, processBunchCrossings, "produces derived bunch crossing table", false);
@@ -213,7 +213,7 @@ struct JetDerivedDataProducerTask {
213213
triggerDecider.initCCDB(ccdb.service, bc.runNumber(), bc.timestamp(), jetderiveddatautilities::JTriggerMasks);
214214
triggerBit = jetderiveddatautilities::setTriggerSelectionBit(triggerDecider.getTriggerOfInterestResults(bc.globalBC()));
215215
}
216-
products.jCollisionsTable(collision.posX(), collision.posY(), collision.posZ(), collision.multFV0A(), collision.multFV0C(), collision.multFT0A(), collision.multFT0C(), collision.centFV0A(), -1.0, collision.centFT0A(), collision.centFT0C(), collision.centFT0M(), collision.centFT0CVariant1(), hadronicRate, collision.trackOccupancyInTimeRange(), jetderiveddatautilities::setEventSelectionBit(collision), collision.alias_raw(), triggerBit); // note change multFT0C to multFT0M when problems with multFT0A are fixed
216+
products.jCollisionsTable(collision.posX(), collision.posY(), collision.posZ(), collision.multFV0A(), collision.multFV0C(), collision.multFT0A(), collision.multFT0C(), collision.centFV0A(), -1.0, collision.centFT0A(), collision.centFT0C(), collision.centFT0M(), collision.centFT0CVariant1(), hadronicRate, collision.trackOccupancyInTimeRange(), collision.alias_raw(), jetderiveddatautilities::setEventSelectionBit(collision), collision.rct_raw(), triggerBit); // note change multFT0C to multFT0M when problems with multFT0A are fixed
217217
products.jCollisionsParentIndexTable(collision.globalIndex());
218218
products.jCollisionsBunchCrossingIndexTable(collision.bcId());
219219
}
@@ -227,23 +227,23 @@ struct JetDerivedDataProducerTask {
227227
triggerDecider.initCCDB(ccdb.service, bc.runNumber(), bc.timestamp(), jetderiveddatautilities::JTriggerMasks);
228228
triggerBit = jetderiveddatautilities::setTriggerSelectionBit(triggerDecider.getTriggerOfInterestResults(bc.globalBC()));
229229
}
230-
products.jCollisionsTable(collision.posX(), collision.posY(), collision.posZ(), -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1, jetderiveddatautilities::setEventSelectionBit(collision), collision.alias_raw(), triggerBit);
230+
products.jCollisionsTable(collision.posX(), collision.posY(), collision.posZ(), -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1, collision.alias_raw(), jetderiveddatautilities::setEventSelectionBit(collision), collision.rct_raw(), triggerBit);
231231
products.jCollisionsParentIndexTable(collision.globalIndex());
232232
products.jCollisionsBunchCrossingIndexTable(collision.bcId());
233233
}
234234
PROCESS_SWITCH(JetDerivedDataProducerTask, processCollisionsWithoutCentralityAndMultiplicity, "produces derived collision tables without centrality or multiplicity", false);
235235

236236
void processCollisionsRun2(soa::Join<aod::Collisions, aod::EvSels, aod::FT0Mults, aod::CentRun2V0As, aod::CentRun2V0Ms>::iterator const& collision)
237237
{
238-
products.jCollisionsTable(collision.posX(), collision.posY(), collision.posZ(), -1.0, -1.0, -1.0, -1.0, collision.centRun2V0A(), collision.centRun2V0M(), -1.0, -1.0, -1.0, -1.0, 1.0, -1, jetderiveddatautilities::setEventSelectionBit(collision), collision.alias_raw(), 0); // note change multFT0C to multFT0M when problems with multFT0A are fixed
238+
products.jCollisionsTable(collision.posX(), collision.posY(), collision.posZ(), -1.0, -1.0, -1.0, -1.0, collision.centRun2V0A(), collision.centRun2V0M(), -1.0, -1.0, -1.0, -1.0, 1.0, -1, collision.alias_raw(), jetderiveddatautilities::setEventSelectionBit(collision), collision.rct_raw(), 0); // note change multFT0C to multFT0M when problems with multFT0A are fixed
239239
products.jCollisionsParentIndexTable(collision.globalIndex());
240240
products.jCollisionsBunchCrossingIndexTable(collision.bcId());
241241
}
242242
PROCESS_SWITCH(JetDerivedDataProducerTask, processCollisionsRun2, "produces derived collision tables for Run 2 data", false);
243243

244244
void processCollisionsALICE3(aod::Collision const& collision)
245245
{
246-
products.jCollisionsTable(collision.posX(), collision.posY(), collision.posZ(), -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1, -1.0, 0, 0);
246+
products.jCollisionsTable(collision.posX(), collision.posY(), collision.posZ(), -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1, -1.0, 0, 0, 0);
247247
products.jCollisionsParentIndexTable(collision.globalIndex());
248248
products.jCollisionsBunchCrossingIndexTable(-1);
249249
}

PWGJE/TableProducer/derivedDataWriter.cxx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -445,7 +445,7 @@ struct JetDerivedDataWriter {
445445
if (collision.isCollisionSelected()) {
446446
auto bc = collision.bc_as<soa::Join<aod::JBCs, aod::JBCPIs>>();
447447
if (std::find(bcIndicies.begin(), bcIndicies.end(), bc.globalIndex()) == bcIndicies.end()) {
448-
products.storedJBCsTable(bc.runNumber(), bc.globalBC(), bc.timestamp(), bc.alias_raw(), bc.selection_raw());
448+
products.storedJBCsTable(bc.runNumber(), bc.globalBC(), bc.timestamp(), bc.alias_raw(), bc.selection_raw(), bc.rct_raw());
449449
products.storedJBCParentIndexTable(bc.bcId());
450450
bcIndicies.push_back(bc.globalIndex());
451451
bcMapping[bc.globalIndex()] = products.storedJBCsTable.lastIndex();
@@ -463,7 +463,7 @@ struct JetDerivedDataWriter {
463463
for (auto const& collision : collisions) {
464464
if (collision.isCollisionSelected()) {
465465

466-
products.storedJCollisionsTable(collision.posX(), collision.posY(), collision.posZ(), collision.multFV0A(), collision.multFV0C(), collision.multFT0A(), collision.multFT0C(), collision.centFV0A(), collision.centFV0M(), collision.centFT0A(), collision.centFT0C(), collision.centFT0M(), collision.centFT0CVariant1(), collision.hadronicRate(), collision.trackOccupancyInTimeRange(), collision.eventSel(), collision.alias_raw(), collision.triggerSel());
466+
products.storedJCollisionsTable(collision.posX(), collision.posY(), collision.posZ(), collision.multFV0A(), collision.multFV0C(), collision.multFT0A(), collision.multFT0C(), collision.centFV0A(), collision.centFV0M(), collision.centFT0A(), collision.centFT0C(), collision.centFT0M(), collision.centFT0CVariant1(), collision.hadronicRate(), collision.trackOccupancyInTimeRange(), collision.alias_raw(), collision.eventSel(), collision.rct_raw(), collision.triggerSel());
467467
collisionMapping[collision.globalIndex()] = products.storedJCollisionsTable.lastIndex();
468468
products.storedJCollisionMcInfosTable(collision.weight(), collision.subGeneratorId());
469469
products.storedJCollisionsParentIndexTable(collision.collisionId());

PWGJE/TableProducer/luminosityProducer.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ struct LuminosityProducer {
119119
int readCollisionWithCustomCounter = 0;
120120
for (const auto& collision : collisions) {
121121
readCollisionCounter++;
122-
if (jetderiveddatautilities::selectCollision(collision, jetderiveddatautilities::initialiseEventSelectionBits("TVX"))) { // asuumes all selections include the TVX trigger
122+
if (jetderiveddatautilities::selectCollision(collision, jetderiveddatautilities::initialiseEventSelectionBits("TVX"))) { // asuumes all selections include the TVX trigger and also assumes the default RCT configuration is always used
123123
readCollisionWithTVXCounter++;
124124
if (std::abs(collision.posZ()) > vertexZCutForCounting) {
125125
continue;

PWGJE/Tasks/jetTriggerChargedQa.cxx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ using namespace o2;
3939
using namespace o2::framework;
4040
using namespace o2::framework::expressions;
4141

42-
using FilteredColl = soa::Filtered<soa::Join<aod::JetCollisions, aod::JChTrigSels, aod::EvSels>>::iterator;
42+
using FilteredColl = soa::Filtered<soa::Join<aod::JetCollisions, aod::JChTrigSels>>::iterator;
4343
using FilteredJTracks = soa::Filtered<soa::Join<aod::JTracks, aod::JTrackPIs, aod::JTrackExtras>>;
4444
using FilteredJets = soa::Filtered<soa::Join<aod::ChargedJets, aod::ChargedJetConstituents>>;
4545
using JoinedTracks = soa::Join<aod::Tracks, aod::TracksExtra>;
@@ -162,7 +162,7 @@ struct JetTriggerChargedQa {
162162
void process(FilteredColl const& collision, FilteredJTracks const& tracks, FilteredJets const& jets, JoinedTracks const&)
163163
{
164164

165-
if (!collision.selection_bit(aod::evsel::kNoTimeFrameBorder)) {
165+
if (!jetderiveddatautilities::selectCollision(collision, jetderiveddatautilities::initialiseEventSelectionBits(static_cast<std::string>("NoTimeFrameBorder")))) {
166166
return;
167167
}
168168

0 commit comments

Comments
 (0)