14#include "TGeoGlobalMagField.h"
34#include <fmt/format.h>
38namespace strangeness_tracking
62 LOG(info) <<
"Initialized strangeness tracker...";
68 LOG(
debug) <<
"Running strangeness tracker...";
72 updateTimeDependentParams(pc);
92 static bool initOnceDone =
false;
116 LOG(info) <<
"cluster dictionary updated";
121 LOG(info) <<
"ITS GeomtetryTGeo loaded from ccdb";
125#ifdef ENABLE_UPGRADES
127 LOG(info) <<
"it3 cluster dictionary updated";
136 LOGF(info,
"Strangeness tracking total timing: Cpu: %.3e Real: %.3e s in %d slots",
137 mTimer.CpuTime(), mTimer.RealTime(), mTimer.Counter() - 1);
143 auto dataRequest = std::make_shared<DataRequest>();
144 dataRequest->requestITSClusters(useMC);
145 dataRequest->requestTracks(
src, useMC);
146 dataRequest->requestPrimaryVertices(useMC);
147 dataRequest->requestSecondaryVertices(useMC);
149 auto ggRequest = std::make_shared<o2::base::GRPGeomRequest>(
false,
158 ggRequest->addInput({
"itsTGeo",
"ITS",
"GEOMTGEO", 0, Lifetime::Condition,
framework::ccdbParamSpec(
"ITS/Config/Geometry")}, dataRequest->inputs);
160 std::vector<OutputSpec> outputs;
161 outputs.emplace_back(
"GLO",
"STRANGETRACKS", 0, Lifetime::Timeframe);
162 outputs.emplace_back(
"GLO",
"CLUSUPDATES", 0, Lifetime::Timeframe);
164 outputs.emplace_back(
"GLO",
"STRANGETRACKS_MC", 0, Lifetime::Timeframe);
165 LOG(info) <<
"Strangeness tracker will use MC";
169 "strangeness-tracker",
172 AlgorithmSpec{adaptFromTask<StrangenessTrackerSpec>(dataRequest, ggRequest, useMC)},
Definition of the Names Generator class.
Header of the General Run Parameters object.
Definition of the MagF class.
Definition of the ITS track.
Result of refitting TPC-ITS matched track.
void checkUpdates(o2::framework::ProcessingContext &pc)
static GRPGeomHelper & instance()
void setRequest(std::shared_ptr< GRPGeomRequest > req)
GPUd() value_type estimateLTFast(o2 static GPUd() float estimateLTIncrement(const o2 PropagatorImpl * Instance(bool uninitialized=false)
static const StrangenessTrackingParamConfig & Instance()
void snapshot(const Output &spec, T const &object)
DataAllocator & outputs()
The data allocator is used to allocate memory for the output data.
InputRecord & inputs()
The inputs associated with this processing context.
static GeometryTGeo * Instance()
void fillMatrixCache(int mask) override
static void adopt(GeometryTGeo *raw, bool canDelete=false)
StrangenessTrackerSpec(std::shared_ptr< DataRequest > dr, std::shared_ptr< o2::base::GRPGeomRequest > gr, bool isMC)
void finaliseCCDB(framework::ConcreteDataMatcher &matcher, void *obj) final
void init(framework::InitContext &ic) final
void run(framework::ProcessingContext &pc) final
void endOfStream(framework::EndOfStreamContext &ec) final
This is invoked whenever we have an EndOfStream event.
void setConfigParams(const StrangenessTrackingParamConfig *params)
std::vector< StrangeTrack > & getStrangeTrackVec(int iThread=0)
void setupThreads(int nThreads=1)
void setCorrType(const o2::base::PropagatorImpl< float >::MatCorrType &type)
std::vector< ClusAttachments > & getClusAttachments(int iThread=0)
void setClusterDictionaryITS(const o2::itsmft::TopologyDictionary *d)
void setMCTruthOn(bool v)
bool loadData(const o2::globaltracking::RecoContainer &recoData)
std::vector< o2::MCCompLabel > & getStrangeTrackLabels(int iThread=0)
Defining PrimaryVertex explicitly as messageable.
std::vector< ConfigParamSpec > ccdbParamSpec(std::string const &path, int runDependent, std::vector< CCDBMetadata > metadata={}, int qrate=0)
std::vector< ConfigParamSpec > Options
o2::framework::DataProcessorSpec getStrangenessTrackerSpec(o2::dataformats::GlobalTrackID::mask_t src, bool useMC, bool useGeom)
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
void collectData(o2::framework::ProcessingContext &pc, const DataRequest &request)
LOG(info)<< "Compressed in "<< sw.CpuTime()<< " s"