46void customize(std::vector<ConfigParamSpec>& workflowOptions)
48 std::vector<o2::framework::ConfigParamSpec> options{
51 {
"display-clusters", VariantType::String,
"ITS,TPC,TRD,TOF", {
"comma-separated list of clusters to display"}},
52 {
"display-tracks", VariantType::String,
"TPC,ITS,ITS-TPC,TPC-TRD,ITS-TPC-TRD,TPC-TOF,ITS-TPC-TOF", {
"comma-separated list of tracks to display"}},
55 {
"configKeyValues", VariantType::String,
"", {
"Semicolon separated key=value strings ..."}}};
57 std::swap(workflowOptions, options);
66 mConfig->configGRP.solenoidBzNominalGPU = 0;
67 mConfParam.reset(
new GPUSettingsO2(mConfig->ReadConfigurableParam()));
73 mFastTransformHelper->setCorrMap(mFastTransform.get());
74 mFastTransformHelper->setCorrMapRef(mFastTransformRef.get());
75 mFastTransformHelper->setCorrMapMShape(mFastTransformMShape.get());
76 mConfig->configCalib.fastTransform = mFastTransformHelper->getCorrMap();
77 mConfig->configCalib.fastTransformRef = mFastTransformHelper->getCorrMapRef();
78 mConfig->configCalib.fastTransformMShape = mFastTransformHelper->getCorrMapMShape();
79 mConfig->configCalib.fastTransformHelper = mFastTransformHelper.get();
82 mConfig->configCalib.trdGeometry = mTrdGeo.get();
84 mITSDict = std::make_unique<o2::itsmft::TopologyDictionary>();
85 mConfig->configCalib.itsPatternDict = mITSDict.get();
87 mConfig->configProcessing.runMC = mUseMC;
90 mTFSettings->hasSimStartOrbit = 1;
92 mTFSettings->simStartOrbit = hbfu.getFirstIRofTF(
o2::InteractionRecord(0, hbfu.orbitFirstSampled)).orbit;
93 mAutoContinuousMaxTimeBin = mConfig->configGRP.grpContinuousMaxTimeBin < -1;
102 LOG(fatal) <<
"configKeyValue tpcTriggeredMode does not match GRP isDetContinuousReadOut(TPC) setting";
104 if (mDisplayShutDown) {
109 mTFSettings->hasTfStartOrbit = 1;
110 mTFSettings->hasNHBFPerTF = 1;
112 mTFSettings->hasRunStartOrbit = 0;
114 if (mGRPGeomUpdated) {
115 mGRPGeomUpdated =
false;
117 if (mAutoContinuousMaxTimeBin) {
120 mDisplay->UpdateGRP(&mConfig->configGRP);
121 if (mGeometryCreated == 0) {
123 gm->createPadPlaneArray();
124 gm->createClusterMatrixArray();
126 mConfig->configCalib.trdGeometry = mTrdGeo.get();
127 mGeometryCreated =
true;
135 mDisplay->UpdateCalib(&mConfig->configCalib);
138 if (mDisplayStarted ==
false) {
139 if (mDisplay->startDisplay()) {
140 throw std::runtime_error(
"Error starting event display");
142 mDisplayStarted =
true;
152 if (mDisplay->show(&ptrs)) {
153 mDisplay->endDisplay();
154 mDisplayShutDown =
true;
160 if (mDisplayShutDown) {
163 mDisplay->endDisplay();
164 mDisplayShutDown =
true;
175 mGRPGeomUpdated =
true;
189 if (!srcTrk.any() && !srcCl.any()) {
190 throw std::runtime_error(
"No input configured");
192 std::shared_ptr<DataRequest> dataRequest = std::make_shared<DataRequest>();
193 dataRequest->requestTracks(srcTrk, useMC);
194 dataRequest->requestClusters(srcCl, useMC);
196 if (cfgc.
options().
get<
bool>(
"read-from-files")) {
206 AlgorithmSpec{adaptFromTask<O2GPUDPLDisplaySpec>(useMC, srcTrk, srcCl, dataRequest, ggRequest)}});
Helper class to access correction maps.
Helper class to access load maps from CCDB.
Definition of the GeometryManager class.
Helper for geometry and GRP related CCDB requests.
Header of the General Run Parameters object.
Definition of the GeometryTGeo class.
Definition of the Names Generator class.
void customize(std::vector< ConfigParamSpec > &workflowOptions)
Helper class to obtain TPC clusters / digits / labels from DPL.
WorkflowSpec defineDataProcessing(ConfigContext const &configcontext)
void checkUpdates(o2::framework::ProcessingContext &pc)
bool finaliseCCDB(o2::framework::ConcreteDataMatcher &matcher, void *obj)
static GRPGeomHelper & instance()
void setRequest(std::shared_ptr< GRPGeomRequest > req)
static const HBFUtils & Instance()
static void updateFromString(std::string const &)
ConfigParamRegistry & options() const
T get(const char *key) const
ServiceRegistryRef services()
The services registry associated with this processing context.
static uint32_t getTpcMaxTimeBinFromNHbf(uint32_t nHbf)
static float getNominalGPUBz(T &src)
static std::shared_ptr< const tmpDataContainer > fillIOPtr(GPUTrackingInOutPointers &ioPtr, const o2::globaltracking::RecoContainer &recoCont, bool useMC, const GPUCalibObjectsConst *calib=nullptr, GID::mask_t maskCl=GID::MASK_ALL, GID::mask_t maskTrk=GID::MASK_ALL, GID::mask_t maskMatch=GID::MASK_ALL)
void run(o2::framework::ProcessingContext &pc) final
void finaliseCCDB(o2::framework::ConcreteDataMatcher &matcher, void *obj) final
void init(o2::framework::InitContext &ic) final
void endOfStream(o2::framework::EndOfStreamContext &ec) final
This is invoked whenever we have an EndOfStream event.
static GeometryTGeo * Instance()
void fillMatrixCache(int mask) override
static Geometry * instance()
Defining PrimaryVertex explicitly as messageable.
std::vector< DataProcessorSpec > WorkflowSpec
Global TPC definitions and constants.
void collectData(o2::framework::ProcessingContext &pc, const DataRequest &request)
const GPUSettingsTF * settingsTF
LOG(info)<< "Compressed in "<< sw.CpuTime()<< " s"