Skip to content
Merged
Changes from 44 commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
fc80f61
improving the analysis
JosueMtzGar May 9, 2024
25763be
Merge branch 'master' into localtestPWGUD
JosueMtzGar May 9, 2024
4cae5d6
improving the analysis
JosueMtzGar May 9, 2024
7f09d3d
new changes
JosueMtzGar Jun 9, 2024
d854bdd
new changes
JosueMtzGar Jun 9, 2024
b33a3b6
Merge remote-tracking branch 'upstream/master' into localtestPWGUD
JosueMtzGar Jul 11, 2024
4ad5488
Merge branch 'master' into localtestPWGUD
JosueMtzGar Aug 19, 2024
ecaad17
Merge branch 'master' into localtestPWGUD
JosueMtzGar Aug 22, 2024
7234a79
adding angular correlation analysis
JosueMtzGar Sep 1, 2024
2768e38
saving the last changes
JosueMtzGar Oct 8, 2024
63d8c61
Merge branch 'master' into localtestPWGUD
JosueMtzGar Nov 6, 2024
b18cd8e
Merge branch 'master' into localtestPWGUD
JosueMtzGar Nov 6, 2024
03cd5be
adding helper to pair cuts for UD tables
JosueMtzGar Nov 12, 2024
62739d2
new changes
JosueMtzGar Nov 14, 2024
907fc67
new changes, using correlation container. output object empty
JosueMtzGar Dec 9, 2024
3101f1c
Merge branch 'master' into localtestPWGUD
JosueMtzGar Dec 18, 2024
c463936
probe of correlation container tutorial
JosueMtzGar Jan 24, 2025
3e45828
Merge branch 'master' into localtestPWGUD
JosueMtzGar Jan 24, 2025
ddd1083
a little change to test
JosueMtzGar Feb 28, 2025
81251f2
recent changes on the correlation analysis, container still empty
JosueMtzGar Mar 25, 2025
d257ef9
Merge branch 'master' into localtestPWGUD
JosueMtzGar Mar 25, 2025
35e7ea8
saving updates to change to Lumi work
JosueMtzGar Apr 1, 2025
4768865
Merge branch 'master' into localtestPWGUD
JosueMtzGar Apr 2, 2025
48cd940
new changes
JosueMtzGar Apr 10, 2025
ad7514f
Merge branch 'master' into localtestPWGUD
JosueMtzGar Apr 11, 2025
0154bcf
Merge branch 'master' into localtestPWGUD
JosueMtzGar May 16, 2025
1dff562
new changes to do correlations
JosueMtzGar May 23, 2025
7114730
Merge branch 'master' into localtestPWGUD
JosueMtzGar May 23, 2025
5a137f4
formatting issues
JosueMtzGar May 23, 2025
5b6cd2a
formatting issues
JosueMtzGar May 23, 2025
0ae71ee
formatting issues
JosueMtzGar May 23, 2025
aea10e2
resolving issues
JosueMtzGar May 26, 2025
80fff5f
resolving issues
JosueMtzGar May 26, 2025
d816a8b
Merge branch 'master' into localtestPWGUD
JosueMtzGar May 26, 2025
bf33581
resolving o2 linter issues
JosueMtzGar May 29, 2025
53b9404
Merge branch 'master' into localtestPWGUD
JosueMtzGar May 29, 2025
3331e64
resolving o2 linter issues
JosueMtzGar May 29, 2025
385beee
resolving o2 linter issues
JosueMtzGar May 29, 2025
0104e93
improving correlation analysis
JosueMtzGar Jun 2, 2025
74a7be9
improving correlation analysis
JosueMtzGar Jun 2, 2025
d911fec
improving correlation analysis
JosueMtzGar Jun 2, 2025
d2b88de
Merge branch 'master' into localtestPWGUD
JosueMtzGar Jun 2, 2025
12fb16c
improving correlation analysis
JosueMtzGar Jun 3, 2025
c97f501
Merge branch 'master' into localtestPWGUD
JosueMtzGar Jun 3, 2025
38cd449
improving correlation analysis
JosueMtzGar Jun 5, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
161 changes: 112 additions & 49 deletions PWGUD/Tasks/upcPhotonuclearAnalysisJMG.cxx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2019-2020 CERN and copyright holders of ALICE O2.

