Project
Loading...
Searching...
No Matches
Digits2Raw.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
15
16#ifndef ALICEO2_ZDC_DIGITS2RAW_H_
17#define ALICEO2_ZDC_DIGITS2RAW_H_
18#include <string>
19#include <bitset>
20#include <Rtypes.h>
22#include "Framework/Logger.h"
32
33namespace o2
34{
35namespace zdc
36{
38{
39 public:
40 Digits2Raw() = default;
41 void emptyBunches(std::bitset<3564>& bunchPattern);
42 void processDigits(const std::string& outDir, const std::string& fileDigitsName);
43 void setModuleConfig(const ModuleConfig* moduleConfig) { mModuleConfig = moduleConfig; };
44 const ModuleConfig* getModuleConfig() { return mModuleConfig; };
45 void setSimCondition(const SimCondition* SimCondition) { mSimCondition = SimCondition; };
46 const SimCondition* getSimCondition() { return mSimCondition; };
47
48 o2::raw::RawFileWriter& getWriter() { return mWriter; }
49
50 void setFileFor(const std::string v) { mFileFor = v; }
51 std::string getFileFor() const { return mFileFor; }
52
53 void setVerbosity(int v)
54 {
55 mVerbosity = v;
56 mWriter.setVerbosity(v);
57 }
58 int getVerbosity() const { return mVerbosity; }
59
60 // void setContinuous(bool v = true) { mIsContinuous = v; }
61 bool isContinuous() const { return mIsContinuous; }
62
64 {
65 mEnablePadding = v;
66 }
67 bool getEnablePadding() const { return mEnablePadding; }
68
69 static void print_gbt_word(const uint32_t* word, const ModuleConfig* moduleConfig = nullptr);
70
71 private:
72 void setTriggerMask();
73 void updatePedestalReference(int bc);
74 void resetSums(uint32_t orbit);
75 void resetOutputStructure(uint16_t bc, uint32_t orbit, bool is_dummy);
76 void assignTriggerBits(int ibc, uint16_t bc, uint32_t orbit, bool is_dummy);
77 void insertLastBunch(int ibc, uint32_t orbit);
78 void convertDigits(int ibc);
79 void writeDigits();
80 std::vector<o2::zdc::BCData> mzdcBCData, *mzdcBCDataPtr = &mzdcBCData;
81 std::vector<o2::zdc::ChannelData> mzdcChData, *mzdcChDataPtr = &mzdcChData;
82 std::vector<o2::zdc::OrbitData> mzdcPedData, *mzdcPedDataPtr = &mzdcPedData;
83 int mNbc = 0;
84 BCData mBCD;
85 EventData mZDC;
86 bool mIsContinuous = true;
87 bool mOutputPerLink = false;
88 int mEnablePadding = 0;
89 const ModuleConfig* mModuleConfig = nullptr;
90 const SimCondition* mSimCondition = nullptr;
91 uint16_t mScalers[NModules][NChPerModule] = {0};
92 uint32_t mLatestOrbit = 0;
93 uint32_t mTriggerMask = 0;
94 std::string mPrintTriggerMask = "";
95 int32_t mNEmpty = -1;
96 std::array<uint16_t, o2::constants::lhc::LHCMaxBunches> mEmpty = {0};
97 uint32_t mLastNEmpty = 0;
98 double mSumPed[NModules][NChPerModule] = {0};
99 uint16_t mPed[NModules][NChPerModule] = {0};
100 std::string mFileFor = "all";
101 std::string mFLP = "alio2-cr1-flp181";
102 o2::raw::RawFileWriter mWriter{"ZDC"};
103 uint32_t mLinkID = 0;
104 uint16_t mCruID = 0;
105 uint16_t mFLPID = 0;
106 uint32_t mEndPointID = 0;
107
108 int mVerbosity = 0;
109
111 ClassDefNV(Digits2Raw, 1);
112};
113} // namespace zdc
114} // namespace o2
115
116#endif
Class to describe fired triggered and/or stored channels for the BC and to refer to channel data.
uint64_t orbit
Definition RawEventData.h:6
uint64_t bc
Definition RawEventData.h:5
Class to describe pedestal data accumulated over the orbit.
Definition of the RAW Data Header.
Utility class to write detectors data to (multiple) raw data file(s) respecting CRU format.
Container class to store NTimeBinsPerBC ADC values of single ZDC channel.
Container of ZDC raw data.
const SimCondition * getSimCondition()
Definition Digits2Raw.h:46
bool getEnablePadding() const
Definition Digits2Raw.h:67
void setModuleConfig(const ModuleConfig *moduleConfig)
Definition Digits2Raw.h:43
void processDigits(const std::string &outDir, const std::string &fileDigitsName)
Prepare list of clean empty bunches for baseline evaluation.
o2::raw::RawFileWriter & getWriter()
Definition Digits2Raw.h:48
int getVerbosity() const
Definition Digits2Raw.h:58
std::string getFileFor() const
Definition Digits2Raw.h:51
void setEnablePadding(bool v)
Definition Digits2Raw.h:63
void setFileFor(const std::string v)
Definition Digits2Raw.h:50
bool isContinuous() const
Definition Digits2Raw.h:61
void setSimCondition(const SimCondition *SimCondition)
Definition Digits2Raw.h:45
const ModuleConfig * getModuleConfig()
Definition Digits2Raw.h:44
void emptyBunches(std::bitset< 3564 > &bunchPattern)
static void print_gbt_word(const uint32_t *word, const ModuleConfig *moduleConfig=nullptr)
void setVerbosity(int v)
Definition Digits2Raw.h:53
const GLdouble * v
Definition glcorearb.h:832
struct o2::upgrades_utils::@463 zdc
structure to keep FT0 information
constexpr int NModules
Definition Constants.h:68
constexpr int NChPerModule
Definition Constants.h:69
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...