Skip to content

Commit 55ddf1f

Browse files
Merge branch 'AliceO2Group:master' into master
2 parents dc0c051 + 0af789a commit 55ddf1f

File tree

16 files changed

+1689
-359
lines changed

16 files changed

+1689
-359
lines changed

Common/TableProducer/multCentTable.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ struct MultCentTable {
7575
ccdb->setFatalWhenNull(false); // please never crash on your own, all exceptions captured (as they always should)
7676

7777
// task-specific
78-
module.init(opts, initContext);
78+
module.init(metadataInfo, opts, initContext);
7979
}
8080

8181
void processRun2(soa::Join<aod::Collisions, aod::Run2MatchedSparse> const& collisions,

Common/Tools/MultModule.h

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -413,8 +413,8 @@ class MultModule
413413
CalibrationInfo nGlobalInfo = CalibrationInfo("NGlobal");
414414
CalibrationInfo mftInfo = CalibrationInfo("MFT");
415415

416-
template <typename TConfigurables, typename TInitContext>
417-
void init(TConfigurables& opts, TInitContext& context)
416+
template <typename TMetadatainfo, typename TConfigurables, typename TInitContext>
417+
void init(TMetadatainfo const& metadataInfo, TConfigurables& opts, TInitContext& context)
418418
{
419419
// read in configurations from the task where it's used
420420
internalOpts = opts;
@@ -488,6 +488,11 @@ class MultModule
488488
listOfRequestors[kPVMults].Append(Form("%s ", "dependency check"));
489489
}
490490

491+
// capture the need for PYTHIA calibration in Pb-Pb runs
492+
if (metadataInfo.isMC() && mRunNumber >= 544013 && mRunNumber <= 545367) {
493+
internalOpts.generatorName.value = "PYTHIA";
494+
}
495+
491496
mRunNumber = 0;
492497
mRunNumberCentrality = 0;
493498
lCalibLoaded = false;

PWGCF/FemtoDream/Tasks/CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,11 @@ o2physics_add_dpl_workflow(femtodream-collision-masker
5959
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore
6060
COMPONENT_NAME Analysis)
6161

62+
o2physics_add_dpl_workflow(femtodream-pair-efficiency
63+
SOURCES femtoDreamPairEfficiency.cxx
64+
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore
65+
COMPONENT_NAME Analysis)
66+
6267
o2physics_add_dpl_workflow(femtodream-hash
6368
SOURCES femtoDreamHashTask.cxx
6469
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore

PWGCF/FemtoDream/Tasks/femtoDreamPairEfficiency.cxx

Lines changed: 623 additions & 0 deletions
Large diffs are not rendered by default.

PWGEM/Dilepton/Core/DimuonCut.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ class DimuonCut : public TNamed
194194
return track.nClusters() >= mMinNClustersMCHMID;
195195

196196
case DimuonCuts::kChi2:
197-
return track.chi2() / (2.f * (track.nClusters() + track.nClustersMFT()) - 5.f) < mMaxChi2;
197+
return (track.trackType() == static_cast<uint8_t>(o2::aod::fwdtrack::ForwardTrackTypeEnum::GlobalMuonTrack) ? track.chi2() / (2.f * (track.nClusters() + track.nClustersMFT()) - 5.f) : track.chi2()) < mMaxChi2;
198198

199199
case DimuonCuts::kMatchingChi2MCHMFT:
200200
return track.chi2MatchMCHMFT() < mMaxMatchingChi2MCHMFT;

PWGEM/Dilepton/TableProducer/skimmerPrimaryMuon.cxx

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ struct skimmerPrimaryMuon {
183183
if (maxDCAxy < dcaXY) {
184184
return false;
185185
}
186-
if (chi2_per_ndf < 0.f || maxChi2GL < chi2_per_ndf) {
186+
if (maxChi2GL < chi2_per_ndf) {
187187
return false;
188188
}
189189
if (rAtAbsorberEnd < minRabsGL || maxRabs < rAtAbsorberEnd) {
@@ -193,7 +193,7 @@ struct skimmerPrimaryMuon {
193193
if (eta < minEtaSA || maxEtaSA < eta) {
194194
return false;
195195
}
196-
if (chi2_per_ndf < 0.f || maxChi2SA < chi2_per_ndf) {
196+
if (maxChi2SA < chi2_per_ndf) {
197197
return false;
198198
}
199199
} else {
@@ -214,14 +214,17 @@ struct skimmerPrimaryMuon {
214214
return;
215215
}
216216

217-
o2::dataformats::GlobalFwdTrack propmuonAtPV = propagateMuon(fwdtrack, collision, propagationPoint::kToVertex);
218-
o2::dataformats::GlobalFwdTrack propmuonAtDCA = propagateMuon(fwdtrack, collision, propagationPoint::kToDCA);
217+
if (fwdtrack.chi2() < 0.f) { // this should never happen. only for protection.
218+
return;
219+
}
219220

221+
o2::dataformats::GlobalFwdTrack propmuonAtPV = propagateMuon(fwdtrack, collision, propagationPoint::kToVertex);
220222
float pt = propmuonAtPV.getPt();
221223
float eta = propmuonAtPV.getEta();
222224
float phi = propmuonAtPV.getPhi();
223225
o2::math_utils::bringTo02Pi(phi);
224226

227+
o2::dataformats::GlobalFwdTrack propmuonAtDCA = propagateMuon(fwdtrack, collision, propagationPoint::kToDCA);
225228
float cXXatDCA = propmuonAtDCA.getSigma2X();
226229
float cYYatDCA = propmuonAtDCA.getSigma2Y();
227230
float cXYatDCA = propmuonAtDCA.getSigmaXY();
@@ -255,24 +258,41 @@ struct skimmerPrimaryMuon {
255258
int ndf_mchmft = 1;
256259

257260
if (fwdtrack.trackType() == o2::aod::fwdtrack::ForwardTrackTypeEnum::GlobalMuonTrack) {
261+
// apply r-absorber cut here to minimize the number of calling propagateMuon.
262+
if (fwdtrack.rAtAbsorberEnd() < minRabsGL || maxRabs < fwdtrack.rAtAbsorberEnd()) {
263+
return;
264+
}
265+
266+
// apply dca cut here to minimize the number of calling propagateMuon.
267+
if (maxDCAxy < dcaXY) {
268+
return;
269+
}
270+
258271
const auto& mchtrack = fwdtrack.template matchMCHTrack_as<TFwdTracks>(); // MCH-MID
272+
const auto& mfttrack = fwdtrack.template matchMFTTrack_as<TMFTTracks>(); // MFTsa
273+
nClustersMFT = mfttrack.nClusters();
274+
mftClusterSizesAndTrackFlags = mfttrack.mftClusterSizesAndTrackFlags();
275+
ndf_mchmft = 2.f * (mchtrack.nClusters() + nClustersMFT) - 5.f;
276+
chi2mft = mfttrack.chi2();
277+
// chi2mft = mfttrack.chi2() / (2.f * nClustersMFT - 5.f);
278+
279+
// apply chi2/ndf cut here to minimize the number of calling propagateMuon.
280+
if (maxChi2GL < fwdtrack.chi2() / ndf_mchmft) {
281+
return;
282+
}
283+
259284
o2::dataformats::GlobalFwdTrack propmuonAtPV_Matched = propagateMuon(mchtrack, collision, propagationPoint::kToVertex);
260285
ptMatchedMCHMID = propmuonAtPV_Matched.getPt();
261286
etaMatchedMCHMID = propmuonAtPV_Matched.getEta();
262287
phiMatchedMCHMID = propmuonAtPV_Matched.getPhi();
263288
o2::math_utils::bringTo02Pi(phiMatchedMCHMID);
289+
264290
o2::dataformats::GlobalFwdTrack propmuonAtDCA_Matched = propagateMuon(mchtrack, collision, propagationPoint::kToDCA);
265291
float dcaX_Matched = propmuonAtDCA_Matched.getX() - collision.posX();
266292
float dcaY_Matched = propmuonAtDCA_Matched.getY() - collision.posY();
267293
float dcaXY_Matched = std::sqrt(dcaX_Matched * dcaX_Matched + dcaY_Matched * dcaY_Matched);
268294
pDCA = mchtrack.p() * dcaXY_Matched;
269295

270-
const auto& mfttrack = fwdtrack.template matchMFTTrack_as<TMFTTracks>();
271-
nClustersMFT = mfttrack.nClusters();
272-
mftClusterSizesAndTrackFlags = mfttrack.mftClusterSizesAndTrackFlags();
273-
chi2mft = mfttrack.chi2() / (2.f * nClustersMFT - 5.f);
274-
ndf_mchmft = 2.f * (mchtrack.nClusters() + nClustersMFT) - 5.f;
275-
276296
if (refitGlobalMuon) {
277297
eta = mfttrack.eta();
278298
phi = mfttrack.phi();

PWGEM/PhotonMeson/Tasks/dalitzEEQC.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ using namespace o2::framework::expressions;
4343
using namespace o2::soa;
4444
using namespace o2::aod::pwgem::dilepton::utils::emtrackutil;
4545

46-
using MyCollisions = soa::Join<aod::EMEvents, aod::EMEventsMult, aod::EMEventsCent, aod::EMEventsQvec>;
46+
using MyCollisions = soa::Join<aod::EMEvents, aod::EMEventsMult, aod::EMEventsCent>;
4747
using MyCollision = MyCollisions::iterator;
4848

4949
using MyTracks = soa::Join<aod::EMPrimaryElectronsFromDalitz, aod::EMPrimaryElectronEMEventIds>;

PWGEM/PhotonMeson/Tasks/dalitzEEQCMC.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ using namespace o2::soa;
4646
using namespace o2::aod::pwgem::photonmeson::utils::mcutil;
4747
using namespace o2::aod::pwgem::dilepton::utils::mcutil;
4848

49-
using MyCollisions = soa::Join<aod::EMEvents, aod::EMEventsMult, aod::EMEventsCent, aod::EMEventsQvec, aod::EMMCEventLabels>;
49+
using MyCollisions = soa::Join<aod::EMEvents, aod::EMEventsMult, aod::EMEventsCent, aod::EMMCEventLabels>;
5050
using MyCollision = MyCollisions::iterator;
5151

5252
using MyMCTracks = soa::Join<aod::EMPrimaryElectronsFromDalitz, aod::EMPrimaryElectronEMEventIds, aod::EMPrimaryElectronMCLabels>;

PWGLF/TableProducer/Common/epvector.cxx

Lines changed: 28 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -19,42 +19,46 @@
1919
///
2020

2121
// C++/ROOT includes.
22+
#include <TComplex.h>
2223
#include <TH1F.h>
24+
#include <TMath.h>
25+
2326
#include <chrono>
27+
#include <cstdio>
2428
#include <string>
2529
#include <vector>
26-
#include <TComplex.h>
27-
#include <TMath.h>
28-
#include <cstdio>
2930

3031
// o2Physics includes.
31-
#include "Framework/AnalysisDataModel.h"
32-
#include "Framework/AnalysisTask.h"
33-
#include "Framework/runDataProcessing.h"
34-
#include "Framework/HistogramRegistry.h"
35-
#include "Framework/StepTHn.h"
36-
#include "ReconstructionDataFormats/Track.h"
37-
#include "Common/DataModel/PIDResponse.h"
38-
#include "Common/DataModel/Multiplicity.h"
32+
#include "PWGLF/DataModel/EPCalibrationTables.h"
33+
34+
#include "Common/Core/TrackSelection.h"
35+
#include "Common/Core/trackUtilities.h"
3936
#include "Common/DataModel/Centrality.h"
40-
#include "Common/DataModel/TrackSelectionTables.h"
4137
#include "Common/DataModel/EventSelection.h"
42-
#include "Common/Core/trackUtilities.h"
43-
#include "CommonConstants/PhysicsConstants.h"
44-
#include "Common/Core/TrackSelection.h"
45-
#include "Framework/ASoAHelpers.h"
4638
#include "Common/DataModel/FT0Corrected.h"
39+
#include "Common/DataModel/Multiplicity.h"
40+
#include "Common/DataModel/PIDResponse.h"
41+
#include "Common/DataModel/TrackSelectionTables.h"
42+
43+
#include "CommonConstants/PhysicsConstants.h"
4744
#include "FT0Base/Geometry.h"
4845
#include "FV0Base/Geometry.h"
49-
#include "PWGLF/DataModel/EPCalibrationTables.h"
46+
#include "Framework/ASoAHelpers.h"
47+
#include "Framework/AnalysisDataModel.h"
48+
#include "Framework/AnalysisTask.h"
49+
#include "Framework/HistogramRegistry.h"
50+
#include "Framework/StepTHn.h"
51+
#include "Framework/runDataProcessing.h"
52+
#include "ReconstructionDataFormats/Track.h"
53+
5054
#include "TF1.h"
5155

5256
// #include "Common/Core/EventPlaneHelper.h"
5357
// #include "Common/DataModel/Qvectors.h"
5458

5559
// o2 includes.
56-
#include "CCDB/CcdbApi.h"
5760
#include "CCDB/BasicCCDBManager.h"
61+
#include "CCDB/CcdbApi.h"
5862
#include "DetectorsCommonDataFormats/AlignParam.h"
5963

6064
using namespace o2;
@@ -98,6 +102,11 @@ struct epvector {
98102
Configurable<bool> useRecentere{"useRecentere", true, "use Recentering"};
99103
Configurable<bool> useShift{"useShift", false, "use Shift"};
100104
Configurable<bool> useShift2{"useShift2", false, "use Shift for others"};
105+
Configurable<bool> useEventSelection{"useEventSelection", true, "Apply event selection centrality wise"};
106+
Configurable<bool> useTimeFrameCut{"useTimeFrameCut", true, "Reject Time Frame border events"};
107+
Configurable<bool> useITSFrameCut{"useITSFrameCut", true, "Reject ITS RO Frame border events"};
108+
Configurable<bool> usePileupCut{"usePileupCut", false, "Reject same bunch pileup"};
109+
Configurable<bool> useITSLayerCut{"useITSLayerCut", false, "Require good ITS layers"};
101110
Configurable<std::string> ConfGainPath{"ConfGainPath", "Users/s/skundu/My/Object/test100", "Path to gain calibration"};
102111
Configurable<std::string> ConfRecentere{"ConfRecentere", "Users/s/skundu/My/Object/Finaltest2/recenereall", "Path for recentere"};
103112
Configurable<std::string> ConfShift{"ConfShift", "Users/s/skundu/My/Object/Finaltest2/recenereall", "Path for Shift"};
@@ -300,7 +309,7 @@ struct epvector {
300309
auto qyTPCL = 0.0;
301310
auto qxTPCR = 0.0;
302311
auto qyTPCR = 0.0;
303-
if (coll.sel8() && centrality < cfgCutCentrality && TMath::Abs(vz) < cfgCutVertex && coll.has_foundFT0() && eventSelected(coll, centrality) && coll.selection_bit(aod::evsel::kNoTimeFrameBorder) && coll.selection_bit(aod::evsel::kNoITSROFrameBorder)) {
312+
if (coll.sel8() && centrality < cfgCutCentrality && TMath::Abs(vz) < cfgCutVertex && coll.has_foundFT0() && (!useEventSelection || eventSelected(coll, centrality)) && (!useTimeFrameCut || coll.selection_bit(aod::evsel::kNoTimeFrameBorder)) && (!useITSFrameCut || coll.selection_bit(aod::evsel::kNoITSROFrameBorder)) && (!usePileupCut || coll.selection_bit(aod::evsel::kNoSameBunchPileup)) && (!useITSLayerCut || coll.selection_bit(o2::aod::evsel::kIsGoodITSLayersAll))) {
304313
triggerevent = true;
305314
if (useGainCallib && (currentRunNumber != lastRunNumber)) {
306315
gainprofile = ccdb->getForTimeStamp<TProfile>(ConfGainPath.value, bc.timestamp());

PWGLF/TableProducer/Nuspex/ebyeMaker.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -853,7 +853,7 @@ struct EbyeMaker {
853853
if ((((mcPart.flags() & 0x8) || (mcPart.flags() & 0x2)) && (doprocessMcRun2 || doprocessMiniMcRun2)) || ((mcPart.flags() & 0x1) && !doprocessMiniMcRun2))
854854
continue;
855855
auto pdgCode = mcPart.pdgCode();
856-
if (std::abs(pdgCode) == PDG_t::kPiPlus || std::abs(pdgCode) == PDG_t::kElectron || std::abs(pdgCode) == PDG_t::kMuonMinus || std::abs(pdgCode) == PDG_t::kKPlus || std::abs(pdgCode) == PDG_t::kProton)
856+
if ((std::abs(pdgCode) == PDG_t::kPiPlus || std::abs(pdgCode) == PDG_t::kElectron || std::abs(pdgCode) == PDG_t::kMuonMinus || std::abs(pdgCode) == PDG_t::kKPlus || std::abs(pdgCode) == PDG_t::kProton) && mcPart.isPhysicalPrimary())
857857
nChPartGen++;
858858
if (std::abs(pdgCode) == PDG_t::kLambda0) {
859859
if (!mcPart.isPhysicalPrimary() && !mcPart.has_mothers())

0 commit comments

Comments
 (0)