Skip to content

Commit f57a43b

Browse files
committed
fix bug and add qa
1 parent e15baea commit f57a43b

1 file changed

Lines changed: 50 additions & 22 deletions

File tree

PWGCF/JCorran/Tasks/jEPFlowAnalysis.cxx

Lines changed: 50 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@
1717
#include "PWGCF/JCorran/Core/FlowJHistManager.h"
1818

1919
#include "Common/CCDB/EventSelectionParams.h"
20+
#include "Common/CCDB/RCTSelectionFlags.h"
2021
#include "Common/Core/EventPlaneHelper.h"
22+
#include "Common/Core/RecoDecay.h"
2123
#include "Common/DataModel/Centrality.h"
2224
#include "Common/DataModel/EventSelection.h"
2325
#include "Common/DataModel/FT0Corrected.h"
@@ -60,6 +62,8 @@
6062
using namespace o2;
6163
using namespace o2::framework;
6264
using namespace o2::framework::expressions;
65+
using namespace o2::aod::rctsel;
66+
using namespace o2::constants::physics;
6367
using namespace std;
6468

6569
using MyCollisions = soa::Join<aod::Collisions, aod::EvSels, aod::Qvectors, aod::FT0sCorrected>;
@@ -88,6 +92,14 @@ struct JEPFlowAnalysis {
8892
"Latest acceptable timestamp of creation for the object"};
8993
} cfgCcdbParam;
9094

