Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
6 changes: 6 additions & 0 deletions PWGDQ/Core/HistogramsLibrary.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,9 @@
hm->AddHistogram(histClass, "VtxZ_MultFT0C", "VtxZ vs MultFT0C", false, 20, -10.0, 10.0, VarManager::kVtxZ, 200, 0, 25000.0, VarManager::kMultFT0C);
hm->AddHistogram(histClass, "VtxZ_MultFDDA", "VtxZ vs MultFDDA", false, 20, -10.0, 10.0, VarManager::kVtxZ, 200, 0, 25000.0, VarManager::kMultFDDA);
hm->AddHistogram(histClass, "VtxZ_MultFDDC", "VtxZ vs MultFDDC", false, 20, -10.0, 10.0, VarManager::kVtxZ, 200, 0, 25000.0, VarManager::kMultFDDC);
hm->AddHistogram(histClass, "MultNTracksPVetaHalf_MultMCNParticlesEta05", "MultNTracksPVetaHalf vs MultMCNParticlesEta05", false, 150, 0, 150.0, VarManager::kMultNTracksPVetaHalf, 150, 0, 150.0, VarManager::kMultMCNParticlesEta05);
hm->AddHistogram(histClass, "VtxNcontribReal_MultMCNParticlesEta08", "VtxNcontribReal vs MultMCNParticlesEta08", false, 150, 0, 150.0, VarManager::kVtxNcontribReal, 150, 0, 150.0, VarManager::kMultMCNParticlesEta08);
hm->AddHistogram(histClass, "MultNTracksPVeta1_MultMCNParticlesEta10", "MultNTracksPVeta1 vs MultMCNParticlesEta10", false, 150, 0, 150.0, VarManager::kMultNTracksPVeta1, 150, 0, 150.0, VarManager::kMultMCNParticlesEta10);

} else {
hm->AddHistogram(histClass, "MultTPC", "MultTPC", false, 200, 0.0, 50000.0, VarManager::kMultTPC);
Expand Down Expand Up @@ -223,6 +226,9 @@
hm->AddHistogram(histClass, "MCVtxX_VtxY", "Vtx X vs Vtx Y", false, 200, 15.0, 15.0, VarManager::kMCVtxZ, 200, -0.2, 0.2, VarManager::kMCVtxY);
hm->AddHistogram(histClass, "MCImpPar", "MC impact param", false, 20, 0.0, 20.0, VarManager::kMCEventImpParam);
hm->AddHistogram(histClass, "MCCentrFT0C", "MC Centrality FT0C", false, 100, 0.0, 100.0, VarManager::kMCEventCentrFT0C);
hm->AddHistogram(histClass, "MultMCNParticlesEta05", "MultMCNParticlesEta05", false, 150, 0.0, 150.0, VarManager::kMultMCNParticlesEta05);
hm->AddHistogram(histClass, "MultMCNParticlesEta08", "MultMCNParticlesEta08", false, 150, 0.0, 150.0, VarManager::kMultMCNParticlesEta08);
hm->AddHistogram(histClass, "MultMCNParticlesEta10", "MultMCNParticlesEta10", false, 150, 0.0, 150.0, VarManager::kMultMCNParticlesEta10);
}
if (subGroupStr.Contains("subgen")) {
hm->AddHistogram(histClass, "SubGenID", "SubGenerator ID", false, 11, -0.5, 10.5, VarManager::kMCEventSubGeneratorId);
Expand Down Expand Up @@ -2039,7 +2045,7 @@
LOG(fatal) << "histClass field should be an array of strings, e.g. [class1, class2]";
return false;
}
for (auto& v : hist->FindMember("histClass")->value.GetArray()) {

Check failure on line 2048 in PWGDQ/Core/HistogramsLibrary.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
if (!v.IsString()) {
LOG(fatal) << "histClass field should be an array of strings, e.g. [class1, class2]";
return false;
Expand Down Expand Up @@ -2195,7 +2201,7 @@
}
}
if (isTHn) {
for (auto& v : hist->FindMember("vars")->value.GetArray()) {

Check failure on line 2204 in PWGDQ/Core/HistogramsLibrary.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
if (VarManager::fgVarNamesMap.find(v.GetString()) == VarManager::fgVarNamesMap.end()) {
LOG(fatal) << "Bad variable in vars (" << v.GetString() << ") specified for histogram";
return false;
Expand Down Expand Up @@ -2258,7 +2264,7 @@

// create an array of strings to store the different histogram classes
std::vector<const char*> histClasses;
for (auto& v : hist.FindMember("histClass")->value.GetArray()) {

Check failure on line 2267 in PWGDQ/Core/HistogramsLibrary.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
histClasses.push_back(v.GetString());
}
const char* title = hist.FindMember("title")->value.GetString();
Expand All @@ -2269,7 +2275,7 @@

int* vars = new int[nDimensions];
int iDim = 0;
for (auto& v : hist.FindMember("vars")->value.GetArray()) {

Check failure on line 2278 in PWGDQ/Core/HistogramsLibrary.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
LOG(debug) << "iDim " << iDim << ": " << v.GetString();
vars[iDim++] = VarManager::fgVarNamesMap[v.GetString()];
}
Expand All @@ -2283,27 +2289,27 @@
xmin = new double[nDimensions];
xmax = new double[nDimensions];
int iDim = 0;
for (auto& v : hist.FindMember("nBins")->value.GetArray()) {

Check failure on line 2292 in PWGDQ/Core/HistogramsLibrary.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
nBins[iDim++] = v.GetInt();
LOG(debug) << "nBins " << iDim << ": " << nBins[iDim - 1];
}
iDim = 0;
for (auto& v : hist.FindMember("xmin")->value.GetArray()) {

Check failure on line 2297 in PWGDQ/Core/HistogramsLibrary.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
xmin[iDim++] = v.GetDouble();
LOG(debug) << "xmin " << iDim << ": " << xmin[iDim - 1];
}
iDim = 0;
for (auto& v : hist.FindMember("xmax")->value.GetArray()) {

Check failure on line 2302 in PWGDQ/Core/HistogramsLibrary.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
xmax[iDim++] = v.GetDouble();
LOG(debug) << "xmax " << iDim << ": " << xmax[iDim - 1];
}
} else {
int iDim = 0;
binLimits = new TArrayD[nDimensions];
for (auto& v : hist.FindMember("binLimits")->value.GetArray()) {

Check failure on line 2309 in PWGDQ/Core/HistogramsLibrary.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
double* lims = new double[v.GetArray().Size()];
int iElem = 0;
for (auto& lim : v.GetArray()) {

Check failure on line 2312 in PWGDQ/Core/HistogramsLibrary.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
lims[iElem++] = lim.GetDouble();
}
binLimits[iDim++] = TArrayD(v.GetArray().Size(), lims);
Expand All @@ -2314,7 +2320,7 @@
if (hist.HasMember("axLabels")) {
axLabels = new TString[hist.FindMember("axLabels")->value.GetArray().Size()];
int iDim = 0;
for (auto& v : hist.FindMember("axLabels")->value.GetArray()) {

Check failure on line 2323 in PWGDQ/Core/HistogramsLibrary.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
axLabels[iDim++] = v.GetString();
}
}
Expand Down
6 changes: 6 additions & 0 deletions PWGDQ/Core/VarManager.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -446,6 +446,9 @@ void VarManager::SetDefaultVarNames()
fgVariableNames[kMCEventWeight] = "MC event weight";
fgVariableNames[kMCEventImpParam] = "MC impact parameter";
fgVariableNames[kMCEventCentrFT0C] = "MC Centrality FT0C";
fgVariableNames[kMultMCNParticlesEta05] = "MC Multiplicity Central Barrel for |eta| < 0.5";
fgVariableNames[kMultMCNParticlesEta08] = "MC Multiplicity Central Barrel for |eta| < 0.8";
fgVariableNames[kMultMCNParticlesEta10] = "MC Multiplicity Central Barrel for |eta| < 1.0";
fgVariableUnits[kMCEventGeneratorId] = "";
fgVariableUnits[kMCEventSubGeneratorId] = "";
fgVariableUnits[kMCVtxX] = "cm";
Expand All @@ -455,6 +458,9 @@ void VarManager::SetDefaultVarNames()
fgVariableUnits[kMCEventWeight] = "";
fgVariableUnits[kMCEventImpParam] = "b";
fgVariableUnits[kMCEventCentrFT0C] = "%";
fgVariableUnits[kMultMCNParticlesEta05] = "Multiplicity_eta05";
fgVariableUnits[kMultMCNParticlesEta08] = "Multiplicity_eta08";
fgVariableUnits[kMultMCNParticlesEta10] = "Multiplicity_eta10";
fgVariableNames[kTwoEvPosZ1] = "vtx-z_{1}";
fgVariableUnits[kTwoEvPosZ1] = "cm";
fgVariableNames[kTwoEvPosZ2] = "vtx-z_{2}";
Expand Down
6 changes: 6 additions & 0 deletions PWGDQ/Core/VarManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -283,6 +283,9 @@ class VarManager : public TObject
kMCEventWeight,
kMCEventImpParam,
kMCEventCentrFT0C,
kMultMCNParticlesEta10,
kMultMCNParticlesEta08,
kMultMCNParticlesEta05,
kQ1ZNAX,
kQ1ZNAY,
kQ1ZNCX,
Expand Down Expand Up @@ -1989,6 +1992,9 @@ void VarManager::FillEvent(T const& event, float* values)
if constexpr ((fillMap & CollisionCent) > 0) {
// WARNING: temporary solution, ongoing work to provide proper MC gen. centrality
values[kMCEventCentrFT0C] = event.bestCollisionCentFT0C();
values[kMultMCNParticlesEta05] = event.multMCNParticlesEta05();
values[kMultMCNParticlesEta08] = event.multMCNParticlesEta08();
values[kMultMCNParticlesEta10] = event.multMCNParticlesEta10();
}
}

Expand Down
3 changes: 2 additions & 1 deletion PWGDQ/DataModel/ReducedInfoTables.h
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,8 @@ DECLARE_SOA_TABLE(ReducedEventsInfo, "AOD", "REDUCEVENTINFO", //! Main event i
DECLARE_SOA_TABLE(ReducedMCEvents, "AOD", "REDUCEDMCEVENT", //! Event level MC truth information
o2::soa::Index<>,
mccollision::GeneratorsID, reducedevent::MCPosX, reducedevent::MCPosY, reducedevent::MCPosZ,
mccollision::T, mccollision::Weight, mccollision::ImpactParameter);
mccollision::T, mccollision::Weight, mccollision::ImpactParameter,
mult::MultMCNParticlesEta05, mult::MultMCNParticlesEta08, mult::MultMCNParticlesEta10);

using ReducedEvent = ReducedEvents::iterator;
using StoredReducedEvent = StoredReducedEvents::iterator;
Expand Down
4 changes: 2 additions & 2 deletions PWGDQ/TableProducer/tableMakerMC.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -461,7 +461,7 @@ struct TableMakerMC {
// make an entry for this MC event only if it was not already added to the table
if (!(fEventLabels.find(mcCollision.globalIndex()) != fEventLabels.end())) {
eventMC(mcCollision.generatorsID(), mcCollision.posX(), mcCollision.posY(), mcCollision.posZ(),
mcCollision.t(), mcCollision.weight(), mcCollision.impactParameter());
mcCollision.t(), mcCollision.weight(), mcCollision.impactParameter(), 1, 1, 1);
fEventLabels[mcCollision.globalIndex()] = fCounters[1];
fCounters[1]++;
}
Expand Down Expand Up @@ -1096,7 +1096,7 @@ struct TableMakerMC {
// make an entry for this MC event only if it was not already added to the table
if (!(fEventLabels.find(mcCollision.globalIndex()) != fEventLabels.end())) {
eventMC(mcCollision.generatorsID(), mcCollision.posX(), mcCollision.posY(), mcCollision.posZ(),
mcCollision.t(), mcCollision.weight(), mcCollision.impactParameter());
mcCollision.t(), mcCollision.weight(), mcCollision.impactParameter(), 1, 1, 1);
fEventLabels[mcCollision.globalIndex()] = fCounters[1];
fCounters[1]++;
}
Expand Down
15 changes: 8 additions & 7 deletions PWGDQ/TableProducer/tableMakerMC_withAssoc.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ using MyEventsWithMultsAndRapidityGapFilter = soa::Join<aod::Collisions, aod::Ev
using MyEventsWithCent = soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Cs, aod::CentFT0As, aod::CentFT0Ms, aod::McCollisionLabels>;
using MyEventsWithCentAndMults = soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Cs, aod::CentFT0As, aod::CentFT0Ms, aod::Mults, aod::MultsExtra, aod::McCollisionLabels>;
using MFTTrackLabeled = soa::Join<o2::aod::MFTTracks, aod::McMFTTrackLabels>;
using MyEventsMcWithMults = soa::Join<aod::McCollisions, aod::McCollsExtra>;
using MyEventsMcWithMults = soa::Join<aod::McCollisions, aod::McCollsExtra, aod::MultMCExtras_001>;

// Declare bit maps containing information on the table joins content (used as argument in templated functions)
constexpr static uint32_t gkEventFillMap = VarManager::ObjTypes::BC | VarManager::ObjTypes::Collision;
Expand Down Expand Up @@ -469,7 +469,8 @@ struct TableMakerMC {
fHistMan->FillHistClass("Event_MCTruth", VarManager::fgValues);
// Create the skimmed table entry for this collision
eventMC(mcCollision.generatorsID(), mcCollision.posX(), mcCollision.posY(), mcCollision.posZ(),
mcCollision.t(), mcCollision.weight(), mcCollision.impactParameter());
mcCollision.t(), mcCollision.weight(), mcCollision.impactParameter(),
mcCollision.multMCNParticlesEta05(), mcCollision.multMCNParticlesEta08(), mcCollision.multMCNParticlesEta10());
}
}

Expand Down Expand Up @@ -563,7 +564,7 @@ struct TableMakerMC {
} // end loop over mc stack
}