Check failure on line 1 in PWGUD/Tasks/upcPhotonuclearAnalysisJMG.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[doc/file]

Provide mandatory file documentation.
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
// All rights not expressly granted are reserved.
//
Expand All @@ -11,7 +11,7 @@
///
/// \brief
/// \author Josué Martínez García, josuem@cern.ch
/// \file upcPhotonuclearAnalysisJMG.cxx

Check failure on line 14 in PWGUD/Tasks/upcPhotonuclearAnalysisJMG.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[doc/file]

Documentation for \brief is missing, incorrect or misplaced.

#include <vector>

Expand Down Expand Up @@ -47,9 +47,21 @@
DECLARE_SOA_COLUMN(PtSideA, ptSideA, std::vector<float>);
DECLARE_SOA_COLUMN(RapSideA, rapSideA, std::vector<float>);
DECLARE_SOA_COLUMN(PhiSideA, phiSideA, std::vector<float>);
DECLARE_SOA_COLUMN(TPCSignalSideA, tpcSignalSideA, std::vector<float>);

Check failure on line 50 in PWGUD/Tasks/upcPhotonuclearAnalysisJMG.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[name/o2-column]

Use UpperCamelCase for names of O2 columns and matching lowerCamelCase names for their getters.
DECLARE_SOA_COLUMN(TOFSignalSideA, tofSignalSideA, std::vector<float>);

Check failure on line 51 in PWGUD/Tasks/upcPhotonuclearAnalysisJMG.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[name/o2-column]

Use UpperCamelCase for names of O2 columns and matching lowerCamelCase names for their getters.
DECLARE_SOA_COLUMN(TPCNSigmaPiSideA, tpcNSigmaPiSideA, std::vector<float>);

Check failure on line 52 in PWGUD/Tasks/upcPhotonuclearAnalysisJMG.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[name/o2-column]

Use UpperCamelCase for names of O2 columns and matching lowerCamelCase names for their getters.
DECLARE_SOA_COLUMN(TOFNSigmaPiSideA, tofNSigmaPiSideA, std::vector<float>);
DECLARE_SOA_COLUMN(TPCNSigmaKaSideA, tpcNSigmaKaSideA, std::vector<float>);
DECLARE_SOA_COLUMN(TOFNSigmaKaSideA, tofNSigmaKaSideA, std::vector<float>);
DECLARE_SOA_COLUMN(PtSideC, ptSideC, std::vector<float>);
DECLARE_SOA_COLUMN(RapSideC, rapSideC, std::vector<float>);
DECLARE_SOA_COLUMN(PhiSideC, phiSideC, std::vector<float>);
DECLARE_SOA_COLUMN(TPCSignalSideC, tpcSignalSideC, std::vector<float>);
DECLARE_SOA_COLUMN(TOFSignalSideC, tofSignalSideC, std::vector<float>);
DECLARE_SOA_COLUMN(TPCNSigmaPiSideC, tpcNSigmaPiSideC, std::vector<float>);
DECLARE_SOA_COLUMN(TOFNSigmaPiSideC, tofNSigmaPiSideC, std::vector<float>);
DECLARE_SOA_COLUMN(TPCNSigmaKaSideC, tpcNSigmaKaSideC, std::vector<float>);
DECLARE_SOA_COLUMN(TOFNSigmaKaSideC, tofNSigmaKaSideC, std::vector<float>);
DECLARE_SOA_COLUMN(NchSideA, nchSideA, int);
DECLARE_SOA_COLUMN(MultiplicitySideA, multiplicitySideA, int);
DECLARE_SOA_COLUMN(NchSideC, nchSideC, int);
Expand All @@ -59,9 +71,21 @@
tree::PtSideA,
tree::RapSideA,
tree::PhiSideA,
tree::TPCSignalSideA,
tree::TOFSignalSideA,
tree::TPCNSigmaPiSideA,
tree::TOFNSigmaPiSideA,
tree::TPCNSigmaKaSideA,
tree::TOFNSigmaKaSideA,
tree::PtSideC,
tree::RapSideC,
tree::PhiSideC,
tree::TPCSignalSideC,
tree::TOFSignalSideC,
tree::TPCNSigmaPiSideC,
tree::TOFNSigmaPiSideC,
tree::TPCNSigmaKaSideC,
tree::TOFNSigmaKaSideC,
tree::NchSideA,
tree::MultiplicitySideA,
tree::NchSideC,
Expand All @@ -76,6 +100,7 @@
HistogramRegistry histos{"histos", {}, OutputObjHandlingPolicy::AnalysisObject};

