Skip to content

Commit afc6b39

Browse files
authored
Merge branch 'AliceO2Group:dev' into new-detector4
2 parents c19814f + e9a4718 commit afc6b39

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+285
-633
lines changed

CCDB/include/CCDB/CcdbApi.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -348,6 +348,11 @@ class CcdbApi //: public DatabaseInterface
348348
TObject* retrieveFromTFile(std::string const& path, std::map<std::string, std::string> const& metadata, long timestamp,
349349
std::map<std::string, std::string>* headers, std::string const& etag,
350350
const std::string& createdNotAfter, const std::string& createdNotBefore) const;
351+
void loadFileToMemory(std::vector<char>& dest, std::string const& path,
352+
std::map<std::string, std::string> const& metadata, long timestamp,
353+
std::map<std::string, std::string>* headers, std::string const& etag,
354+
const std::string& createdNotAfter, const std::string& createdNotBefore, bool considerSnapshot = true) const;
355+
351356
#if !defined(__CINT__) && !defined(__MAKECINT__) && !defined(__ROOTCLING__) && !defined(__CLING__)
352357
typedef struct RequestContext {
353358
o2::pmr::vector<char>& dest;

CCDB/src/CcdbApi.cxx

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1870,6 +1870,21 @@ void CcdbApi::saveSnapshot(RequestContext& requestContext) const
18701870
}
18711871
}
18721872

