Skip to content

Commit b1600a0

Browse files
cnkosteralibuild
andauthored
[PWGCF] flowSP: Change px/pt (#14717)
Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent 9fe5a53 commit b1600a0

File tree

1 file changed

+76
-50
lines changed

1 file changed

+76
-50
lines changed

PWGCF/Flow/Tasks/flowSP.cxx

Lines changed: 76 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,6 @@ struct FlowSP {
6969
O2_DEFINE_CONFIGURABLE(cfgEvtRCTFlagCheckerLimitAcceptAsBad, bool, false, "Evt sel: RCT flag checker treat Limited Acceptance As Bad");
7070
} rctFlags;
7171

72-
// struct : ConfigurableGroup { // <-- change all to evsels.Selection
7372
// event selection configurable group
7473
O2_DEFINE_CONFIGURABLE(cfgEvSelsUseAdditionalEventCut, bool, true, "Bool to enable Additional Event Cut");
7574
O2_DEFINE_CONFIGURABLE(cfgEvSelsMaxOccupancy, int, 10000, "Maximum occupancy of selected events");
@@ -81,7 +80,6 @@ struct FlowSP {
8180
O2_DEFINE_CONFIGURABLE(cfgEvSelsIsVertexITSTPC, bool, true, "Selects collisions with at least one ITS-TPC track");
8281
O2_DEFINE_CONFIGURABLE(cfgEvSelsIsGoodITSLayersAll, bool, true, "Cut time intervals with dead ITS staves");
8382
O2_DEFINE_CONFIGURABLE(cfgEvSelsIsGoodITSLayer0123, bool, true, "Cut time intervals with dead ITS staves");
84-
// } evSels;
8583

8684
// QA Plots
8785
O2_DEFINE_CONFIGURABLE(cfgFillEventQA, bool, false, "Fill histograms for event QA");
@@ -528,6 +526,11 @@ struct FlowSP {
528526
if (cfgFillMeanPT) {
529527
registry.add<TProfile2D>("incl/meanPT/meanRelPtA", "", kTProfile2D, {axisEtaVn, axisCentrality});
530528
registry.add<TProfile2D>("incl/meanPT/meanRelPtC", "", kTProfile2D, {axisEtaVn, axisCentrality});
529+
530+
registry.add<TProfile2D>("incl/meanPT/hRelEtaPt", "", kTProfile2D, {axisEtaVn, axisCentrality});
531+
registry.add<TProfile2D>("incl/meanPT/ptV1A", "", kTProfile2D, {axisEtaVn, axisCentrality});
532+
registry.add<TProfile2D>("incl/meanPT/ptV1C", "", kTProfile2D, {axisEtaVn, axisCentrality});
533+
registry.add<TProfile>("incl/meanPT/meanPT", "", kTProfile, {axisCentrality});
531534
}
532535
if (cfgFillPID) {
533536
registry.add<TProfile3D>("incl/pion/vnC", "", kTProfile3D, {axisPt, axisEtaVn, axisCentrality});
@@ -1066,6 +1069,13 @@ struct FlowSP {
10661069
registry.fill(HIST(Charge[ct]) + HIST(Species[pt]) + HIST("vnC_EP"), track.pt(), track.eta(), spm.centrality, spm.vnC, weight);
10671070
registry.fill(HIST(Charge[ct]) + HIST(Species[pt]) + HIST("vnFull_EP"), track.pt(), track.eta(), spm.centrality, spm.vnFull, weight);
10681071
}
1072+
1073+
if (cfgFillMeanPT) {
1074+
registry.fill(HIST(Charge[ct]) + HIST(Species[pt]) + HIST("meanPT/hRelEtaPt"), track.eta(), spm.centrality, track.pt(), weight);
1075+
registry.fill(HIST(Charge[ct]) + HIST(Species[pt]) + HIST("meanPT/meanPT"), spm.centrality, track.pt(), weight);
1076+
registry.fill(HIST(Charge[ct]) + HIST(Species[pt]) + HIST("meanPT/ptV1A"), track.eta(), spm.centrality, track.pt() * ((spm.uy * spm.qyA + spm.ux * spm.qxA) / std::sqrt(std::fabs(spm.corrQQ))), weight);
1077+
registry.fill(HIST(Charge[ct]) + HIST(Species[pt]) + HIST("meanPT/ptV1C"), track.eta(), spm.centrality, track.pt() * ((spm.uy * spm.qyC + spm.ux * spm.qxC) / std::sqrt(std::fabs(spm.corrQQ))), weight);
1078+
}
10691079
}
10701080

10711081
template <FillType ft, ChargeType ct, ParticleType par, typename TrackObject>
@@ -1307,9 +1317,18 @@ struct FlowSP {
13071317

13081318
fillEventQA<kAfter>(collision, tracks);
13091319

1310-
TProfile2D* hRelEtaPt = new TProfile2D("hRelEtaPt", "hRelEtaPt", 8, -.8, .8, 3, 0, 3);
1311-
TProfile2D* ptV1A = new TProfile2D("ptV1A", "ptV1A", 8, -.8, .8, 3, 0, 3);
1312-
TProfile2D* ptV1C = new TProfile2D("ptV1C", "ptV1C", 8, -.8, .8, 3, 0, 3);
1320+
TProfile* meanPTMap = new TProfile("meanPTMap", "meanPTMap", 8, -0.8, 0.8);
1321+
TProfile* meanPTMapPos = new TProfile("meanPTMapPos", "meanPTMapPos", 8, -0.8, 0.8);
1322+
TProfile* meanPTMapNeg = new TProfile("meanPTMapNeg", "meanPTMapNeg", 8, -0.8, 0.8);
1323+
1324+
TProfile* relPxA = new TProfile("relPxA", "relPxA", 8, -0.8, 0.8);
1325+
TProfile* relPxC = new TProfile("relPxC", "relPxC", 8, -0.8, 0.8);
1326+
1327+
TProfile* relPxANeg = new TProfile("relPxANeg", "relPxANeg", 8, -0.8, 0.8);
1328+
TProfile* relPxAPos = new TProfile("relPxAPos", "relPxAPos", 8, -0.8, 0.8);
1329+
1330+
TProfile* relPxCNeg = new TProfile("relPxCNeg", "relPxCNeg", 8, -0.8, 0.8);
1331+
TProfile* relPxCPos = new TProfile("relPxCPos", "relPxCPos", 8, -0.8, 0.8);
13131332

13141333
for (const auto& track : tracks) {
13151334

@@ -1373,18 +1392,6 @@ struct FlowSP {
13731392

13741393
histos.fill(HIST("hTrackCount"), trackSel_ParticleWeights);
13751394

1376-
double weight = spm.wacc[0][0] * spm.weff[0][0] * spm.centWeight;
1377-
double weightCharged = spm.wacc[spm.charge][0] * spm.weff[spm.charge][0] * spm.centWeight;
1378-
1379-
hRelEtaPt->Fill(track.eta(), kInclusive, track.pt(), weight);
1380-
hRelEtaPt->Fill(track.eta(), spm.charge, track.pt(), weightCharged);
1381-
1382-
ptV1A->Fill(track.eta(), kInclusive, track.pt() * ((spm.uy * spm.qyA + spm.ux * spm.qxA) / std::sqrt(std::fabs(spm.corrQQ))), weight);
1383-
ptV1A->Fill(track.eta(), spm.charge, track.pt() * ((spm.uy * spm.qyA + spm.ux * spm.qxA) / std::sqrt(std::fabs(spm.corrQQ))), weightCharged);
1384-
1385-
ptV1C->Fill(track.eta(), kInclusive, track.pt() * ((spm.uy * spm.qyC + spm.ux * spm.qxC) / std::sqrt(std::fabs(spm.corrQQ))), weight);
1386-
ptV1C->Fill(track.eta(), spm.charge, track.pt() * ((spm.uy * spm.qyC + spm.ux * spm.qxC) / std::sqrt(std::fabs(spm.corrQQ))), weightCharged);
1387-
13881395
fillAllQA<kAfter, kUnidentified>(track);
13891396
if (cfgFillPIDQA) {
13901397
switch (trackPID) {
@@ -1481,47 +1488,66 @@ struct FlowSP {
14811488
}
14821489
} // end of fillPID
14831490

1491+
double drelPxA = track.pt() * ((spm.uy * spm.qyA + spm.ux * spm.qxA) / std::sqrt(std::fabs(spm.corrQQ)));
1492+
double drelPxC = track.pt() * ((spm.uy * spm.qyC + spm.ux * spm.qxC) / std::sqrt(std::fabs(spm.corrQQ)));
1493+
1494+
meanPTMap->Fill(track.eta(), track.pt(), spm.wacc[kInclusive][kUnidentified] * spm.weff[kInclusive][kUnidentified]);
1495+
relPxA->Fill(track.eta(), drelPxA, spm.wacc[kInclusive][kUnidentified] * spm.weff[kInclusive][kUnidentified]);
1496+
relPxC->Fill(track.eta(), drelPxC, spm.wacc[kInclusive][kUnidentified] * spm.weff[kInclusive][kUnidentified]);
1497+
1498+
if (spm.charge == kPositive) {
1499+
meanPTMapPos->Fill(track.eta(), track.pt(), spm.wacc[kPositive][kUnidentified] * spm.weff[kPositive][kUnidentified]);
1500+
relPxAPos->Fill(track.eta(), drelPxA, spm.wacc[kPositive][kUnidentified] * spm.weff[kPositive][kUnidentified]);
1501+
relPxCPos->Fill(track.eta(), drelPxC, spm.wacc[kPositive][kUnidentified] * spm.weff[kPositive][kUnidentified]);
1502+
}
1503+
1504+
if (spm.charge == kNegative) {
1505+
meanPTMapNeg->Fill(track.eta(), track.pt(), spm.wacc[kNegative][kUnidentified] * spm.weff[kNegative][kUnidentified]);
1506+
relPxANeg->Fill(track.eta(), drelPxA, spm.wacc[kNegative][kUnidentified] * spm.weff[kNegative][kUnidentified]);
1507+
relPxCNeg->Fill(track.eta(), drelPxC, spm.wacc[kNegative][kUnidentified] * spm.weff[kNegative][kUnidentified]);
1508+
}
1509+
14841510
} // end of track loop
14851511

14861512
// Now we want to fill the final relPt histogram
14871513
// Loop over all eta and fill bins
14881514
if (cfgFillMeanPT) {
1489-
for (int i = 0; i < hRelEtaPt->GetNbinsX(); i++) {
1490-
double eta = hRelEtaPt->GetXaxis()->GetBinCenter(i);
1491-
1492-
int bin = hRelEtaPt->FindBin(eta, kInclusive);
1493-
1494-
double drelPt = hRelEtaPt->GetBinContent(bin);
1495-
double dptV1A = ptV1A->GetBinContent(bin);
1496-
double dptV1C = ptV1C->GetBinContent(bin);
1497-
if (drelPt)
1498-
registry.fill(HIST("incl/meanPT/meanRelPtA"), eta, spm.centrality, dptV1A / drelPt, 1);
1499-
if (drelPt)
1500-
registry.fill(HIST("incl/meanPT/meanRelPtC"), eta, spm.centrality, dptV1C / drelPt, 1);
1501-
1502-
bin = hRelEtaPt->FindBin(eta, kPositive);
1503-
double drelPtPos = hRelEtaPt->GetBinContent(bin);
1504-
double dptV1APos = ptV1A->GetBinContent(bin);
1505-
double dptV1CPos = ptV1C->GetBinContent(bin);
1506-
if (drelPtPos)
1507-
registry.fill(HIST("pos/meanPT/meanRelPtA"), eta, spm.centrality, dptV1APos / drelPtPos, 1);
1508-
if (drelPtPos)
1509-
registry.fill(HIST("pos/meanPT/meanRelPtC"), eta, spm.centrality, dptV1CPos / drelPtPos, 1);
1510-
1511-
bin = hRelEtaPt->FindBin(eta, kNegative);
1512-
double drelPtNeg = hRelEtaPt->GetBinContent(bin);
1513-
double dptV1ANeg = ptV1A->GetBinContent(bin);
1514-
double dptV1CNeg = ptV1C->GetBinContent(bin);
1515-
if (drelPtNeg)
1516-
registry.fill(HIST("neg/meanPT/meanRelPtA"), eta, spm.centrality, dptV1ANeg / drelPtNeg, 1);
1517-
if (drelPtNeg)
1518-
registry.fill(HIST("neg/meanPT/meanRelPtC"), eta, spm.centrality, dptV1CNeg / drelPtNeg, 1);
1515+
int nBinsEta = 8;
1516+
for (int etabin = 1; etabin <= nBinsEta; etabin++) {
1517+
// eta bin is 1 --> Find centbin!!
1518+
double eta = meanPTMap->GetXaxis()->GetBinCenter(etabin);
1519+
double meanPt = meanPTMap->GetBinContent(etabin);
1520+
double meanPtPos = meanPTMapPos->GetBinContent(etabin);
1521+
double meanPtNeg = meanPTMapNeg->GetBinContent(etabin);
1522+
1523+
double drelPxA = relPxA->GetBinContent(etabin);
1524+
double drelPxANeg = relPxANeg->GetBinContent(etabin);
1525+
double drelPxAPos = relPxAPos->GetBinContent(etabin);
1526+
1527+
double drelPxC = relPxC->GetBinContent(etabin);
1528+
double drelPxCNeg = relPxCNeg->GetBinContent(etabin);
1529+
double drelPxCPos = relPxCPos->GetBinContent(etabin);
1530+
1531+
if (meanPt != 0) {
1532+
registry.fill(HIST("incl/meanPT/meanRelPtA"), eta, spm.centrality, drelPxA / meanPt, 1);
1533+
registry.fill(HIST("neg/meanPT/meanRelPtA"), eta, spm.centrality, drelPxANeg / meanPtNeg, 1);
1534+
registry.fill(HIST("pos/meanPT/meanRelPtA"), eta, spm.centrality, drelPxAPos / meanPtPos, 1);
1535+
registry.fill(HIST("incl/meanPT/meanRelPtC"), eta, spm.centrality, drelPxC / meanPt, 1);
1536+
registry.fill(HIST("neg/meanPT/meanRelPtC"), eta, spm.centrality, drelPxCNeg / meanPtNeg, 1);
1537+
registry.fill(HIST("pos/meanPT/meanRelPtC"), eta, spm.centrality, drelPxCPos / meanPtPos, 1);
1538+
}
15191539
}
15201540
}
15211541

1522-
delete hRelEtaPt;
1523-
delete ptV1A;
1524-
delete ptV1C;
1542+
delete meanPTMap;
1543+
delete meanPTMapPos;
1544+
delete meanPTMapNeg;
1545+
delete relPxA;
1546+
delete relPxANeg;
1547+
delete relPxAPos;
1548+
delete relPxC;
1549+
delete relPxCNeg;
1550+
delete relPxCPos;
15251551
}
15261552

15271553
PROCESS_SWITCH(FlowSP, processData, "Process analysis for non-derived data", true);

0 commit comments

Comments
 (0)