Skip to content

Commit

Permalink
ITS - Dead Map Workflow allows for saving single chips (#13898)
Browse files Browse the repository at this point in the history
  • Loading branch information
nicolovalle authored Jan 24, 2025
1 parent 0d3b460 commit d399bee
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ class ITSMFTDeadMapBuilder : public Task
bool mRunMFT = false;
bool mDoLocalOutput = false;
bool mSkipStaticMap = false;
bool mNoGroupITSLanes = false;
uint16_t N_CHIPS;
uint16_t N_CHIPS_ITSIB = o2::itsmft::ChipMappingITS::getNChips(0);
int mTFLength = 32; // TODO find utility for proper value -- o2::base::GRPGeomHelper::getNHBFPerTF() returns 128 see https://github.com/AliceO2Group/AliceO2/blob/051b56f9f136e7977e83f5d26d922db9bd6ecef5/Detectors/Base/src/GRPGeomHelper.cxx#L233 and correct also default option is getSpec
Expand Down
9 changes: 5 additions & 4 deletions Detectors/ITSMFT/common/workflow/src/DeadMapBuilderSpec.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ void ITSMFTDeadMapBuilder::init(InitContext& ic)

mLocalOutputDir = ic.options().get<std::string>("output-dir");
mSkipStaticMap = ic.options().get<bool>("skip-static-map");
mNoGroupITSLanes = ic.options().get<bool>("no-group-its-lanes");

isEnded = false;
mTimeStart = o2::ccdb::getCurrentTimestamp();
Expand Down Expand Up @@ -245,16 +246,15 @@ void ITSMFTDeadMapBuilder::run(ProcessingContext& pc)
}
}

// do AND operation before unmasking the full ITS lane

// Save status of single chips in static map before unmasking the full ITS lane
if (!mSkipStaticMap) {
for (size_t el = 0; el < mStaticChipStatus.size(); el++) {
mStaticChipStatus[el] = mStaticChipStatus[el] || ChipStatus[el];
}
}

// for ITS, declaring dead only chips belonging to lane with no hits
if (!mRunMFT) {
// for ITS, if requested: declaring dead only chips belonging to lanes with no alive chips
if (!mRunMFT && !mNoGroupITSLanes) {
for (uint16_t el = N_CHIPS_ITSIB; el < ChipStatus.size(); el++) {
if (ChipStatus.at(el)) {
std::vector<uint16_t> chipincable = getChipIDsOnSameCable(el);
Expand Down Expand Up @@ -441,6 +441,7 @@ DataProcessorSpec getITSMFTDeadMapBuilderSpec(std::string datasource, bool doMFT
{"tf-sampling-history-size", VariantType::Int, 1000, {"Do not check if new TF is contained in a window that is older than N steps."}},
{"tf-length", VariantType::Int, 32, {"Orbits per TF."}},
{"skip-static-map", VariantType::Bool, false, {"Do not fill static part of the map."}},
{"no-group-its-lanes", VariantType::Bool, false, {"Do not group ITS OB chips into lanes."}},
{"ccdb-url", VariantType::String, "", {"CCDB url. Ignored if endOfStream is processed."}},
{"outfile", VariantType::String, objectname_default, {"ROOT object file name."}},
{"local-output", VariantType::Bool, false, {"Save ROOT tree file locally."}},
Expand Down

0 comments on commit d399bee

Please sign in to comment.