1873+
void CcdbApi::loadFileToMemory(std::vector<char>& dest, std::string const& path,
1874+
std::map<std::string, std::string> const& metadata, long timestamp,
1875+
std::map<std::string, std::string>* headers, std::string const& etag,
1876+
const std::string& createdNotAfter, const std::string& createdNotBefore, bool considerSnapshot) const
1877+
{
1878+
o2::pmr::vector<char> destP;
1879+
destP.reserve(dest.size());
1880+
loadFileToMemory(destP, path, metadata, timestamp, headers, etag, createdNotAfter, createdNotBefore, considerSnapshot);
1881+
dest.clear();
1882+
dest.reserve(destP.size());
1883+
for (const auto c : destP) {
1884+
dest.push_back(c);
1885+
}
1886+
}
1887+
18731888
void CcdbApi::loadFileToMemory(o2::pmr::vector<char>& dest, std::string const& path,
18741889
std::map<std::string, std::string> const& metadata, long timestamp,
18751890
std::map<std::string, std::string>* headers, std::string const& etag,

Common/Topologies/o2prototype_topology.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ The following parameters need adjustment when extending the FLP-EPN configuratio
7474
</decltask>
7575

7676
<decltask id="tracker">
77-
<exe reachable="true">$ALICEO2_INSTALL_DIR/bin/aliceHLTWrapper Tracker_%collectionIndex%_%taskIndex% 1 --dds --poll-period 100 --input type=pull,size=5000,method=connect,property=EPNReceiverOutputAddress,count=1 --output type=push,size=500,method=bind,property=TrackingOutputAddress,min-port=48000 --library libAliHLTTPC.so --component TPCCATracker --run 167808 --parameter '-GlobalTracking -allowGPU -GPUHelperThreads 4 -loglevel=0x7c'</exe>
77+
<exe reachable="true">$ALICEO2_INSTALL_DIR/bin/aliceHLTWrapper Tracker_%collectionIndex%_%taskIndex% 1 --dds --poll-period 100 --input type=pull,size=5000,method=connect,property=EPNReceiverOutputAddress,count=1 --output type=push,size=500,method=bind,property=TrackingOutputAddress,min-port=48000 --library libAliHLTTPC.so --component TPCCATracker --run 167808 --parameter '-GlobalTracking -allowGPU -loglevel=0x7c'</exe>
7878
<!-- <requirement></requirement> -->
7979
<properties>
8080
<id access="read">EPNReceiverOutputAddress</id>

Detectors/MUON/MCH/Align/src/AlignmentSpec.cxx

Lines changed: 44 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -208,11 +208,21 @@ class AlignmentTask
208208

209209
auto doEvaluation = ic.options().get<bool>("do-evaluation");
210210
mAlign.SetDoEvaluation(doEvaluation);
211+
211212
// Variation range for parameters
212-
mAlign.SetAllowedVariation(0, 2.0);
213-
mAlign.SetAllowedVariation(1, 0.3);
214-
mAlign.SetAllowedVariation(2, 0.002);
215-
mAlign.SetAllowedVariation(3, 2.0);
213+
auto AllowX = ic.options().get<float>("variation-x");
214+
auto AllowY = ic.options().get<float>("variation-y");
215+
auto AllowPhi = ic.options().get<float>("variation-phi");
216+
auto AllowZ = ic.options().get<float>("variation-z");
217+
mAlign.SetAllowedVariation(0, AllowX);
218+
mAlign.SetAllowedVariation(1, AllowY);
219+
mAlign.SetAllowedVariation(2, AllowPhi);
220+
mAlign.SetAllowedVariation(3, AllowZ);
221+
222+
// Sigma XY
223+
auto SigmaX = ic.options().get<float>("sigma-x");
224+
auto SigmaY = ic.options().get<float>("sigma-y");
225+
mAlign.SetSigmaXY(SigmaX, SigmaY);
216226

217227
// Configuration for track fitter
218228
const auto& trackerParam = TrackerParam::Instance();
@@ -223,14 +233,28 @@ class AlignmentTask
223233
mImproveCutChi2 = 2. * trackerParam.sigmaCutForImprovement * trackerParam.sigmaCutForImprovement;
224234

225235
// Fix chambers
226-
auto input_fixchambers = ic.options().get<string>("fix-chamber");
227-
std::stringstream string_chambers(input_fixchambers);
228-
string_chambers >> std::ws;
229-
while (string_chambers.good()) {
230-
string substr;
231-
std::getline(string_chambers, substr, ',');
232-
LOG(info) << Form("%s%d", "Fixing chamber: ", std::stoi(substr));
233-
mAlign.FixChamber(std::stoi(substr));
236+
TString chambersString = ic.options().get<string>("fix-chamber");
237+
std::unique_ptr<TObjArray> objArray(chambersString.Tokenize(","));
238+
if (objArray->GetEntries() > 0) {
239+
for (int iVar = 0; iVar < objArray->GetEntries(); ++iVar) {
240+
LOG(info) << Form("%s%d", "Fixing chamber: ", std::stoi(objArray->At(iVar)->GetName()));
241+
mAlign.FixChamber(std::stoi(objArray->At(iVar)->GetName()));
242+
}
243+
}
244+
245+
// Fix DEs
246+
TString DEString = ic.options().get<string>("fix-de");
247+
TString MaskDEString = ic.options().get<string>("mask-fix-de");
248+
std::unique_ptr<TObjArray> objArrayDE(DEString.Tokenize(","));
249+
std::unique_ptr<TObjArray> objArrayMask(MaskDEString.Tokenize(","));
250+
if (objArrayDE->GetEntries() > 0) {
251+
if (objArrayDE->GetEntries() != objArrayMask->GetEntries()) {
252+
LOG(fatal) << "Inconsistent size of DEs and Masks!";
253+
}
254+
for (int iVar = 0; iVar < objArrayDE->GetEntries(); ++iVar) {
255+
LOG(info) << Form("%s%d%s%d", "Fixing DE: ", std::stoi(objArrayDE->At(iVar)->GetName()), " with mask: ", std::stoi(objArrayMask->At(iVar)->GetName()));
256+
mAlign.FixDetElem(std::stoi(objArrayDE->At(iVar)->GetName()), std::stoi(objArrayMask->At(iVar)->GetName()));
257+
}
234258
}
235259

236260
doMatched = ic.options().get<bool>("matched");
@@ -902,6 +926,14 @@ o2::framework::DataProcessorSpec getAlignmentSpec(bool disableCCDB)
902926
{"matched", VariantType::Bool, false, {"Switch for using MCH-MID matched tracks"}},
903927
{"fix-chamber", VariantType::String, "", {"Chamber fixing, ex 1,2,3"}},
904928
{"use-record", VariantType::Bool, false, {"Option for directly using record in alignment if provided"}},
929+
{"variation-x", VariantType::Float, 2.0, {"Allowed variation for x axis in cm"}},
930+
{"variation-y", VariantType::Float, 0.3, {"Allowed variation for y axis in cm"}},
931+
{"variation-phi", VariantType::Float, 0.002, {"Allowed variation for phi axis in rad"}},
932+
{"variation-z", VariantType::Float, 2.0, {"Allowed variation for z axis in cm"}},
933+
{"sigma-x", VariantType::Float, 1000.0, {"Sigma cut along X"}},
934+
{"sigma-y", VariantType::Float, 1000.0, {"Sigma cut along Y"}},
935+
{"fix-de", VariantType::String, "", {"DE fixing, ex 101,1019"}},
936+
{"mask-fix-de", VariantType::String, "", {"Mask for DE d.o.f fixing, ex 0,2,4"}},
905937
{"output", VariantType::String, "Alignment", {"Option for name of output file"}}}};
906938
}
907939

