diff --git a/Detectors/ITSMFT/common/workflow/include/ITSMFTWorkflow/DeadMapBuilderSpec.h b/Detectors/ITSMFT/common/workflow/include/ITSMFTWorkflow/DeadMapBuilderSpec.h index 7bce60d172222..2a15c332ecde1 100644 --- a/Detectors/ITSMFT/common/workflow/include/ITSMFTWorkflow/DeadMapBuilderSpec.h +++ b/Detectors/ITSMFT/common/workflow/include/ITSMFTWorkflow/DeadMapBuilderSpec.h @@ -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 diff --git a/Detectors/ITSMFT/common/workflow/src/DeadMapBuilderSpec.cxx b/Detectors/ITSMFT/common/workflow/src/DeadMapBuilderSpec.cxx index c97c3440afcc3..8f249136c54c0 100644 --- a/Detectors/ITSMFT/common/workflow/src/DeadMapBuilderSpec.cxx +++ b/Detectors/ITSMFT/common/workflow/src/DeadMapBuilderSpec.cxx @@ -63,6 +63,7 @@ void ITSMFTDeadMapBuilder::init(InitContext& ic) mLocalOutputDir = ic.options().get("output-dir"); mSkipStaticMap = ic.options().get("skip-static-map"); + mNoGroupITSLanes = ic.options().get("no-group-its-lanes"); isEnded = false; mTimeStart = o2::ccdb::getCurrentTimestamp(); @@ -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 chipincable = getChipIDsOnSameCable(el); @@ -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."}},