95+
struct : ConfigurableGroup {
96+
Configurable<bool> requireRCTFlagChecker{"requireRCTFlagChecker", true, "Check event quality in run condition table"};
97+
Configurable<std::string> cfgEvtRCTFlagCheckerLabel{"cfgEvtRCTFlagCheckerLabel", "CBT_hadronPID", "Evt sel: RCT flag checker label"};
98+
Configurable<bool> cfgEvtRCTFlagCheckerZDCCheck{"cfgEvtRCTFlagCheckerZDCCheck", false, "Evt sel: RCT flag checker ZDC check"};
99+
Configurable<bool> cfgEvtRCTFlagCheckerLimitAcceptAsBad{"cfgEvtRCTFlagCheckerLimitAcceptAsBad", true, "Evt sel: RCT flag checker treat Limited Acceptance As Bad"};
100+
} rctCut;
101+
RCTFlagsChecker rctChecker;
102+
91103
// Set Configurables here
92104
struct : ConfigurableGroup {
93105
Configurable<float> cfgPtMin{"cfgPtMin", 0.2f, "Minimum pT used for track seletion."};
@@ -165,7 +177,11 @@ struct JEPFlowAnalysis {
165177
float minQvecAmp = 1e-5;
166178
float minChg = 0.1;
167179
float q2Mag;
180+
181+
float activity;
182+
float qOvecM;
168183
float highestPt;
184+
float hPtPhi;
169185

170186
std::vector<TProfile3D*> shiftprofile{};
171187
std::string fullCCDBShiftCorrPath;
@@ -248,6 +264,9 @@ struct JEPFlowAnalysis {
248264
if (coll.trackOccupancyInTimeRange() > cfgMaxOccupancy || coll.trackOccupancyInTimeRange() < cfgMinOccupancy)
249265
return false;
250266

267+
if (rctCut.requireRCTFlagChecker && !rctChecker(coll))
268+
return false;
269+
251270
return true;
252271
}
253272

@@ -409,35 +428,15 @@ struct JEPFlowAnalysis {
409428
}
410429
}
411430

412-
float qOvecM;
413-
float activity;
414-
if (i == 0) { // second harmonic only
415-
qOvecM = calcFT0CRawQVecMag(coll, i + 2) / coll.qvecAmp()[detId];
416-
417-
epFlowHistograms.fill(HIST("hQoverM2M"), cent, coll.qvecAmp()[detId], qOvecM);
418-
epFlowHistograms.fill(HIST("hQoverM2Q2"), cent, q2Mag, qOvecM);
419-
420-
activity = calcFT0CLocalActivity(coll);
421-
}
422-
423-
if (cfgJetSubEvtSel & 1) {
424-
if (cfgJetSubEvlSelVar->at(0) > qOvecM) {
425-
return;
426-
}
427-
}
428-
if (cfgJetSubEvtSel & 2) {
429-
if (cfgJetSubEvlSelVar->at(1) > activity) {
430-
return;
431-
}
432-
}
433-
434431
highestPt = 0.0;
432+
hPtPhi = 0.0;
435433
for (const auto& track : tracks) {
436434
if (cfgTrkSelFlag && trackSel(track))
437435
continue;
438436

439437
if (highestPt < track.pt()) {
440438
highestPt = track.pt();
439+
hPtPhi = track.phi();
441440
}
442441

443442
if (cfgEffCor) {
@@ -464,6 +463,12 @@ struct JEPFlowAnalysis {
464463
if (i == 0) { // second harmonic only
465464
epFlowHistograms.fill(HIST("hQoverM"), cent, highestPt, qOvecM);
466465
epFlowHistograms.fill(HIST("hActivity"), cent, highestPt, activity);
466+
467+
epFlowHistograms.fill(HIST("hQoverM2M"), cent, coll.qvecAmp()[detId], qOvecM);
468+
epFlowHistograms.fill(HIST("hQoverM2Q2"), cent, q2Mag, qOvecM);
469+
470+
epFlowHistograms.fill(HIST("hQoverMdphi"), cent, RecoDecay::constrainAngle(hPtPhi - eps[0], -constants::math::PI), qOvecM);
471+
epFlowHistograms.fill(HIST("hActivitydphi"), cent, RecoDecay::constrainAngle(hPtPhi - eps[0], -constants::math::PI), activity);
467472
}
468473
}
469474
}
@@ -487,6 +492,8 @@ struct JEPFlowAnalysis {
487492
ccdb->setLocalObjectValidityChecking();
488493
ccdb->setCreatedNotAfter(std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now().time_since_epoch()).count());
489494

495+
rctChecker.init(rctCut.cfgEvtRCTFlagCheckerLabel, rctCut.cfgEvtRCTFlagCheckerZDCCheck, rctCut.cfgEvtRCTFlagCheckerLimitAcceptAsBad);
496+
490497
fv0geom = o2::fv0::Geometry::instance(o2::fv0::Geometry::eUninitialized);
491498

492499
detId = getdetId(cfgDetName);
@@ -522,10 +529,17 @@ struct JEPFlowAnalysis {
522529
epFlowHistograms.add("EpResRefARefB", "", {HistType::kTH3F, {axisMod, axisCent, axisEvtPl}});
523530

524531
epFlowHistograms.add("hQ2", "", {HistType::kTH3F, {axisMod, axisCent, axisQ2}});
532+
533+
epFlowHistograms.add("hQoverMCnt", "", {HistType::kTH2F, {axisCent, axisAmpR}});
534+
epFlowHistograms.add("hActivityCnt", "", {HistType::kTH2F, {axisCent, axisActR}});
535+
525536
epFlowHistograms.add("hQoverM", "", {HistType::kTH3F, {axisCent, axisPt, axisAmpR}});
537+
epFlowHistograms.add("hQoverMdphi", "", {HistType::kTH3F, {axisCent, axisEvtPl, axisAmpR}});
526538
epFlowHistograms.add("hQoverM2M", "", {HistType::kTH3F, {axisCent, axisAmp, axisAmpR}});
527539
epFlowHistograms.add("hQoverM2Q2", "", {HistType::kTH3F, {axisCent, axisQ2, axisAmpR}});
540+
528541
epFlowHistograms.add("hActivity", "", {HistType::kTH3F, {axisCent, axisPt, axisActR}});
542+
epFlowHistograms.add("hActivitydphi", "", {HistType::kTH3F, {axisCent, axisEvtPl, axisActR}});
529543

530544
epFlowHistograms.add("vncos", "", {HistType::kTHnSparseF, {axisMod, axisCent, axisPt, axisCos}});
531545
epFlowHistograms.add("vnsin", "", {HistType::kTHnSparseF, {axisMod, axisCent, axisPt, axisCos}});
@@ -639,6 +653,20 @@ struct JEPFlowAnalysis {
639653
if (coll.qvecAmp()[detId] < minQvecAmp || coll.qvecAmp()[refAId] < minQvecAmp || coll.qvecAmp()[refBId] < minQvecAmp)
640654
return;
641655

656+
qOvecM = calcFT0CRawQVecMag(coll, 2) / coll.qvecAmp()[detId]; // second order
657+
activity = calcFT0CLocalActivity(coll);
658+
659+
if (cfgJetSubEvtSel & 1) {
660+
if (cfgJetSubEvlSelVar->at(0) < qOvecM) {
661+
return;
662+
}
663+
}
664+
if (cfgJetSubEvtSel & 2) {
665+
if (cfgJetSubEvlSelVar->at(1) < activity) {
666+
return;
667+
}
668+
}
669+
642670
fillvn(coll, tracks);
643671
}
644672
PROCESS_SWITCH(JEPFlowAnalysis, processDefault, "default process", true);

0 commit comments

Comments
 (0)