45void customize(std::vector<ConfigParamSpec>& workflowOptions)
47 std::vector<o2::framework::ConfigParamSpec> options{
50 {
"display-clusters", VariantType::String,
"ITS,TPC,TRD,TOF", {
"comma-separated list of clusters to display"}},
51 {
"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"}},
54 {
"configKeyValues", VariantType::String,
"", {
"Semicolon separated key=value strings ..."}}};
56 std::swap(workflowOptions, options);
65 mConfig->configGRP.solenoidBzNominalGPU = 0;
66 mConfParam.reset(
new GPUSettingsO2(mConfig->ReadConfigurableParam()));
70 mBufferFastTransform = std::move(
buffer);
71 mFastTransform = mBufferFastTransform.get();
72 mConfig->configCalib.fastTransform = mFastTransform;
75 mConfig->configCalib.trdGeometry = mTrdGeo.get();
77 mITSDict = std::make_unique<o2::itsmft::TopologyDictionary>();
78 mConfig->configCalib.itsPatternDict = mITSDict.get();
80 mConfig->configProcessing.runMC = mUseMC;
83 mTFSettings->hasSimStartOrbit = 1;
85 mTFSettings->simStartOrbit = hbfu.getFirstIRofTF(
o2::InteractionRecord(0, hbfu.orbitFirstSampled)).orbit;
86 mAutoContinuousMaxTimeBin = mConfig->configGRP.grpContinuousMaxTimeBin < -1;
95 LOG(fatal) <<
"configKeyValue tpcTriggeredMode does not match GRP isDetContinuousReadOut(TPC) setting";
97 if (mDisplayShutDown) {
102 mTFSettings->hasTfStartOrbit = 1;
103 mTFSettings->hasNHBFPerTF = 1;
105 mTFSettings->hasRunStartOrbit = 0;
107 if (mGRPGeomUpdated) {
108 mGRPGeomUpdated =
false;
110 if (mAutoContinuousMaxTimeBin) {
113 mDisplay->UpdateGRP(&mConfig->configGRP);
114 if (mGeometryCreated == 0) {
116 gm->createPadPlaneArray();
117 gm->createClusterMatrixArray();
119 mConfig->configCalib.trdGeometry = mTrdGeo.get();
120 mGeometryCreated =
true;
128 mDisplay->UpdateCalib(&mConfig->configCalib);
131 if (mDisplayStarted ==
false) {
132 if (mDisplay->startDisplay()) {
133 throw std::runtime_error(
"Error starting event display");
135 mDisplayStarted =
true;
145 if (mDisplay->show(&ptrs)) {
146 mDisplay->endDisplay();
147 mDisplayShutDown =
true;
153 if (mDisplayShutDown) {
156 mDisplay->endDisplay();
157 mDisplayShutDown =
true;
168 mGRPGeomUpdated =
true;
182 if (!srcTrk.any() && !srcCl.any()) {
183 throw std::runtime_error(
"No input configured");
185 std::shared_ptr<DataRequest> dataRequest = std::make_shared<DataRequest>();
186 dataRequest->requestTracks(srcTrk, useMC);
187 dataRequest->requestClusters(srcCl, useMC);
189 if (cfgc.
options().
get<
bool>(
"read-from-files")) {
199 AlgorithmSpec{adaptFromTask<O2GPUDPLDisplaySpec>(useMC, srcTrk, srcCl, dataRequest, ggRequest)}});
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 ITS Vertex explicitly as messageable.
std::vector< DataProcessorSpec > WorkflowSpec
Global TPC definitions and constants.
void collectData(o2::framework::ProcessingContext &pc, const DataRequest &request)
const GPUSettingsTF * settingsTF
static void addITSConfigOption(std::vector< o2::framework::ConfigParamSpec > &opts)
LOG(info)<< "Compressed in "<< sw.CpuTime()<< " s"