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
13
14#ifndef O2_ITSMFT_DIGITREADER
15#define O2_ITSMFT_DIGITREADER
16
17#include "TFile.h"
18#include "TTree.h"
23#include "Framework/Task.h"
24#include "Headers/DataHeader.h"
29
30using namespace o2::framework;
31
32namespace o2
33{
34namespace itsmft
35{
36
37class DigitReader : public Task
38{
39 public:
40 DigitReader() = delete;
41 DigitReader(o2::detectors::DetID id, bool useMC, bool useCalib, bool triggerOut);
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
49 std::vector<o2::itsmft::Digit> mDigits, *mDigitsPtr = &mDigits;
50 std::vector<o2::itsmft::GBTCalibData> mCalib, *mCalibPtr = &mCalib;
51 std::vector<o2::itsmft::ROFRecord> mDigROFRec, *mDigROFRecPtr = &mDigROFRec;
52 std::vector<o2::itsmft::MC2ROFRecord> mDigMC2ROFs, *mDigMC2ROFsPtr = &mDigMC2ROFs;
55
56 std::unique_ptr<TFile> mFile;
57 std::unique_ptr<TTree> mTree;
58 bool mUseMC = true; // use MC truth
59 bool mUseCalib = true; // send calib data
60 bool mTriggerOut = true; // send dummy triggers vector
61 bool mUseIRFrames = false; // selected IRFrames modes
62 int mROFBiasInBC = 0;
64 int mNRUs = 0;
65 std::string mDetName = "";
66 std::string mDetNameLC = "";
67 std::string mFileName = "";
68 std::string mDigTreeName = "o2sim";
69 std::string mDigitBranchName = "Digit";
70 std::string mDigROFBranchName = "DigitROF";
71 std::string mCalibBranchName = "Calib";
72
73 std::string mDigtMCTruthBranchName = "DigitMCTruth";
74 std::string mDigtMC2ROFBranchName = "DigitMC2ROF";
75};
76
78{
79 public:
80 ITSDigitReader(bool useMC = true, bool useCalib = false, bool useTriggers = true)
81 : DigitReader(o2::detectors::DetID::ITS, useMC, useCalib, useTriggers)
82 {
84 }
85};
86
88{
89 public:
90 MFTDigitReader(bool useMC = true, bool useCalib = false, bool useTriggers = true)
91 : DigitReader(o2::detectors::DetID::MFT, useMC, useCalib, useTriggers)
92 {
94 }
95};
96
99framework::DataProcessorSpec getITSDigitReaderSpec(bool useMC = true, bool useCalib = false, bool useTriggers = true, std::string defname = "o2_itsdigits.root");
100framework::DataProcessorSpec getMFTDigitReaderSpec(bool useMC = true, bool useCalib = false, bool useTriggers = true, std::string defname = "o2_mftdigits.root");
101
102} // namespace itsmft
103} // namespace o2
104
105#endif /* O2_ITSMFT_DigitREADER */
A const (ready only) version of MCTruthContainer.
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.
A read-only version of MCTruthContainer allowing for storage optimisation.
Static class with identifiers, bitmasks and names for ALICE detectors.
Definition DetID.h:58
void connectTree(const std::string &filename)
void init(InitContext &ic) final
o2::header::DataOrigin mOrigin
std::vector< o2::itsmft::MC2ROFRecord > mDigMC2ROFs
std::vector< o2::itsmft::GBTCalibData > * mCalibPtr
~DigitReader() override=default
std::vector< o2::itsmft::GBTCalibData > mCalib
std::unique_ptr< TTree > mTree
std::vector< o2::itsmft::Digit > mDigits
std::string mDigtMC2ROFBranchName
void run(ProcessingContext &pc) final
std::vector< o2::itsmft::ROFRecord > mDigROFRec
std::vector< o2::itsmft::MC2ROFRecord > * mDigMC2ROFsPtr
std::vector< o2::itsmft::ROFRecord > * mDigROFRecPtr
o2::dataformats::ConstMCTruthContainer< o2::MCCompLabel > mConstLabels
std::unique_ptr< TFile > mFile
std::string mDigtMCTruthBranchName
std::vector< o2::itsmft::Digit > * mDigitsPtr
ITSDigitReader(bool useMC=true, bool useCalib=false, bool useTriggers=true)
MFTDigitReader(bool useMC=true, bool useCalib=false, bool useTriggers=true)
constexpr o2::header::DataOrigin gDataOriginMFT
Definition DataHeader.h:572
constexpr o2::header::DataOrigin gDataOriginInvalid
Definition DataHeader.h:561
constexpr o2::header::DataOrigin gDataOriginITS
Definition DataHeader.h:570
Defining PrimaryVertex explicitly as messageable.
Definition TFIDInfo.h:20
framework::DataProcessorSpec getITSDigitReaderSpec(bool useMC=true, bool useCalib=false, bool useTriggers=true, std::string defname="o2_itsdigits.root")
framework::DataProcessorSpec getMFTDigitReaderSpec(bool useMC=true, bool useCalib=false, bool useTriggers=true, std::string defname="o2_mftdigits.root")
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
std::string filename()