// Declare configurables on events/collisions
Configurable<int> nEvenstMixed{"nEvenstMixed", 3, {"Events to be Mixed"}};
Configurable<float> myZVtxCut{"myZVtxCut", 10., {"My collision cut"}};
Configurable<float> myTimeZNACut{"myTimeZNACut", 2., {"My collision cut"}};
Configurable<float> myTimeZNCCut{"myTimeZNCCut", 2., {"My collision cut"}};
Expand Down Expand Up @@ -127,11 +152,13 @@
Filter collisionZNTimeFilter = nabs(aod::udzdc::timeZNA) < myTimeZNACut && nabs(aod::udzdc::timeZNC) < myTimeZNCCut;

using FullSGUDCollision = soa::Filtered<soa::Join<aod::UDCollisions, aod::UDCollisionsSels, aod::SGCollisions, aod::UDZdcsReduced>>;
using FullUDTracks = soa::Join<aod::UDTracks, aod::UDTracksExtra, aod::UDTracksDCA, aod::UDTracksFlags>;
using FullUDTracks = soa::Join<aod::UDTracks, aod::UDTracksExtra, aod::UDTracksPID, aod::UDTracksDCA, aod::UDTracksFlags>;

// Output definitions
OutputObj<CorrelationContainer> same{"sameEvent"};
OutputObj<CorrelationContainer> mixed{"mixedEvent"};
OutputObj<CorrelationContainer> sameGapSideA{"sameEventGapSideA"};
OutputObj<CorrelationContainer> mixedGapSideA{"mixedEventGapSideA"};
OutputObj<CorrelationContainer> sameGapSideC{"sameEventGapSideC"};
OutputObj<CorrelationContainer> mixedGapSideC{"mixedEventGapSideC"};

UPCPairCuts mPairCuts;
bool doPairCuts = false;
Expand All @@ -143,7 +170,7 @@
const AxisSpec axisPt{402, -0.05, 20.05};
const AxisSpec axisP{402, -10.05, 10.05};
const AxisSpec axisTPCSignal{802, -0.05, 400.05};
const AxisSpec axisPhi{64, -2 * PI, 2 * PI};

Check failure on line 173 in PWGUD/Tasks/upcPhotonuclearAnalysisJMG.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[pi-multiple-fraction]

Use multiples/fractions of PI defined in o2::constants::math.
const AxisSpec axisEta{50, -1.2, 1.2};
const AxisSpec axisNch{201, -0.5, 200.5};
const AxisSpec axisZNEnergy{1002, -0.5, 500.5};
Expand All @@ -154,7 +181,7 @@
const AxisSpec axisTPCNClsCrossedRowsMin{100, -0.05, 2.05};

histos.add("yields", "multiplicity vs pT vs eta", {HistType::kTH3F, {{100, 0, 100, "multiplicity"}, {40, 0, 20, "p_{T}"}, {100, -2, 2, "#eta"}}});
histos.add("etaphi", "multiplicity vs eta vs phi", {HistType::kTH3F, {{100, 0, 100, "multiplicity"}, {100, -2, 2, "#eta"}, {200, 0, 2 * PI, "#varphi"}}});

