Skip to content

Commit 9fcf239

Browse files
committed
adding pp trigger analysis
1 parent 552ad72 commit 9fcf239

File tree

2 files changed

+55
-14
lines changed

2 files changed

+55
-14
lines changed

PWGLF/Tasks/Strangeness/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ o2physics_add_dpl_workflow(lambdak0sflattenicity
133133

134134
o2physics_add_dpl_workflow(lambdalambda
135135
SOURCES lambdalambda.cxx
136-
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore
136+
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore O2Physics::EventFilteringUtils
137137
COMPONENT_NAME Analysis)
138138

139139
o2physics_add_dpl_workflow(lambdajetpolarization

PWGLF/Tasks/Strangeness/lambdalambda.cxx

Lines changed: 54 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@
4545
#include "Common/Core/trackUtilities.h"
4646
#include "Common/Core/TrackSelection.h"
4747

48+
#include "EventFiltering/Zorro.h"
49+
#include "EventFiltering/ZorroSummary.h"
50+
4851
#include "CommonConstants/PhysicsConstants.h"
4952

5053
#include "ReconstructionDataFormats/Track.h"
@@ -68,6 +71,9 @@ struct lambdalambda {
6871
using TrackCandidates = soa::Join<aod::Tracks, aod::TracksExtra, aod::TracksDCA, aod::TrackSelection, aod::pidTPCFullPi, aod::pidTPCFullPr>;
6972
using V0TrackCandidate = aod::V0Datas;
7073

74+
Zorro zorro;
75+
OutputObj<ZorroSummary> zorroSummary{"zorroSummary"};
76+
7177
HistogramRegistry histos{
7278
"histos",
7379
{},
@@ -136,6 +142,9 @@ struct lambdalambda {
136142
Configurable<int> cfgNRotBkg{"cfgNRotBkg", 10, "the number of rotational backgrounds"};
137143
Configurable<int> cfgNoMixedEvents{"cfgNoMixedEvents", 10, "Number of mixed events per event"};
138144

145+
Configurable<bool> cfgSkimmedProcessing{"cfgSkimmedProcessing", false, "Enable processing of skimmed data"};
146+
Configurable<std::string> triggerName{"triggerName", "fLambdaLambda", "Software trigger name"};
147+
139148
ConfigurableAxis massAxis{"massAxis", {110, 2.22, 2.33}, "Invariant mass axis"};
140149
ConfigurableAxis ptAxis{"ptAxis", {VARIABLE_WIDTH, 0.2, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 4.0, 5.0, 6.5, 8.0, 10.0, 100.0}, "Transverse momentum bins"};
141150
ConfigurableAxis centAxis{"centAxis", {VARIABLE_WIDTH, 0, 10, 20, 50, 100}, "Centrality interval"};
@@ -157,8 +166,20 @@ struct lambdalambda {
157166
bool IsTriggered;
158167
bool IsSelected;
159168

169+
void initCCDB(aod::BCsWithTimestamps::iterator const& bc)
170+
{
171+
if (cfgSkimmedProcessing) {
172+
zorro.initCCDB(ccdb.service, bc.runNumber(), bc.timestamp(), triggerName.value);
173+
zorro.populateHistRegistry(histos, bc.runNumber());
174+
}
175+
}
176+
160177
void init(o2::framework::InitContext&)
161178
{
179+
if (cfgSkimmedProcessing) {
180+
zorroSummary.setObject(zorro.getZorroSummary());
181+
}
182+
162183
AxisSpec centQaAxis = {80, 0.0, 80.0};
163184
AxisSpec PVzQaAxis = {300, -15.0, 15.0};
164185
AxisSpec combAxis = {3, -0.5, 2.5};
@@ -506,8 +527,15 @@ struct lambdalambda {
506527
histos.fill(HIST("QA/CentDist"), centrality, 1.0);
507528
histos.fill(HIST("QA/PVzDist"), collision.posZ(), 1.0);
508529

530+
auto bc = collision.bc_as<aod::BCsWithTimestamps>();
531+
if (cfgSkimmedProcessing) {
532+
initCCDB(bc);
533+
if (!zorro.isSelected(collision.template bc_as<aod::BCsWithTimestamps>().globalBC())) {
534+
return;
535+
}
536+
}
537+
509538
if (cfgEffCor) {
510-
auto bc = collision.bc_as<aod::BCsWithTimestamps>();
511539
EffMap = ccdb->getForTimeStamp<TProfile2D>(cfgEffCorPath.value, bc.timestamp());
512540
}
513541
FillHistograms(collision, collision, V0s, V0s);
@@ -520,26 +548,39 @@ struct lambdalambda {
520548
PROCESS_SWITCH(lambdalambda, processDataSame, "Process Event for same data", true);
521549

522550
SliceCache cache;
523-
using BinningTypeVertexContributor = ColumnBinningPolicy<aod::collision::PosZ, aod::cent::CentFT0M>;
551+
using BinningType = ColumnBinningPolicy<aod::collision::PosZ, aod::cent::CentFT0M>;
552+
BinningType colBinning{{vertexAxis, centAxis}, true};
524553

554+
Preslice<aod::V0Datas> tracksPerCollisionV0 = aod::v0data::collisionId;
525555
void processDataMixed(EventCandidates const& collisions,
526-
TrackCandidates const& /*tracks*/, aod::V0Datas const& V0s)
556+
TrackCandidates const& /*tracks*/, aod::V0Datas const& V0s, aod::BCsWithTimestamps const&)
527557
{
528-
auto tracksTuple = std::make_tuple(V0s);
529-
BinningTypeVertexContributor binningOnPositions{{vertexAxis, centAxis}, true};
530-
SameKindPair<EventCandidates, V0TrackCandidate, BinningTypeVertexContributor> pair{binningOnPositions, cfgNoMixedEvents, -1, collisions, tracksTuple, &cache};
531-
for (auto& [c1, tracks1, c2, tracks2] : pair) {
532-
if (cfgCentEst == 1) {
533-
centrality = c1.centFT0C();
534-
} else if (cfgCentEst == 2) {
535-
centrality = c1.centFT0M();
558+
int currentRun = -1;
559+
for (auto& [c1, c2] : selfCombinations(colBinning, cfgNoMixedEvents, -1, collisions, collisions)) {
560+
if (c1.index() == c2.index()) continue;
561+
562+
auto bc1 = c1.bc_as<aod::BCsWithTimestamps>();
563+
auto bc2 = c2.bc_as<aod::BCsWithTimestamps>();
564+
565+
if (bc1.runNumber() != bc2.runNumber() ) continue;
566+
567+
if (bc1.runNumber() != currentRun) {
568+
if (cfgSkimmedProcessing) {
569+
initCCDB(bc1);
570+
if (!zorro.isSelected(bc1.globalBC()) || !zorro.isSelected(bc2.globalBC())) {
571+
continue;
572+
}
573+
}
536574
}
575+
576+
centrality = c1.centFT0M();
537577
if (!eventSelected(c1))
538578
continue;
539579
if (!eventSelected(c2))
540580
continue;
541-
if (c1.bcId() == c2.bcId())
542-
continue;
581+
582+
auto tracks1 = V0s.sliceBy(tracksPerCollisionV0, c1.globalIndex());
583+
auto tracks2 = V0s.sliceBy(tracksPerCollisionV0, c2.globalIndex());
543584

544585
FillHistograms(c1, c2, tracks1, tracks2);
545586
}

0 commit comments

Comments
 (0)