Detectors/TPC/base/include/TPCBase/CDBTypes.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ const std::unordered_map<CDBType, const std::string> CDBTypeMap{
110110
//
111111
{CDBType::ConfigFEEPad, "TPC/Config/FEEPad"},
112112
{CDBType::ConfigFEE, "TPC/Config/FEE"},
113-
{CDBType::ConfigRunInfo, "TPC/Config/RunInfo"},
113+
{CDBType::ConfigRunInfo, "TPC/Config/RunInfoV2"},
114114
//
115115
{CDBType::ParDetector, "TPC/Parameter/Detector"},
116116
{CDBType::ParElectronics, "TPC/Parameter/Electronics"},

Detectors/TPC/base/include/TPCBase/DeadChannelMapCreator.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,11 @@ class DeadChannelMapCreator
5858
void load(long timeStampOrRun);
5959
void loadFEEConfigViaRunInfoTS(long timeStamp);
6060
void loadFEEConfigViaRunInfo(long timeStampOrRun);
61-
void loadFEEConfig(long tag, long createdNotAfter = -1);
61+
void loadFEEConfig(long timeStamp = -1);
6262
void loadIDCPadFlags(long timeStampOrRun);
6363

6464
void setDeadChannelMapIDCPadStatus(const CalDetFlag_t& padStatusMap, PadFlags mask = PadFlags::flagAllNoneGood);
65+
void setDeadChannelMapFEEConfig(const FEEConfig& feeConfig) { mDeadChannelMapFEE = feeConfig.getDeadChannelMap(); }
6566

6667
const CalDet<bool>& getDeadChannelMapIDC() const { return mDeadChannelMapIDC; }
6768
const CalDet<bool>& getDeadChannelMapFEE() const { return mDeadChannelMapFEE; }

Detectors/TPC/base/include/TPCBase/FEEConfig.h

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -48,16 +48,19 @@ struct CRUConfig {
4848
struct FEEConfig {
4949
/// Tag definitions for TPC/Config/FEE
5050
enum class Tags : uint8_t {
51-
Unspecified = 0, ///< Unspecified
52-
TestWithZS = 1, ///< Test configuration with ZS
53-
Pedestals = 2, ///< Configuration for Pedestal data taking
54-
Pulser = 3, ///< Configuration for Pulser data taking
55-
Laser = 4, ///< Configuration for Laser data taking
56-
Cosmics = 5, ///< Configuration for Cosmics data taking
57-
Physics35sigma = 6, ///< Physics configuration with 3.5 sigma thresholds
58-
Physics30sigma = 7, ///< Physics configuration with 3.0 sigma thresholds
59-
Physics25sigma = 8, ///< Physics configuration with 2.5 sigma thresholds
60-
Laser10ADCoff = 9, ///< Configuration for Laser data taking with 10ADC offset for special studies
51+
Unspecified = 0, ///< Unspecified
52+
TestWithZS = 1, ///< Test configuration with ZS
53+
Pedestals = 2, ///< Configuration for Pedestal data taking
54+
Pulser = 3, ///< Configuration for Pulser data taking
55+
Laser = 4, ///< Configuration for Laser data taking
56+
Cosmics = 5, ///< Configuration for Cosmics data taking
57+
Physics35sigma = 6, ///< Physics configuration with 3.5 sigma thresholds
58+
Physics30sigma = 7, ///< Physics configuration with 3.0 sigma thresholds
59+
Physics25sigma = 8, ///< Physics configuration with 2.5 sigma thresholds
60+
Laser10ADCoff = 9, ///< Configuration for Laser data taking with 10ADC offset for special studies
61+
TestNoFilters = 10, ///< Test configuration without filters
62+
Physics2025sigma = 11, ///< Physics configuration with 2.0/2.5 sigma thresholds (IROC/OROC)
63+
Physics30sigmaPbPb = 12, ///< Physics configuration with 3.0 sigma thresholds for PbPb (using differnet CMC settings wrt. pp config 7)
6164
};
6265

6366
enum class PadConfig {

Detectors/TPC/base/src/CDBInterface.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -556,7 +556,7 @@ void CDBInterface::createFEEConfig()
556556

557557
if (!mUseDefaults) {
558558
LOGP(info, "trying to load default FEEConfig");
559-
mDeadChannelMapCreator.loadFEEConfig(7, 1680525888290); // load oldest physics configuration
559+
mDeadChannelMapCreator.loadFEEConfig(1680525888290); // load oldest physics configuration
560560
if (mFEEConfig) {
561561
return;
562562
}

Detectors/TPC/base/src/DeadChannelMapCreator.cxx

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,7 @@ void DeadChannelMapCreator::loadFEEConfigViaRunInfoTS(long timeStamp)
4343
if (mObjectValidity[CDBType::ConfigRunInfo].isValid(timeStamp)) {
4444
return;
4545
}
46-
const auto meta = mCCDBApi.retrieveHeaders(CDBTypeMap.at(CDBType::ConfigRunInfo), {}, timeStamp);
47-
mObjectValidity[CDBType::ConfigRunInfo].startvalidity = std::stol(meta.at("Valid-From"));
48-
mObjectValidity[CDBType::ConfigRunInfo].endvalidity = std::stol(meta.at("Valid-Until"));
49-
const long tag = std::stol(meta.at("Tag"));
50-
LOGP(info, "Loading FEE config for time stamp {}, via RunInfo with Tag {}, RunType {}, runNumber {}, validity: {} - {}",
51-
timeStamp, tag, meta.at("RunType"), meta.at("runNumber"), meta.at("Valid-From"), meta.at("Valid-Until"));
52-
loadFEEConfig(tag, timeStamp);
46+
loadFEEConfig(timeStamp);
5347
}
5448

5549
//______________________________________________________________________________
@@ -59,13 +53,16 @@ void DeadChannelMapCreator::loadFEEConfigViaRunInfo(long timeStampOrRun)
5953
}
6054

6155
//______________________________________________________________________________
62-
void DeadChannelMapCreator::loadFEEConfig(long tag, long createdNotAfter)
56+
void DeadChannelMapCreator::loadFEEConfig(long timeStamp)
6357
{
64-
std::map<std::string, std::string> mm, meta;
65-
const std::string createdNotAfterS = (createdNotAfter < 0) ? "" : std::to_string(createdNotAfter);
66-
mFEEConfig.reset(mCCDBApi.retrieveFromTFileAny<o2::tpc::FEEConfig>(CDBTypeMap.at(CDBType::ConfigFEE), mm, tag, &meta, "", createdNotAfterS));
58+
std::map<std::string, std::string> meta;
59+
mFEEConfig.reset(mCCDBApi.retrieveFromTFileAny<o2::tpc::FEEConfig>(CDBTypeMap.at(CDBType::ConfigRunInfo), {}, timeStamp, &meta));
60+
std::string redirect = "not found";
61+
if (meta.find("Redirect") != meta.end()) {
62+
redirect = meta.at("Redirect");
63+
}
6764
if (!mFEEConfig) {
68-
LOGP(error, "Could not load {}/{}, createdNotAfter: {}", CDBTypeMap.at(CDBType::ConfigFEE), tag, createdNotAfterS);
65+
LOGP(error, "Could not load {} redirected from {} with Redirect={}, createdNotAfter: {}", CDBTypeMap.at(CDBType::ConfigFEE), CDBTypeMap.at(CDBType::ConfigRunInfo), redirect, timeStamp);
6966
return;
7067
}
7168
LOGP(info, "Using FEE config for Tag {}, ETag {}, Last-Modified {}", meta.at("Valid-From"), meta.at("ETag"), meta.at("Last-Modified"));

Detectors/TPC/base/src/FEEConfig.cxx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,9 @@ const std::unordered_map<FEEConfig::Tags, const std::string> FEEConfig::TagNames
5757
{Tags::Physics30sigma, "Physics30sigma"},
5858
{Tags::Physics25sigma, "Physics25sigma"},
5959
{Tags::Laser10ADCoff, "Laser10ADCoff"},
60+
{Tags::TestNoFilters, "TestNoFilter"},
61+
{Tags::Physics2025sigma, "Physics2025sigma"},
62+
{Tags::Physics30sigmaPbPb, "Physics30sigmaPbPb"},
6063
};
6164

6265
const std::unordered_map<FEEConfig::PadConfig, const std::string> FEEConfig::PadConfigNames{

0 commit comments

Comments
 (0)