Check failure on line 184 in PWGUD/Tasks/upcPhotonuclearAnalysisJMG.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[pi-multiple-fraction]

Use multiples/fractions of PI defined in o2::constants::math.

const int maxMixBin = axisMultiplicity->size() * axisVertex->size();
histos.add("eventcount", "bin", {HistType::kTH1F, {{maxMixBin + 2, -2.5, -0.5 + maxMixBin, "bin"}}});
Expand All @@ -175,6 +202,7 @@
histos.add("Tracks/SGsideA/hTrackPhi", "#it{#phi} distribution; #it{#phi}; counts", kTH1F, {axisPhi});
histos.add("Tracks/SGsideA/hTrackEta", "#it{#eta} distribution; #it{#eta}; counts", kTH1F, {axisEta});
histos.add("Tracks/SGsideA/hTrackTPCSignnalP", "#it{TPC dE/dx vs p}; #it{p*charge}; #it{TPC dE/dx}", kTH2F, {axisP, axisTPCSignal});
histos.add("Tracks/SGsideA/hTrackTOFSignnalP", "#it{TOF signal vs p}; #it{p*charge}; #it{TOF signal}", kTH2F, {axisP, axisTPCSignal});
histos.add("Tracks/SGsideA/hTrackITSNCls", "#it{N Clusters ITS} distribution; #it{N Clusters ITS}; counts", kTH1F, {axisNCls});
histos.add("Tracks/SGsideA/hTrackITSChi2NCls", "#it{N Clusters Chi2 ITS} distribution; #it{N Clusters Chi2 ITS}; counts", kTH1F, {axisChi2NCls});
histos.add("Tracks/SGsideA/hTrackNClsCrossedRowsOverNClsFindable", "#it{NClsCrossedRows/FindableNCls} distribution in TPC; #it{NClsCrossedRows/FindableNCls}; counts", kTH1F, {axisTPCNClsCrossedRowsMin});
Expand Down Expand Up @@ -205,6 +233,7 @@
histos.add("Tracks/SGsideC/hTrackPhi", "#it{#phi} distribution; #it{#phi}; counts", kTH1F, {axisPhi});
histos.add("Tracks/SGsideC/hTrackEta", "#it{#eta} distribution; #it{#eta}; counts", kTH1F, {axisEta});
histos.add("Tracks/SGsideC/hTrackTPCSignnalP", "#it{TPC dE/dx vs p}; #it{p*charge}; #it{TPC dE/dx}", kTH2F, {axisP, axisTPCSignal});
histos.add("Tracks/SGsideC/hTrackTOFSignnalP", "#it{TOF signal vs p}; #it{p*charge}; #it{TOF signal}", kTH2F, {axisP, axisTPCSignal});
histos.add("Tracks/SGsideC/hTrackITSNCls", "#it{N Clusters ITS} distribution; #it{N Clusters ITS}; counts", kTH1F, {axisNCls});
histos.add("Tracks/SGsideC/hTrackITSChi2NCls", "#it{N Clusters Chi2 ITS} distribution; #it{N Clusters Chi2 ITS}; counts", kTH1F, {axisChi2NCls});
histos.add("Tracks/SGsideC/hTrackNClsCrossedRowsOverNClsFindable", "#it{NClsCrossedRows/FindableNCls} distribution in TPC; #it{NClsCrossedRows/FindableNCls}; counts", kTH1F, {axisTPCNClsCrossedRowsMin});
Expand Down Expand Up @@ -240,18 +269,22 @@
{axisEtaEfficiency, "#eta"},
{axisPtEfficiency, "p_{T} (GeV/c)"},
{axisVertexEfficiency, "z-vtx (cm)"}};
same.setObject(new CorrelationContainer("sameEvent", "sameEvent", corrAxis, effAxis, {}));
mixed.setObject(new CorrelationContainer("mixedEvent", "mixedEvent", corrAxis, effAxis, {}));
sameGapSideA.setObject(new CorrelationContainer("sameEventGapSideA", "sameEventGapSideA", corrAxis, effAxis, {}));
mixedGapSideA.setObject(new CorrelationContainer("mixedEventGapSideA", "mixedEventGapSideA", corrAxis, effAxis, {}));
sameGapSideC.setObject(new CorrelationContainer("sameEventGapSideC", "sameEventGapSideC", corrAxis, effAxis, {}));
mixedGapSideC.setObject(new CorrelationContainer("mixedEventGapSideC", "mixedEventGapSideC", corrAxis, effAxis, {}));
}

