Skip to content

Commit fc10891

Browse files
ljoergenalibuild
authored andcommitted
PWGLF: fixes for AngularCorrelationsInJets.cxx (AliceO2Group#7445)
* AngularCorrelationsInJets.cxx: bug fixes * Please consider the following formatting changes --------- Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent 239919f commit fc10891

File tree

1 file changed

+66
-40
lines changed

1 file changed

+66
-40
lines changed

PWGLF/Tasks/Nuspex/AngularCorrelationsInJets.cxx

Lines changed: 66 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,6 @@ struct Configurables {
4747
Configurable<int> fMinReqClusterITS{"minReqClusterITS", 2, "min number of clusters required in ITS"};
4848
Configurable<int> fMinReqClusterTPC{"minReqClusterTPC", 70, "min number of clusters required in TPC"};
4949
Configurable<float> fMinRatioCrossedRowsTPC{"minRatioCrossedRowsTPC", 0.7f, "min ratio of crossed rows over findable clusters TPC"};
50-
Configurable<float> fMaxChi2ITS{"maxChi2ITS", 36.0f, "max chi2 per cluster ITS"};
51-
Configurable<float> fMaxChi2TPC{"maxChi2TPC", 4.0f, "max chi2 per cluster TPC"};
52-
Configurable<float> fMaxDCAxy{"maxDCA_xy", 0.5f, "max DCA to vertex xy"};
53-
Configurable<float> fMaxDCAz{"maxDCA_z", 2.4f, "max DCA to vertex z"};
54-
Configurable<float> fMaxEta{"maxEta", 0.8, "max pseudorapidity"}; // consider jet cone?
5550

5651
// Jet Cuts
5752
Configurable<float> fJetR{"jetR", 0.4, "jet resolution parameter"};
@@ -140,13 +135,20 @@ struct Configurables {
140135
Configurable<int> fBufferSize{"trackBufferSize", 2000, "Number of mixed-event tracks being stored"};
141136

142137
// QC Configurables
143-
Configurable<float> fZVtx{"zVtx", 0.0, "max zVertex"};
138+
Configurable<float> fZVtx{"zVtx", 9999, "max zVertex"};
144139
Configurable<float> fRmax{"Rmax", 0.3, "Maximum radius for jet and UE regions"};
145140
};
146141

147142
struct AngularCorrelationsInJets {
148143
Configurables configurables;
149144

145+
// Configurables for Filter
146+
Configurable<float> fMaxChi2ITS{"maxChi2ITS", 36.0f, "max chi2 per cluster ITS"};
147+
Configurable<float> fMaxChi2TPC{"maxChi2TPC", 4.0f, "max chi2 per cluster TPC"};
148+
Configurable<float> fMaxDCAxy{"maxDCA_xy", 0.5f, "max DCA to vertex xy"};
149+
Configurable<float> fMaxDCAz{"maxDCA_z", 2.4f, "max DCA to vertex z"};
150+
Configurable<float> fMaxEta{"maxEta", 0.8, "max pseudorapidity"}; // consider jet cone?
151+
150152
Service<o2::ccdb::BasicCCDBManager> ccdb;
151153
int mRunNumber;
152154

@@ -156,11 +158,11 @@ struct AngularCorrelationsInJets {
156158
aod::TracksDCA, aod::pidTPCFullPr, aod::pidTPCFullDe, aod::pidTPCFullHe, aod::pidTOFFullPr, aod::pidTOFFullDe, aod::pidTOFFullHe, aod::pidTOFmass, aod::pidTOFbeta>;
157159
using BCsWithRun2Info = soa::Join<aod::BCs, aod::Run2BCInfos, aod::Timestamps>;
158160

159-
Filter prelimTrackCuts = (aod::track::itsChi2NCl < configurables.fMaxChi2ITS &&
160-
aod::track::tpcChi2NCl < configurables.fMaxChi2TPC &&
161-
nabs(aod::track::dcaXY) < configurables.fMaxDCAxy &&
162-
nabs(aod::track::dcaZ) < configurables.fMaxDCAz &&
163-
nabs(aod::track::eta) < configurables.fMaxEta);
161+
Filter prelimTrackCuts = (aod::track::itsChi2NCl < fMaxChi2ITS &&
162+
aod::track::tpcChi2NCl < fMaxChi2TPC &&
163+
nabs(aod::track::dcaXY) < fMaxDCAxy &&
164+
nabs(aod::track::dcaZ) < fMaxDCAz &&
165+
nabs(aod::track::eta) < fMaxEta);
164166

165167
Preslice<FullTracksRun2> perCollisionFullTracksRun2 = o2::aod::track::collisionId;
166168
Preslice<FullTracksRun3> perCollisionFullTracksRun3 = o2::aod::track::collisionId;
@@ -228,18 +230,18 @@ struct AngularCorrelationsInJets {
228230
registryData.add("hDeltaPhiSEAntiproton", "#Delta#varphi of antiprotons in single event", HistType::kTH1D, {angDistPhiAxis});
229231
registryData.add("hDeltaPhiSEDeuteron", "#Delta#varphi of deuterons in single event", HistType::kTH1D, {angDistPhiAxis});
230232
registryData.add("hDeltaPhiSEAntideuteron", "#Delta#varphi of antideuterons in single event", HistType::kTH1D, {angDistPhiAxis});
231-
registryData.add("hDeltaPhiMEProtons", "#Delta#varphi of protons in mixed events", HistType::kTH1D, {angDistPhiAxis});
232-
registryData.add("hDeltaPhiMEAntiprotons", "#Delta#varphi of antiprotons in mixed events", HistType::kTH1D, {angDistPhiAxis});
233-
registryData.add("hDeltaPhiMEDeuterons", "#Delta#varphi of deuterons in mixed events", HistType::kTH1D, {angDistPhiAxis});
234-
registryData.add("hDeltaPhiMEAntideuterons", "#Delta#varphi of antideuterons in mixed events", HistType::kTH1D, {angDistPhiAxis});
235-
registryData.add("hDeltaPhiEtaSEProtons", "#Delta#varphi vs #Delta#eta of protons in single event", HistType::kTH2D, {angDistPhiAxis, angDistEtaAxis});
236-
registryData.add("hDeltaPhiEtaSEAntiprotons", "#Delta#varphi vs #Delta#eta of antiprotons in single event", HistType::kTH2D, {angDistPhiAxis, angDistEtaAxis});
237-
registryData.add("hDeltaPhiEtaSEDeuterons", "#Delta#varphi vs #Delta#eta of deuterons in single event", HistType::kTH2D, {angDistPhiAxis, angDistEtaAxis});
238-
registryData.add("hDeltaPhiEtaSEAntideuterons", "#Delta#varphi vs #Delta#eta of antideuterons in single event", HistType::kTH2D, {angDistPhiAxis, angDistEtaAxis});
239-
registryData.add("hDeltaPhiEtaMEProtons", "#Delta#varphi vs #Delta#eta of protons in mixed events", HistType::kTH2D, {angDistPhiAxis, angDistEtaAxis});
240-
registryData.add("hDeltaPhiEtaMEAntiprotons", "#Delta#varphi vs #Delta#eta of antiprotons in mixed events", HistType::kTH2D, {angDistPhiAxis, angDistEtaAxis});
241-
registryData.add("hDeltaPhiEtaMEDeuterons", "#Delta#varphi vs #Delta#eta of deuterons in mixed events", HistType::kTH2D, {angDistPhiAxis, angDistEtaAxis});
242-
registryData.add("hDeltaPhiEtaMEAntideuterons", "#Delta#varphi vs #Delta#eta of antideuterons in mixed events", HistType::kTH2D, {angDistPhiAxis, angDistEtaAxis});
233+
registryData.add("hDeltaPhiMEProton", "#Delta#varphi of protons in mixed events", HistType::kTH1D, {angDistPhiAxis});
234+
registryData.add("hDeltaPhiMEAntiproton", "#Delta#varphi of antiprotons in mixed events", HistType::kTH1D, {angDistPhiAxis});
235+
registryData.add("hDeltaPhiMEDeuteron", "#Delta#varphi of deuterons in mixed events", HistType::kTH1D, {angDistPhiAxis});
236+
registryData.add("hDeltaPhiMEAntideuteron", "#Delta#varphi of antideuterons in mixed events", HistType::kTH1D, {angDistPhiAxis});
237+
registryData.add("hDeltaPhiEtaSEProton", "#Delta#varphi vs #Delta#eta of protons in single event", HistType::kTH2D, {angDistPhiAxis, angDistEtaAxis});
238+
registryData.add("hDeltaPhiEtaSEAntiproton", "#Delta#varphi vs #Delta#eta of antiprotons in single event", HistType::kTH2D, {angDistPhiAxis, angDistEtaAxis});
239+
registryData.add("hDeltaPhiEtaSEDeuteron", "#Delta#varphi vs #Delta#eta of deuterons in single event", HistType::kTH2D, {angDistPhiAxis, angDistEtaAxis});
240+
registryData.add("hDeltaPhiEtaSEAntideuteron", "#Delta#varphi vs #Delta#eta of antideuterons in single event", HistType::kTH2D, {angDistPhiAxis, angDistEtaAxis});
241+
registryData.add("hDeltaPhiEtaMEProton", "#Delta#varphi vs #Delta#eta of protons in mixed events", HistType::kTH2D, {angDistPhiAxis, angDistEtaAxis});
242+
registryData.add("hDeltaPhiEtaMEAntiproton", "#Delta#varphi vs #Delta#eta of antiprotons in mixed events", HistType::kTH2D, {angDistPhiAxis, angDistEtaAxis});
243+
registryData.add("hDeltaPhiEtaMEDeuteron", "#Delta#varphi vs #Delta#eta of deuterons in mixed events", HistType::kTH2D, {angDistPhiAxis, angDistEtaAxis});
244+
registryData.add("hDeltaPhiEtaMEAntideuteron", "#Delta#varphi vs #Delta#eta of antideuterons in mixed events", HistType::kTH2D, {angDistPhiAxis, angDistEtaAxis});
243245

244246
registryData.add("hJetConeRadius", "Jet Radius;#it{R}", HistType::kTH1F, {{100, 0, 1}});
245247

@@ -480,12 +482,12 @@ struct AngularCorrelationsInJets {
480482

481483
void setTrackBuffer(const auto& tempBuffer, auto& buffer)
482484
{
483-
for (int i = 0; i < static_cast<int>(tempBuffer.size()); i++) {
485+
for (const auto& pair : tempBuffer) {
484486
if (static_cast<int>(buffer.size()) == configurables.fBufferSize) {
485-
buffer.insert(buffer.begin(), std::make_pair(tempBuffer.at(i).first, tempBuffer.at(i).second));
487+
buffer.insert(buffer.begin(), pair);
486488
buffer.resize(configurables.fBufferSize);
487489
} else if (static_cast<int>(buffer.size()) < configurables.fBufferSize) {
488-
buffer.emplace_back(std::make_pair(tempBuffer.at(i).first, tempBuffer.at(i).second));
490+
buffer.emplace_back(pair);
489491
}
490492
}
491493
}
@@ -494,6 +496,8 @@ struct AngularCorrelationsInJets {
494496
{
495497
if (buffer.size() == 0)
496498
return;
499+
if (std::isnan(track.phi()) || std::isnan(jetAxis.Phi()))
500+
return;
497501
for (int i = 0; i < static_cast<int>(buffer.size()); i++) { // loop over tracks in buffer
498502
if (std::isnan(buffer.at(i).first))
499503
continue;
@@ -533,17 +537,21 @@ struct AngularCorrelationsInJets {
533537

534538
void doCorrelations(const auto& particleVector, const auto& buffer, auto& tempBuffer, int particleType, const TVector3 jetAxis)
535539
{
540+
if (std::isnan(jetAxis.Phi()))
541+
return;
536542
for (int i = 0; i < static_cast<int>(particleVector.size()); i++) {
543+
if (std::isnan(particleVector.at(i).phi()))
544+
continue;
537545
double phiToAxis = TVector2::Phi_0_2pi(particleVector.at(i).phi() - jetAxis.Phi());
538546
double etaToAxis = particleVector.at(i).eta() - jetAxis.Eta();
539-
if (particleVector.at(i).phi() > 2 * TMath::Pi() || particleVector.at(i).phi() < -2 * TMath::Pi()) { // maybe simply introduce phi cut?
547+
if (TMath::Abs(particleVector.at(i).phi()) > 2 * TMath::Pi()) {
540548
registryData.fill(HIST("hTrackProtocol"), 10);
541549
continue;
542550
}
543551
for (int j = i + 1; j < static_cast<int>(particleVector.size()); j++) {
544552
if ((j == static_cast<int>(particleVector.size())) || std::isnan(particleVector.at(j).phi()))
545553
continue;
546-
if (particleVector.at(j).phi() > 2 * TMath::Pi() || particleVector.at(j).phi() < -2 * TMath::Pi()) {
554+
if (TMath::Abs(particleVector.at(j).phi()) > 2 * TMath::Pi()) {
547555
registryData.fill(HIST("hTrackProtocol"), 11);
548556
continue;
549557
}
@@ -579,6 +587,8 @@ struct AngularCorrelationsInJets {
579587

580588
double getDeltaPhi(double a1, double a2)
581589
{
590+
if (std::isnan(a1) || std::isnan(a2) || a1 == -999 || a2 == -999)
591+
return -999;
582592
double deltaPhi(0);
583593
double phi1 = TVector2::Phi_0_2pi(a1);
584594
double phi2 = TVector2::Phi_0_2pi(a2);
@@ -742,6 +752,8 @@ struct AngularCorrelationsInJets {
742752

743753
for (const auto& constituent : hardestJet.constituents()) {
744754
registryData.fill(HIST("hPtJetParticle"), constituent.pt());
755+
if (std::isnan(constituent.phi()) || std::isnan(hardestJet.phi()))
756+
continue;
745757
double DeltaPhi = TVector2::Phi_0_2pi(constituent.phi() - hardestJet.phi());
746758
double DeltaEta = constituent.eta() - hardestJet.eta();
747759
double Delta = TMath::Sqrt(DeltaPhi * DeltaPhi + DeltaEta * DeltaEta);
@@ -781,7 +793,8 @@ struct AngularCorrelationsInJets {
781793
registryQA.fill(HIST("hPhiLeading"), leadingTrack.phi());
782794
registryQA.fill(HIST("hEtaLeading"), leadingTrack.eta());
783795
registryQA.fill(HIST("hAngleJetLeadingTrack"), (180.0 / TMath::Pi()) * pLeading.Angle(pJet));
784-
registryQA.fill(HIST("hDeltaEtadeltaPhiLeadingJet"), deltaEta, deltaPhi);
796+
if (deltaPhi != -999)
797+
registryQA.fill(HIST("hDeltaEtadeltaPhiLeadingJet"), deltaEta, deltaPhi);
785798

786799
double NchJetPlusUE(0);
787800
double NchJet(0);
@@ -803,19 +816,22 @@ struct AngularCorrelationsInJets {
803816
double deltaRUE2 = sqrt(deltaEtaUE2 * deltaEtaUE2 + deltaPhiUE2 * deltaPhiUE2);
804817

805818
if (deltaRJet < configurables.fRmax) {
806-
registryQA.fill(HIST("hDeltaEtadeltaPhiJet"), deltaEtaJet, deltaPhiJet);
819+
if (deltaPhiJet != -999)
820+
registryQA.fill(HIST("hDeltaEtadeltaPhiJet"), deltaEtaJet, deltaPhiJet);
807821
registryQA.fill(HIST("hRJet"), deltaRJet);
808822
NchJetPlusUE++;
809823
ptJetPlusUE = ptJetPlusUE + track.pt();
810824
}
811825
if (deltaRUE1 < configurables.fRmax) {
812-
registryQA.fill(HIST("hDeltaEtadeltaPhiUE"), deltaEtaUE1, deltaPhiUE1);
826+
if (deltaPhiUE1 != -999)
827+
registryQA.fill(HIST("hDeltaEtadeltaPhiUE"), deltaEtaUE1, deltaPhiUE1);
813828
registryQA.fill(HIST("hRUE"), deltaRUE1);
814829
NchUE++;
815830
ptUE = ptUE + track.pt();
816831
}
817832
if (deltaRUE2 < configurables.fRmax) {
818-
registryQA.fill(HIST("hDeltaEtadeltaPhiUE"), deltaEtaUE2, deltaPhiUE2);
833+
if (deltaPhiUE2 != -999)
834+
registryQA.fill(HIST("hDeltaEtadeltaPhiUE"), deltaEtaUE2, deltaPhiUE2);
819835
registryQA.fill(HIST("hRUE"), deltaRUE2);
820836
NchUE++;
821837
ptUE = ptUE + track.pt();
@@ -840,14 +856,16 @@ struct AngularCorrelationsInJets {
840856
registryQA.fill(HIST("hNParticlesClusteredInJet"), nPartClusteredJet);
841857
double dEta = pLeading.Eta() - pJet.Eta();
842858
double dPhi = getDeltaPhi(pLeading.Phi(), pJet.Phi());
843-
registryQA.fill(HIST("hDeltaEtaDeltaPhiJetAxisLeading"), dEta, dPhi);
859+
if (dPhi != -999)
860+
registryQA.fill(HIST("hDeltaEtaDeltaPhiJetAxisLeading"), dEta, dPhi);
844861

845862
for (const auto& track : constituents) {
846863
TVector3 particleDir(track.px(), track.py(), track.pz());
847864
double dEta = particleDir.Eta() - pJet.Eta();
848865
double dPhi = getDeltaPhi(particleDir.Phi(), pJet.Phi());
849866
registryQA.fill(HIST("hPtParticlesClusteredInJet"), track.pt());
850-
registryQA.fill(HIST("hDeltaEtaDeltaPhiJetAxis"), dEta, dPhi);
867+
if (dPhi != -999)
868+
registryQA.fill(HIST("hDeltaEtaDeltaPhiJetAxis"), dEta, dPhi);
851869
}
852870
}
853871

@@ -1043,6 +1061,8 @@ struct AngularCorrelationsInJets {
10431061

10441062
for (const auto& constituent : hardestJet.constituents()) {
10451063
registryData.fill(HIST("hPtJetParticle"), constituent.pt());
1064+
if (std::isnan(constituent.phi()) || std::isnan(hardestJet.phi()))
1065+
continue;
10461066
double DeltaPhi = TVector2::Phi_0_2pi(constituent.phi() - hardestJet.phi());
10471067
double DeltaEta = constituent.eta() - hardestJet.eta();
10481068
double Delta = TMath::Sqrt(DeltaPhi * DeltaPhi + DeltaEta * DeltaEta);
@@ -1082,7 +1102,8 @@ struct AngularCorrelationsInJets {
10821102
registryQA.fill(HIST("hPhiLeading"), leadingTrack.phi());
10831103
registryQA.fill(HIST("hEtaLeading"), leadingTrack.eta());
10841104
registryQA.fill(HIST("hAngleJetLeadingTrack"), (180.0 / TMath::Pi()) * pLeading.Angle(pJet));
1085-
registryQA.fill(HIST("hDeltaEtadeltaPhiLeadingJet"), deltaEta, deltaPhi);
1105+
if (deltaPhi != -999)
1106+
registryQA.fill(HIST("hDeltaEtadeltaPhiLeadingJet"), deltaEta, deltaPhi);
10861107

10871108
double NchJetPlusUE(0);
10881109
double NchJet(0);
@@ -1104,19 +1125,22 @@ struct AngularCorrelationsInJets {
11041125
double deltaRUE2 = sqrt(deltaEtaUE2 * deltaEtaUE2 + deltaPhiUE2 * deltaPhiUE2);
11051126

11061127
if (deltaRJet < configurables.fRmax) {
1107-
registryQA.fill(HIST("hDeltaEtadeltaPhiJet"), deltaEtaJet, deltaPhiJet);
1128+
if (deltaPhiJet != -999)
1129+
registryQA.fill(HIST("hDeltaEtadeltaPhiJet"), deltaEtaJet, deltaPhiJet);
11081130
registryQA.fill(HIST("hRJet"), deltaRJet);
11091131
NchJetPlusUE++;
11101132
ptJetPlusUE = ptJetPlusUE + track.pt();
11111133
}
11121134
if (deltaRUE1 < configurables.fRmax) {
1113-
registryQA.fill(HIST("hDeltaEtadeltaPhiUE"), deltaEtaUE1, deltaPhiUE1);
1135+
if (deltaPhiUE1 != -999)
1136+
registryQA.fill(HIST("hDeltaEtadeltaPhiUE"), deltaEtaUE1, deltaPhiUE1);
11141137
registryQA.fill(HIST("hRUE"), deltaRUE1);
11151138
NchUE++;
11161139
ptUE = ptUE + track.pt();
11171140
}
11181141
if (deltaRUE2 < configurables.fRmax) {
1119-
registryQA.fill(HIST("hDeltaEtadeltaPhiUE"), deltaEtaUE2, deltaPhiUE2);
1142+
if (deltaPhiUE2 != -999)
1143+
registryQA.fill(HIST("hDeltaEtadeltaPhiUE"), deltaEtaUE2, deltaPhiUE2);
11201144
registryQA.fill(HIST("hRUE"), deltaRUE2);
11211145
NchUE++;
11221146
ptUE = ptUE + track.pt();
@@ -1141,14 +1165,16 @@ struct AngularCorrelationsInJets {
11411165
registryQA.fill(HIST("hNParticlesClusteredInJet"), nPartClusteredJet);
11421166
double dEta = pLeading.Eta() - pJet.Eta();
11431167
double dPhi = getDeltaPhi(pLeading.Phi(), pJet.Phi());
1144-
registryQA.fill(HIST("hDeltaEtaDeltaPhiJetAxisLeading"), dEta, dPhi);
1168+
if (dPhi != -999)
1169+
registryQA.fill(HIST("hDeltaEtaDeltaPhiJetAxisLeading"), dEta, dPhi);
11451170

11461171
for (const auto& track : constituents) {
11471172
TVector3 particleDir(track.px(), track.py(), track.pz());
11481173
double dEta = particleDir.Eta() - pJet.Eta();
11491174
double dPhi = getDeltaPhi(particleDir.Phi(), pJet.Phi());
11501175
registryQA.fill(HIST("hPtParticlesClusteredInJet"), track.pt());
1151-
registryQA.fill(HIST("hDeltaEtaDeltaPhiJetAxis"), dEta, dPhi);
1176+
if (dPhi != -999)
1177+
registryQA.fill(HIST("hDeltaEtaDeltaPhiJetAxis"), dEta, dPhi);
11521178
}
11531179
}
11541180

0 commit comments

Comments
 (0)