Project
Loading...
Searching...
No Matches
DigitReaderSpec.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_TRK_DIGITREADER
13#define O2_TRK_DIGITREADER
14
15#include <vector>
16
17#include "TFile.h"
18#include "TTree.h"
24#include "Framework/Task.h"
25#include "Headers/DataHeader.h"
28#include "TRKBase/AlmiraParam.h"
29
30using namespace o2::framework;
31
32namespace o2
33{
34namespace trk
35{
36
37class DigitReader : public Task
38{
39 public:
40 DigitReader() = delete;
41 DigitReader(o2::detectors::DetID id, bool useMC, bool useCalib);
42 ~DigitReader() override = default;
43 void init(InitContext& ic) final;
44 void run(ProcessingContext& pc) final;
45
46 protected:
47 void connectTree(const std::string& filename);
48 template <typename Ptr>
49 void setBranchAddress(const std::string& base, Ptr& addr, int layer = -1);
50 std::string getBranchName(const std::string& base, int index) const;
51
53
54 std::vector<std::vector<o2::itsmft::Digit>*> mDigits{nullptr};
55 std::vector<o2::itsmft::GBTCalibData> mCalib, *mCalibPtr = &mCalib;
56 std::vector<std::vector<o2::itsmft::ROFRecord>*> mDigROFRec{nullptr};
57 std::vector<o2::dataformats::IOMCTruthContainerView*> mPLabels{nullptr};
58
60
61 std::unique_ptr<TFile> mFile;
62 std::unique_ptr<TTree> mTree;
63
64 bool mUseMC = true; // use MC truth
65 bool mUseCalib = true; // send calib data
66
67 std::string mDetName = "";
68 std::string mDetNameLC = "";
69 std::string mFileName = "";
70 std::string mDigTreeName = "o2sim";
71 std::string mDigitBranchName = "Digit";
72 std::string mDigROFBranchName = "DigitROF";
73 std::string mCalibBranchName = "Calib";
74
75 std::string mDigtMCTruthBranchName = "DigitMCTruth";
76};
77
79{
80 public:
81 TRKDigitReader(bool useMC = true, bool useCalib = false)
82 : DigitReader(o2::detectors::DetID::TRK, useMC, useCalib)
83 {
85 }
86};
87
90framework::DataProcessorSpec getTRKDigitReaderSpec(bool useMC = true, bool useCalib = false, std::string defname = "trkdigits.root");
91
92} // namespace trk
93} // namespace o2
94
95#endif /* O2_TRK_DigitREADER */
Definition of the ITSMFT digit.
Calibration data from GBT data.
A special IO container - splitting a given vector to enable ROOT IO.
Definition of the ITSMFT ROFrame (trigger) record.
Static class with identifiers, bitmasks and names for ALICE detectors.
Definition DetID.h:58
static constexpr int mLayers
void run(ProcessingContext &pc) final
std::unique_ptr< TTree > mTree
std::vector< std::vector< o2::itsmft::ROFRecord > * > mDigROFRec
std::vector< o2::dataformats::IOMCTruthContainerView * > mPLabels
std::string mDigtMCTruthBranchName
o2::header::DataOrigin mOrigin
void setBranchAddress(const std::string &base, Ptr &addr, int layer=-1)
std::string mDigitBranchName
std::vector< o2::itsmft::GBTCalibData > * mCalibPtr
std::vector< std::vector< o2::itsmft::Digit > * > mDigits
~DigitReader() override=default
std::string mCalibBranchName
std::unique_ptr< TFile > mFile
std::string getBranchName(const std::string &base, int index) const
void init(InitContext &ic) final
std::string mDigROFBranchName
std::vector< o2::itsmft::GBTCalibData > mCalib
void connectTree(const std::string &filename)
TRKDigitReader(bool useMC=true, bool useCalib=false)
GLuint index
Definition glcorearb.h:781
GLenum GLuint GLint GLint layer
Definition glcorearb.h:1310
constexpr o2::header::DataOrigin gDataOriginTRK
Definition DataHeader.h:584
constexpr o2::header::DataOrigin gDataOriginInvalid
Definition DataHeader.h:561
Defining ITS Vertex explicitly as messageable.
Definition Cartesian.h:288
framework::DataProcessorSpec getTRKDigitReaderSpec(bool useMC=true, bool useCalib=false, std::string defname="trkdigits.root")
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
std::string filename()
static constexpr size_t kNLayers
Definition AlmiraParam.h:28