Skip to content

Commit

Permalink
Please consider the following formatting changes
Browse files Browse the repository at this point in the history
  • Loading branch information
alibuild committed Mar 11, 2024
1 parent 7fb01b7 commit 2f0ee7c
Show file tree
Hide file tree
Showing 2 changed files with 89 additions and 79 deletions.
109 changes: 59 additions & 50 deletions PWGUD/Core/SGSelector.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,64 +20,73 @@
#include "PWGUD/Core/UDHelpers.h"
#include "PWGUD/Core/SGCutParHolder.h"

template<typename BC>
template <typename BC>
struct SelectionResult {
int value; // The original integer return value
BC* bc; // Pointer to the BC object
BC* bc; // Pointer to the BC object
};

class SGSelector {
public:
SGSelector() : fPDG(TDatabasePDG::Instance()) {}
class SGSelector
{
public:
SGSelector() : fPDG(TDatabasePDG::Instance()) {}

template <typename CC, typename BCs, typename TCs, typename FWs>
int Print(SGCutParHolder diffCuts, CC& collision, BCs& bcRange, TCs& tracks, FWs& fwdtracks) {
LOGF(info, "Size of array %i", collision.size());
return 1;
}
template <typename CC, typename BCs, typename TCs, typename FWs>
int Print(SGCutParHolder diffCuts, CC& collision, BCs& bcRange, TCs& tracks, FWs& fwdtracks)
{
LOGF(info, "Size of array %i", collision.size());
return 1;
}

template <typename CC, typename BCs, typename BC>
SelectionResult<BC> IsSelected(SGCutParHolder diffCuts, CC& collision, BCs& bcRange, BC& oldbc) {
// LOGF(info, "Collision %f", collision.collisionTime());
// LOGF(info, "Number of close BCs: %i", bcRange.size());
SelectionResult<BC> result;
result.bc = &oldbc;
if (collision.numContrib() < diffCuts.minNTracks() || collision.numContrib() > diffCuts.maxNTracks()) {
result.value= 4;
return result;
}
auto newbc = oldbc;
bool gA = true, gC = true;
for (auto const& bc : bcRange) {
if (!udhelpers::cleanFITA(bc, diffCuts.maxFITtime(), diffCuts.FITAmpLimits())) {
if (gA) newbc = bc;
if (!gA && std::abs(static_cast<long long>(bc.globalBC() - oldbc.globalBC())) < std::abs(static_cast<long long>(newbc.globalBC()-oldbc.globalBC()))) newbc = bc;
gA = false;
}
if (!udhelpers::cleanFITC(bc, diffCuts.maxFITtime(), diffCuts.FITAmpLimits())) {
if (gC) newbc = bc;
if (!gC && std::abs(static_cast<long long>(bc.globalBC() - oldbc.globalBC())) < std::abs(static_cast<long long>(newbc.globalBC()-oldbc.globalBC()))) newbc = bc;
gC = false;
}
}
result.bc = &newbc;
if (!gA && !gC){
result.value = 3;
return result;
}
//LOGF(info, "Old BC: %i, New BC: %i",oldbc.globalBC(), newbc.globalBC());
result.value = gA && gC ? 2 : (gA ? 0 : 1);
return result;
}
template <typename TFwdTrack>
int FwdTrkSelector(TFwdTrack const& fwdtrack) {
if (fwdtrack.trackType() == 0 || fwdtrack.trackType() == 3) return 1;
else return 0;
template <typename CC, typename BCs, typename BC>
SelectionResult<BC> IsSelected(SGCutParHolder diffCuts, CC& collision, BCs& bcRange, BC& oldbc)
{
// LOGF(info, "Collision %f", collision.collisionTime());
// LOGF(info, "Number of close BCs: %i", bcRange.size());
SelectionResult<BC> result;
result.bc = &oldbc;
if (collision.numContrib() < diffCuts.minNTracks() || collision.numContrib() > diffCuts.maxNTracks()) {
result.value = 4;
return result;
}
auto newbc = oldbc;
bool gA = true, gC = true;
for (auto const& bc : bcRange) {
if (!udhelpers::cleanFITA(bc, diffCuts.maxFITtime(), diffCuts.FITAmpLimits())) {
if (gA)
newbc = bc;
if (!gA && std::abs(static_cast<long long>(bc.globalBC() - oldbc.globalBC())) < std::abs(static_cast<long long>(newbc.globalBC() - oldbc.globalBC())))
newbc = bc;
gA = false;
}
if (!udhelpers::cleanFITC(bc, diffCuts.maxFITtime(), diffCuts.FITAmpLimits())) {
if (gC)
newbc = bc;
if (!gC && std::abs(static_cast<long long>(bc.globalBC() - oldbc.globalBC())) < std::abs(static_cast<long long>(newbc.globalBC() - oldbc.globalBC())))
newbc = bc;
gC = false;
}
}
result.bc = &newbc;
if (!gA && !gC) {
result.value = 3;
return result;
}
// LOGF(info, "Old BC: %i, New BC: %i",oldbc.globalBC(), newbc.globalBC());
result.value = gA && gC ? 2 : (gA ? 0 : 1);
return result;
}
template <typename TFwdTrack>
int FwdTrkSelector(TFwdTrack const& fwdtrack)
{
if (fwdtrack.trackType() == 0 || fwdtrack.trackType() == 3)
return 1;
else
return 0;
}

private:
TDatabasePDG* fPDG;
private:
TDatabasePDG* fPDG;
};

#endif // PWGUD_CORE_SGSELECTOR_H_

59 changes: 30 additions & 29 deletions PWGUD/TableProducer/SGCandProducer.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ struct SGCandProducer {
SGCutParHolder sameCuts = SGCutParHolder(); // SGCutparHolder
Configurable<SGCutParHolder> SGCuts{"SGCuts", {}, "SG event cuts"};
Configurable<bool> saveAllTracks{"saveAllTracks", false, "save only PV contributors or all tracks associated to a collision"};
//Configurable<bool> rejectAtTFBoundary{"rejectAtTFBoundary", true, "reject collisions at a TF boundary"};
// SG selector
// Configurable<bool> rejectAtTFBoundary{"rejectAtTFBoundary", true, "reject collisions at a TF boundary"};
// SG selector
SGSelector sgSelector;

// data tables
Expand Down Expand Up @@ -148,10 +148,10 @@ struct SGCandProducer {
LOGF(debug, "<SGCandProducer> collision %d", collision.globalIndex());
registry.get<TH1>(HIST("reco/Stat"))->Fill(0., 1.);
// reject collisions at TF boundaries
//if (rejectAtTFBoundary && !collision.selection_bit(aod::evsel::kNoTimeFrameBorder)) {
// if (rejectAtTFBoundary && !collision.selection_bit(aod::evsel::kNoTimeFrameBorder)) {
// return;
//}
//registry.get<TH1>(HIST("reco/Stat"))->Fill(1., 1.);
// registry.get<TH1>(HIST("reco/Stat"))->Fill(1., 1.);
// nominal BC
if (!collision.has_foundBC()) {
return;
Expand All @@ -161,29 +161,29 @@ struct SGCandProducer {
auto newbc = bc;

// obtain slice of compatible BCs
auto bcRange = udhelpers::compatibleBCs(collision, sameCuts.NDtcoll(), bcs, sameCuts.minNBCs());
auto isSGEvent = sgSelector.IsSelected(sameCuts, collision, bcRange, bc);
//auto isSGEvent = sgSelector.IsSelected(sameCuts, collision, bcRange, tracks);
auto bcRange = udhelpers::compatibleBCs(collision, sameCuts.NDtcoll(), bcs, sameCuts.minNBCs());
auto isSGEvent = sgSelector.IsSelected(sameCuts, collision, bcRange, bc);
// auto isSGEvent = sgSelector.IsSelected(sameCuts, collision, bcRange, tracks);
int issgevent = isSGEvent.value;
if (isSGEvent.bc){
newbc = *(isSGEvent.bc);
}
else {
if (isSGEvent.bc) {
newbc = *(isSGEvent.bc);
} else {
LOGF(info, "No Newbc %i", bc.globalBC());
}
}
registry.get<TH1>(HIST("reco/Stat"))->Fill(issgevent + 3, 1.);
if (issgevent <= 2) {
// LOGF(info, "Current BC: %i, %i, %i", bc.globalBC(), newbc.globalBC(), issgevent);
if (sameCuts.minRgtrwTOF()){
if (udhelpers::rPVtrwTOF<true>(tracks, collision.numContrib()) < sameCuts.minRgtrwTOF()) return;
// LOGF(info, "Current BC: %i, %i, %i", bc.globalBC(), newbc.globalBC(), issgevent);
if (sameCuts.minRgtrwTOF()) {
if (udhelpers::rPVtrwTOF<true>(tracks, collision.numContrib()) < sameCuts.minRgtrwTOF())
return;
}
upchelpers::FITInfo fitInfo{};
udhelpers::getFITinfo(fitInfo, newbc.globalBC(), bcs, ft0s, fv0as, fdds);
// update SG candidates tables
outputCollisions(bc.globalBC(), bc.runNumber(),
collision.posX(), collision.posY(), collision.posZ(),
collision.numContrib(), udhelpers::netCharge<true>(tracks),
1.);//rtrwTOF); //omit the calculation to speed up the things while skimming
1.); // rtrwTOF); //omit the calculation to speed up the things while skimming
outputSGCollisions(issgevent);
outputCollisionsSels(fitInfo.ampFT0A, fitInfo.ampFT0C, fitInfo.timeFT0A, fitInfo.timeFT0C,
fitInfo.triggerMaskFT0,
Expand All @@ -195,24 +195,25 @@ struct SGCandProducer {
fitInfo.BBFDDApf, fitInfo.BBFDDCpf, fitInfo.BGFDDApf, fitInfo.BGFDDCpf);
outputCollsLabels(collision.globalIndex());
if (newbc.has_zdc()) {
auto zdc = newbc.zdc();
udZdcsReduced(outputCollisions.lastIndex(), zdc.timeZNA(), zdc.timeZNC(), zdc.energyCommonZNA(), zdc.energyCommonZNC());
}
else{
udZdcsReduced(outputCollisions.lastIndex(), -999, -999, -999, -999);
auto zdc = newbc.zdc();
udZdcsReduced(outputCollisions.lastIndex(), zdc.timeZNA(), zdc.timeZNC(), zdc.energyCommonZNA(), zdc.energyCommonZNC());
} else {
udZdcsReduced(outputCollisions.lastIndex(), -999, -999, -999, -999);
}
// update SGTracks tables
for (auto& track : tracks) {
if (track.isPVContributor() || saveAllTracks){
if( track.eta() > sameCuts.minEta() && track.eta() < sameCuts.maxEta()) updateUDTrackTables(outputCollisions.lastIndex(), track, bc.globalBC());
//if (track.isPVContributor()) updateUDTrackTables(outputCollisions.lastIndex(), track, bc.globalBC());
}
if (track.isPVContributor() || saveAllTracks) {
if (track.eta() > sameCuts.minEta() && track.eta() < sameCuts.maxEta())
updateUDTrackTables(outputCollisions.lastIndex(), track, bc.globalBC());
// if (track.isPVContributor()) updateUDTrackTables(outputCollisions.lastIndex(), track, bc.globalBC());
}
}
// update SGFwdTracks tables
if (sameCuts.withFwdTracks()){
for (auto& fwdtrack : fwdtracks) {
if (!sgSelector.FwdTrkSelector(fwdtrack)) updateUDFwdTrackTables(fwdtrack, bc.globalBC());
}
if (sameCuts.withFwdTracks()) {
for (auto& fwdtrack : fwdtracks) {
if (!sgSelector.FwdTrkSelector(fwdtrack))
updateUDFwdTrackTables(fwdtrack, bc.globalBC());
}
}
}
}
Expand Down

0 comments on commit 2f0ee7c

Please sign in to comment.