Project
Loading...
Searching...
No Matches
EntropyEncoderSpec.h
Go to the documentation of this file.
1// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3// All rights not expressly granted are reserved.
4//
5// This software is distributed under the terms of the GNU General Public
6// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7//
8// In applying this license CERN does not waive the privileges and immunities
9// granted to it by virtue of its status as an Intergovernmental Organization
10// or submit itself to any jurisdiction.
11
12#ifndef O2_TPC_ENTROPYENCODERSPEC_H
13#define O2_TPC_ENTROPYENCODERSPEC_H
18
20#include "Framework/Task.h"
22#include <TStopwatch.h>
23#include <memory>
24
25namespace o2
26{
27
28namespace gpu
29{
30struct GPUO2InterfaceConfiguration;
31class TPCFastTransform;
32struct GPUSettingsO2;
33struct GPUParam;
34} // end namespace gpu
35
36namespace base
37{
38class GRPGeomRequest;
39} // end namespace base
40
41namespace tpc
42{
43class VDriftHelper;
44
46{
47 public:
48 EntropyEncoderSpec(bool fromFile, bool selIR = false, std::shared_ptr<o2::base::GRPGeomRequest> pgg = std::shared_ptr<o2::base::GRPGeomRequest>());
51 void init(o2::framework::InitContext& ic) final;
53 void finaliseCCDB(o2::framework::ConcreteDataMatcher& matcher, void* obj) final;
54
55 private:
56 o2::tpc::CTFCoder mCTFCoder;
57 std::unique_ptr<o2::gpu::GPUO2InterfaceConfiguration> mConfig;
58 std::unique_ptr<o2::gpu::GPUSettingsO2> mConfParam;
59 std::unique_ptr<o2::gpu::TPCFastTransform> mFastTransform;
60 std::unique_ptr<o2::gpu::GPUParam> mParam;
61 std::unique_ptr<o2::tpc::VDriftHelper> mTPCVDriftHelper;
62 std::shared_ptr<o2::base::GRPGeomRequest> mGRPRequest;
63 bool mAutoContinuousMaxTimeBin = false;
64
65 bool mFromFile = false;
66 bool mSelIR = false;
67 unsigned int mNThreads = 1;
68 float mMaxZ = 25.f, mMaxEta = 1.5f;
69 float mEtaFactor = 0.f;
70 TStopwatch mTimer;
71};
72
74framework::DataProcessorSpec getEntropyEncoderSpec(bool inputFromFile, bool selIR = false);
75
76} // end namespace tpc
77} // end namespace o2
78
79#endif // O2_TPC_ENTROPYENCODERSPEC_H
class for entropy encoding/decoding of TPC compressed clusters data
void init(o2::framework::InitContext &ic) final
void endOfStream(o2::framework::EndOfStreamContext &ec) final
This is invoked whenever we have an EndOfStream event.
void finaliseCCDB(o2::framework::ConcreteDataMatcher &matcher, void *obj) final
void run(o2::framework::ProcessingContext &pc) final
framework::DataProcessorSpec getEntropyEncoderSpec(bool inputFromFile, bool selIR=false)
create a processor spec
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...