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+ // /
13+ // / \file Digitizer.h
14+ // / \brief Definition of the ALICE3 TOF digitizer
15+ // / \author Nicolò Jacazio, Università del Piemonte Orientale (IT)
16+ // / \since 2026-03-17
17+ // /
18+
19+ #ifndef ALICEO2_IOTOF_DIGITIZER_H
20+ #define ALICEO2_IOTOF_DIGITIZER_H
21+
22+ #include " ITSMFTSimulation/Hit.h"
23+ #include " DataFormatsITSMFT/Digit.h"
24+ #include " DataFormatsIOTOF/Digit.h"
25+ #include " DataFormatsITSMFT/ROFRecord.h"
26+ #include " CommonDataFormat/InteractionRecord.h"
27+ #include " SimulationDataFormat/MCCompLabel.h"
28+ #include " SimulationDataFormat/MCTruthContainer.h"
29+ #include " IOTOFBase/GeometryTGeo.h"
30+
31+ namespace o2 ::iotof
32+ {
33+
34+ class Digitizer
35+ {
36+ public:
37+ void setDigits (std::vector<o2::iotof::Digit>* dig) { mDigits = dig; }
38+ void setMCLabels (o2::dataformats::MCTruthContainer<o2::MCCompLabel>* mclb) { mMCLabels = mclb; }
39+ void setROFRecords (std::vector<o2::itsmft::ROFRecord>* rec) { mROFRecords = rec; }
40+
41+ void init ();
42+
43+ // / Steer conversion of hits to digits
44+ void process (const std::vector<o2::itsmft::Hit>* hits, int evID, int srcID);
45+
46+ // provide the common iotof::GeometryTGeo to access matrices and segmentation
47+ void setGeometry (const o2::iotof::GeometryTGeo* gm) { mGeometry = gm; }
48+
49+ private:
50+ void processHit (const o2::itsmft::Hit& hit, uint32_t & maxFr, int evID, int srcID);
51+
52+ const o2::iotof::GeometryTGeo* mGeometry = nullptr ; // /< IOTOF geometry
53+
54+ // std::vector<o2::iotof::ChipDigitsContainer> mChips; ///< Array of chips digits containers
55+
56+ std::vector<o2::iotof::Digit>* mDigits = nullptr ; // ! output digits
57+ std::vector<o2::itsmft::ROFRecord>* mROFRecords = nullptr ; // ! output ROF records
58+ o2::dataformats::MCTruthContainer<o2::MCCompLabel>* mMCLabels = nullptr ; // ! output labels
59+ };
60+ } // namespace o2::iotof
61+
62+ #endif
0 commit comments