template <uint32_t TEventFillMap, uint32_t TEventMcFillMap, typename TEvents>
template <uint32_t TEventFillMap, typename TEvents>
void skimCollisions(TEvents const& collisions, BCsWithTimestamps const& /*bcs*/)
{
// Skim reconstructed collisions which are selected by the user specified cuts
Expand Down Expand Up @@ -623,7 +624,7 @@ struct TableMakerMC {
VarManager::FillEvent<TEventFillMap>(collision); // extract event information and place it in the fValues array
if (collision.has_mcCollision()) {
auto mcCollision = collision.template mcCollision_as<MyEventsMcWithMults>();
VarManager::FillEvent<TEventMcFillMap>(mcCollision);
VarManager::FillEvent<gkEventMcFillMapWithCent>(mcCollision);
}
if (fDoDetailedQA) {
fHistMan->FillHistClass("Event_BeforeCuts", VarManager::fgValues);
Expand Down Expand Up @@ -1178,11 +1179,11 @@ struct TableMakerMC {
} // end skimMuons

template <uint32_t TEventFillMap, uint32_t TTrackFillMap, uint32_t TMuonFillMap, uint32_t TMFTFillMap, uint32_t TEventMcFillMap, typename TEvents, typename TTracks,
typename TMuons, typename TMFTTracks, typename TTrackAssoc, typename TFwdTrackAssoc, typename TMFTTrackAssoc, typename TMFTCov, typename TEventsMC>
typename TMuons, typename TMFTTracks, typename TTrackAssoc, typename TFwdTrackAssoc, typename TMFTTrackAssoc, typename TMFTCov, typename MyEventsMcWithMults>
void fullSkimming(TEvents const& collisions, BCsWithTimestamps const& bcs,
TTracks const& tracksBarrel, TMuons const& muons, TMFTTracks const& mftTracks,
TTrackAssoc const& trackAssocs, TFwdTrackAssoc const& fwdTrackAssocs, TMFTTrackAssoc const& mftAssocs,
TEventsMC const& mcCollisions, aod::McParticles const& mcParticles, TMFTCov const& mftCovs)
MyEventsMcWithMults const& mcCollisions, aod::McParticles const& mcParticles, TMFTCov const& mftCovs)
{
// Check whether the run changed and update CCDB if it did
if (bcs.size() > 0 && fCurrentRun != bcs.begin().runNumber()) {
Expand Down Expand Up @@ -1224,7 +1225,7 @@ struct TableMakerMC {
eventVtxCov.reserve(collisions.size());
eventMClabels.reserve(collisions.size());
eventInfo.reserve(collisions.size());
skimCollisions<TEventFillMap, TEventMcFillMap>(collisions, bcs);
skimCollisions<TEventFillMap>(collisions, bcs);
if (fCollIndexMap.size() == 0) {
return;
}
Expand Down
Loading