std::vector<double> vtxBinsEdges{VARIABLE_WIDTH, -10.0f, -7.0f, -5.0f, -2.0f, 0.0f, 2.0f, 5.0f, 7.0f, 10.0f};
std::vector<double> multBinsEdges{VARIABLE_WIDTH, 0.0f, 50.0f, 400.0f};
std::vector<double> vtxBinsEdges{VARIABLE_WIDTH, -10.0f, -5.0f, 0.0f, 5.0f, 10.0f};
std::vector<double> gapSideBinsEdges{VARIABLE_WIDTH, -0.5, 0.5, 1.5};

SliceCache cache;

// Binning only on PosZ without multiplicity
using BinningType = ColumnBinningPolicy<aod::collision::PosZ>;
BinningType bindingOnVtx{{vtxBinsEdges}, true};
SameKindPair<FullSGUDCollision, FullUDTracks, BinningType> pairs{bindingOnVtx, 5, -1, &cache};
// using BinningType = ColumnBinningPolicy<aod::collision::PosZ>;
using BinningType = ColumnBinningPolicy<aod::collision::PosZ, aod::udcollision::GapSide>;
BinningType bindingOnVtx{{vtxBinsEdges, {gapSideBinsEdges}}, true};
SameKindPair<FullSGUDCollision, FullUDTracks, BinningType> pairs{bindingOnVtx, nEvenstMixed, -1, &cache};

// ColumnBinningPolicy<aod::collision::PosZ, aod::udcollision::TotalFT0AmplitudeC> bindingOnVtx{{vtxBinsEdges, multBinsEdges}, true};

