Project
Loading...
Searching...
No Matches
TRDTrapSimulatorSpec.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_TRD_TRAPSIMULATORWORKFLOW_SRC_TRDTRAPSIMULATORSPEC_H_
13#define O2_TRD_TRAPSIMULATORWORKFLOW_SRC_TRDTRAPSIMULATORSPEC_H_
14
15#include <vector>
16#include <array>
17#include <string>
18
20#include "Framework/Task.h"
25
26namespace o2
27{
28namespace trd
29{
30
31class TrapConfig;
32
34{
35
36 public:
37 TRDDPLTrapSimulatorTask(bool useMC, int digitDownscaling = 1) : mUseMC(useMC), mDigitDownscaling(digitDownscaling) {}
38
39 void init(o2::framework::InitContext& ic) override;
40 void run(o2::framework::ProcessingContext& pc) override;
41
42
43 private:
44 TrapConfig* mTrapConfig{nullptr};
45 int mRunNumber{297595}; // run number to anchor simulation to.
46 int mDigitDownscaling{1}; // only digits of every mDigitDownscaling-th trigger will be kept
47 int mChargeScalingFactor{-1}; // can be overwritten to set custom charge scaling factor for tracklets
48 bool mUseFloatingPointForQ{false};
49 bool mEnableOnlineGainCorrection{false};
50 bool mUseMC{false}; // whether or not to use MC labels
51 bool mEnableTrapConfigDump{false};
52 bool mInitCcdbObjectsDone{false}; // flag whether one time download of CCDB objects has been done
53 int mNumThreads{-1}; // number of threads used for parallel processing
54 std::string mTrapConfigName; // the name of the config to be used.
55 std::string mOnlineGainTableName;
56 std::unique_ptr<Calibrations> mCalib; // store the calibrations connection to CCDB. Used primarily for the gaintables in line above.
57
58 void initTrapConfig(long timeStamp);
59 void setOnlineGainTables();
60 void processTRAPchips(int& nTracklets, std::vector<Tracklet64>& trackletsAccum, std::array<TrapSimulator, constants::NMCMHCMAX>& trapSimulators, std::vector<short>& digitCounts, std::vector<int>& digitIndices);
61};
62
63o2::framework::DataProcessorSpec getTRDTrapSimulatorSpec(bool useMC, int digitDownscaling);
64
65} // end namespace trd
66} // end namespace o2
67
68#endif //O2_TRD_TRAPSIMULATORWORKFLOW_SRC_TRDTRAPSIMULATORSPEC_H_
Global TRD definitions and constants.
void run(o2::framework::ProcessingContext &pc) override
void init(o2::framework::InitContext &ic) override
TRDDPLTrapSimulatorTask(bool useMC, int digitDownscaling=1)
o2::framework::DataProcessorSpec getTRDTrapSimulatorSpec(bool useMC, int digitDownscaling)
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...