Expand Down Expand Up @@ -345,7 +378,7 @@
template <typename TTracks>
void fillQAUD(const TTracks tracks)
{
for (auto& track : tracks) {
for (const auto& track : tracks) {
histos.fill(HIST("yields"), tracks.size(), track.pt(), eta(track.px(), track.py(), track.pz()));
histos.fill(HIST("etaphi"), tracks.size(), eta(track.px(), track.py(), track.pz()), phi(track.px(), track.py()));
}
Expand All @@ -363,12 +396,12 @@
void fillCorrelationsUD(TTarget target, const TTracks tracks1, const TTracks tracks2, float multiplicity, float posZ)
{
multiplicity = tracks1.size();
for (auto& track1 : tracks1) {
for (const auto& track1 : tracks1) {
if (isTrackCut(track1) == false) {
continue;
}
target->getTriggerHist()->Fill(CorrelationContainer::kCFStepReconstructed, track1.pt(), multiplicity, posZ, 1.0);
for (auto& track2 : tracks2) {
for (const auto& track2 : tracks2) {
if (track1 == track2) {
continue;
}
Expand All @@ -379,11 +412,11 @@
continue;
}
float deltaPhi = phi(track1.px(), track1.py()) - phi(track2.px(), track2.py());
if (deltaPhi > 1.5f * PI) {

Check failure on line 415 in PWGUD/Tasks/upcPhotonuclearAnalysisJMG.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
deltaPhi -= TwoPI;

Check failure on line 416 in PWGUD/Tasks/upcPhotonuclearAnalysisJMG.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[two-pi-add-subtract]

Use RecoDecay::constrainAngle to restrict angle to a given range.
}
if (deltaPhi < -PIHalf) {
deltaPhi += TwoPI;

Check failure on line 419 in PWGUD/Tasks/upcPhotonuclearAnalysisJMG.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[two-pi-add-subtract]

Use RecoDecay::constrainAngle to restrict angle to a given range.
}
target->getPairHist()->Fill(CorrelationContainer::kCFStepReconstructed, eta(track1.px(), track1.py(), track1.pz()) - eta(track2.px(), track2.py(), track2.pz()), track2.pt(), track1.pt(), multiplicity, deltaPhi, posZ, 1.0);
}
Expand All @@ -396,8 +429,9 @@
int sgSide = reconstructedCollision.gapSide();
int nTracksCharged = 0;
float sumPt = 0;
std::vector<float> vTrackPtSideA, vTrackEtaSideA, vTrackPhiSideA;
std::vector<float> vTrackPtSideC, vTrackEtaSideC, vTrackPhiSideC;
std::vector<float> vTrackPtSideA, vTrackEtaSideA, vTrackPhiSideA, vTrackTPCSignalSideA, vTrackTOFSignalSideA, vTrackTPCNSigmaPiSideA, vTrackTOFNSigmaPiSideA, vTrackTPCNSigmaKaSideA, vTrackTOFNSigmaKaSideA;
std::vector<float> vTrackPtSideC, vTrackEtaSideC, vTrackPhiSideC, vTrackTPCSignalSideC, vTrackTOFSignalSideC, vTrackTPCNSigmaPiSideC, vTrackTOFNSigmaPiSideC, vTrackTPCNSigmaKaSideC, vTrackTOFNSigmaKaSideC;

int nTracksChargedSideA(-222), nTracksChargedSideC(-222);
int multiplicitySideA(-222), multiplicitySideC(-222);

Expand All @@ -416,7 +450,7 @@
histos.fill(HIST("Events/SGsideA/hZVtx"), reconstructedCollision.posZ());
histos.fill(HIST("Events/SGsideA/hAmplitudFT0A"), reconstructedCollision.totalFT0AmplitudeA());
histos.fill(HIST("Events/SGsideA/hAmplitudFT0C"), reconstructedCollision.totalFT0AmplitudeC());
for (auto& track : reconstructedTracks) {
for (const auto& track : reconstructedTracks) {
if (track.sign() == 1 || track.sign() == -1) {
if (isTrackCut(track) == false) {
continue;
Expand All @@ -427,9 +461,16 @@
histos.fill(HIST("Tracks/SGsideA/hTrackPhi"), phi(track.px(), track.py()));
histos.fill(HIST("Tracks/SGsideA/hTrackEta"), eta(track.px(), track.py(), track.pz()));
histos.fill(HIST("Tracks/SGsideA/hTrackTPCSignnalP"), momentum(track.px(), track.py(), track.pz()) * track.sign(), track.tpcSignal());
histos.fill(HIST("Tracks/SGsideA/hTrackTOFSignnalP"), momentum(track.px(), track.py(), track.pz()) * track.sign(), track.tofSignal());
vTrackPtSideA.push_back(track.pt());
vTrackEtaSideA.push_back(eta(track.px(), track.py(), track.pz()));
vTrackPhiSideA.push_back(phi(track.px(), track.py()));
vTrackTPCSignalSideA.push_back(track.tpcSignal());
vTrackTOFSignalSideA.push_back(track.tofSignal());
vTrackTPCNSigmaPiSideA.push_back(track.tpcNSigmaPi());
vTrackTOFNSigmaPiSideA.push_back(track.tofNSigmaPi());
vTrackTPCNSigmaKaSideA.push_back(track.tpcNSigmaKa());
vTrackTOFNSigmaKaSideA.push_back(track.tofNSigmaKa());

histos.fill(HIST("Tracks/SGsideA/hTrackITSNCls"), track.itsNCls());
histos.fill(HIST("Tracks/SGsideA/hTrackITSChi2NCls"), track.itsChi2NCl());
Expand Down Expand Up @@ -465,7 +506,7 @@
histos.fill(HIST("Events/SGsideC/hZVtx"), reconstructedCollision.posZ());
histos.fill(HIST("Events/SGsideC/hAmplitudFT0A"), reconstructedCollision.totalFT0AmplitudeA());
histos.fill(HIST("Events/SGsideC/hAmplitudFT0C"), reconstructedCollision.totalFT0AmplitudeC());
for (auto& track : reconstructedTracks) {
for (const auto& track : reconstructedTracks) {
if (track.sign() == 1 || track.sign() == -1) {
if (isTrackCut(track) == false) {
continue;
Expand All @@ -476,9 +517,16 @@
histos.fill(HIST("Tracks/SGsideC/hTrackPhi"), phi(track.px(), track.py()));
histos.fill(HIST("Tracks/SGsideC/hTrackEta"), eta(track.px(), track.py(), track.pz()));
histos.fill(HIST("Tracks/SGsideC/hTrackTPCSignnalP"), momentum(track.px(), track.py(), track.pz()) * track.sign(), track.tpcSignal());
histos.fill(HIST("Tracks/SGsideC/hTrackTOFSignnalP"), momentum(track.px(), track.py(), track.pz()) * track.sign(), track.tofSignal());
vTrackPtSideC.push_back(track.pt());
vTrackEtaSideC.push_back(eta(track.px(), track.py(), track.pz()));
vTrackPhiSideC.push_back(phi(track.px(), track.py()));
vTrackTPCSignalSideC.push_back(track.tpcSignal());
vTrackTOFSignalSideC.push_back(track.tofSignal());
vTrackTPCNSigmaPiSideC.push_back(track.tpcNSigmaPi());
vTrackTOFNSigmaPiSideC.push_back(track.tofNSigmaPi());
vTrackTPCNSigmaKaSideC.push_back(track.tpcNSigmaKa());
vTrackTOFNSigmaKaSideC.push_back(track.tofNSigmaKa());

histos.fill(HIST("Tracks/SGsideC/hTrackITSNCls"), track.itsNCls());
histos.fill(HIST("Tracks/SGsideC/hTrackITSChi2NCls"), track.itsChi2NCl());
Expand All @@ -504,33 +552,40 @@
return;
break;
}
tree(vTrackPtSideA, vTrackEtaSideA, vTrackPhiSideA, vTrackPtSideC, vTrackEtaSideC, vTrackPhiSideC, nTracksChargedSideA, multiplicitySideA, nTracksChargedSideC, multiplicitySideC);
tree(vTrackPtSideA, vTrackEtaSideA, vTrackPhiSideA, vTrackTPCSignalSideA, vTrackTOFSignalSideA, vTrackTPCNSigmaPiSideA, vTrackTOFNSigmaPiSideA, vTrackTPCNSigmaKaSideA, vTrackTOFNSigmaKaSideA, vTrackPtSideC, vTrackEtaSideC, vTrackPhiSideC, vTrackTPCSignalSideA, vTrackTOFSignalSideA, vTrackTPCNSigmaPiSideA, vTrackTOFNSigmaPiSideA, vTrackTPCNSigmaKaSideA, vTrackTOFNSigmaKaSideA, nTracksChargedSideA, multiplicitySideA, nTracksChargedSideC, multiplicitySideC);
// nTracksChargedSideA = nTracksChargedSideC = multiplicitySideA = multiplicitySideC = 0;
}
PROCESS_SWITCH(upcPhotonuclearAnalysisJMG, processSG, "Process in UD tables", true);

void processSame(FullSGUDCollision::iterator const& reconstructedCollision, FullUDTracks const& reconstructedTracks)
{
int sgSide = reconstructedCollision.gapSide();
float multiplicity = 0;

float multiplicity = reconstructedTracks.size();
switch (sgSide) {
case 0: // gap for side A
if (isCollisionCutSG(reconstructedCollision, 0) == false) {
return;
}
if (fillCollisionUD(same, multiplicity) == false) {
multiplicity = reconstructedTracks.size();
if (fillCollisionUD(sameGapSideA, multiplicity) == false) {
return;
}
LOGF(info, "Filling same events");
LOGF(info, "Filling sameGapSideA events");
histos.fill(HIST("eventcount"), -2);
fillQAUD(reconstructedTracks);
fillCorrelationsUD(same, reconstructedTracks, reconstructedTracks, multiplicity, reconstructedCollision.posZ());
fillCorrelationsUD(sameGapSideA, reconstructedTracks, reconstructedTracks, multiplicity, reconstructedCollision.posZ());
break;
case 1: // gap for side C
// if (isCollisionCutSG(reconstructedCollision, 1) == false) {
// return;
// }
if (isCollisionCutSG(reconstructedCollision, 1) == false) {
return;
}
multiplicity = reconstructedTracks.size();
if (fillCollisionUD(sameGapSideC, multiplicity) == false) {
return;
}
LOGF(info, "Filling sameGapSideC events");
fillCorrelationsUD(sameGapSideC, reconstructedTracks, reconstructedTracks, multiplicity, reconstructedCollision.posZ());
break;
default:
return;
Expand All @@ -542,37 +597,45 @@

void processMixed(FullSGUDCollision::iterator const& reconstructedCollision)
{
int sgSide = reconstructedCollision.gapSide();
(void)reconstructedCollision;
// int sgSide = reconstructedCollision.gapSide();
// int sgSide = 0;

for (auto& [collision1, tracks1, collision2, tracks2] : pairs) {
for (const auto& [collision1, tracks1, collision2, tracks2] : pairs) {
if (collision1.size() == 0 || collision2.size() == 0) {
LOGF(info, "One or both collisions are empty.");
continue;
}
float multiplicity = tracks1.size();
LOGF(info, "Filling mixed events");
switch (sgSide) {
case 0: // gap for side A
if (isCollisionCutSG(reconstructedCollision, 0) == false) {
return;
}
if (fillCollisionUD(mixed, multiplicity) == false) {
return;
}
// LOGF(info, ">>> Bin of collision: ", bindingOnVtx.getBin({collision1.posZ()}));
// histos.fill(HIST("eventcount"), bindingOnVtx.getBin({collision1.posZ(), collision1.totalFT0AmplitudeC()}));
histos.fill(HIST("eventcount"), bindingOnVtx.getBin({collision1.posZ()}));
fillCorrelationsUD(mixed, tracks1, tracks2, multiplicity, collision1.posZ());
break;
case 1: // gap for side C
// if (isCollisionCutSG(reconstructedCollision, 1) == false) {
// return;
// }
break;
default:

float multiplicity = 0;
if (collision1.gapSide() == 0 && collision2.gapSide() == 0) { // gap on side A
if (isCollisionCutSG(collision1, 0) == false && isCollisionCutSG(collision2, 0) == false) {
continue;
}
LOGF(info, "In the pairs loop, gap side A");
multiplicity = tracks1.size();
if (fillCollisionUD(mixedGapSideA, multiplicity) == false) {
return;
break;
}
// histos.fill(HIST("eventcount"), bindingOnVtx.getBin({collision1.posZ()}));
histos.fill(HIST("eventcount"), bindingOnVtx.getBin({collision1.posZ(), collision1.gapSide()}));
fillCorrelationsUD(mixedGapSideA, tracks1, tracks2, multiplicity, collision1.posZ());
LOGF(info, "Filling mixedGapSideA events, Gap for side A");
}

if (collision1.gapSide() == 1 && collision2.gapSide() == 1) { // gap on side C
if (isCollisionCutSG(collision1, 1) == false && isCollisionCutSG(collision2, 1) == false) {
continue;
}
LOGF(info, "In the pairs loop, gap side C");
multiplicity = tracks1.size();
if (fillCollisionUD(mixedGapSideC, multiplicity) == false) {
return;
}
fillCorrelationsUD(mixedGapSideC, tracks1, tracks2, multiplicity, collision1.posZ());
LOGF(info, "Filling mixedGapSideC events, Gap for side C");
} else {
continue;
}
}
}
Expand Down
Loading