Skip to content

Commit c614dd1

Browse files
wiechulasawenzel
authored andcommitted
Separate updated functions for CRU and ROC
1 parent 045ed11 commit c614dd1

6 files changed

Lines changed: 59 additions & 24 deletions

File tree

Detectors/TPC/calibration/include/TPCCalibration/CalibPedestal.h

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
#include "TPCBase/Defs.h"
2323
#include "TPCBase/CalDet.h"
24+
#include "TPCBase/CRU.h"
2425
#include "TPCCalibration/CalibRawBase.h"
2526

2627
namespace o2
@@ -50,8 +51,12 @@ class CalibPedestal : public CalibRawBase
5051
/// Update function called once per digit
5152
///
5253
/// \param sector
53-
Int_t Update(const Int_t sector, const Int_t row, const Int_t pad,
54-
const Int_t timeBin, const Float_t signal) final;
54+
Int_t UpdateROC(const Int_t sector, const Int_t row, const Int_t pad,
55+
const Int_t timeBin, const Float_t signal) final;
56+
57+
/// not used
58+
Int_t UpdateCRU(const CRU& cru, const Int_t row, const Int_t pad,
59+
const Int_t timeBin, const Float_t signal) final { return 0;}
5560

5661
/// Analyse the buffered adc values and calculate noise and pedestal
5762
void analyse();
@@ -69,6 +74,8 @@ class CalibPedestal : public CalibRawBase
6974
/// Dump the relevant data to file
7075
void dumpToFile(TString filename) final;
7176

77+
/// Dummy end event
78+
virtual void EndEvent() final {};
7279

7380
//private:
7481
Int_t mADCMin; ///< minimum adc value

Detectors/TPC/calibration/include/TPCCalibration/CalibRawBase.h

Lines changed: 31 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,23 @@ class CalibRawBase
5656

5757
/// Update function called once per digit
5858
///
59-
/// \param sector
60-
virtual Int_t Update(const Int_t roc, const Int_t row, const Int_t pad,
61-
const Int_t timeBin, const Float_t signal) = 0;
59+
/// \param roc readout chamber
60+
/// \param row row in roc
61+
/// \param pad pad in row
62+
/// \param timeBin time bin
63+
/// \param signal ADC signal
64+
virtual Int_t UpdateROC(const Int_t roc, const Int_t row, const Int_t pad,
65+
const Int_t timeBin, const Float_t signal) = 0;
66+
67+
/// Update function called once per digit
68+
///
69+
/// \param cru CRU
70+
/// \param row row in CRU
71+
/// \param pad pad in row
72+
/// \param timeBin time bin
73+
/// \param signal ADC signal
74+
virtual Int_t UpdateCRU(const CRU& cru, const Int_t row, const Int_t pad,
75+
const Int_t timeBin, const Float_t signal) = 0;
6276

6377
/// add GBT frame container to process
6478
void addGBTFrameContainer(GBTFrameContainer *cont) { mGBTFrameContainers.push_back(std::unique_ptr<GBTFrameContainer>(cont)); }
@@ -86,6 +100,9 @@ class CalibRawBase
86100
/// Dump the relevant data to file
87101
virtual void dumpToFile(TString filename) {}
88102

103+
/// number of processed events
104+
size_t getNumberOfProcessedEvents() const { return mNevents; }
105+
89106
protected:
90107
const Mapper& mMapper; //!< TPC mapper
91108

@@ -97,7 +114,7 @@ class CalibRawBase
97114
std::vector<std::unique_ptr<RawReader>> mRawReaders; //! raw reader pointer
98115

99116
virtual void ResetEvent() = 0;
100-
virtual void EndEvent() {++mNevents; }
117+
virtual void EndEvent() = 0;
101118

102119
/// Process one event with mTimeBinsPerCall length using GBTFrameContainers
103120
ProcessStatus ProcessEventGBT();
@@ -144,7 +161,7 @@ inline CalibRawBase::ProcessStatus CalibRawBase::ProcessEventGBT()
144161
if (reader->getData(digits)) {
145162
for (auto& digi : digits) {
146163
CRU cru(digi.getCRU());
147-
const int sector = cru.sector().getSector();
164+
const int roc = cru.roc();
148165
// TODO: OROC case needs subtraction of number of pad rows in IROC
149166
const PadRegionInfo& regionInfo = mMapper.getPadRegionInfo(cru.region());
150167
const PartitionInfo& partInfo = mMapper.getPartitionInfo(cru.partition());
@@ -174,9 +191,10 @@ inline CalibRawBase::ProcessStatus CalibRawBase::ProcessEventGBT()
174191
// modify row depending on the calibration type used
175192
const int timeBin= i; //digi.getTimeStamp();
176193
const float signal = digi.getChargeFloat();
177-
//const FECInfo& fecInfo = mTPCmapper.getFECInfo(PadSecPos(sector, row, pad));
178-
//printf("Call update: %d, %d, %d, %d (%d), %.3f -- reg: %02d -- FEC: %02d, Chip: %02d, Chn: %02d\n", sector, row, pad, timeBin, i, signal, cru.region(), fecInfo.getIndex(), fecInfo.getSampaChip(), fecInfo.getSampaChannel());
179-
Update(sector, row+rowOffset, pad, timeBin, signal );
194+
//const FECInfo& fecInfo = mTPCmapper.getFECInfo(PadSecPos(roc, row, pad));
195+
//printf("Call update: %d, %d, %d, %d (%d), %.3f -- reg: %02d -- FEC: %02d, Chip: %02d, Chn: %02d\n", roc, row, pad, timeBin, i, signal, cru.region(), fecInfo.getIndex(), fecInfo.getSampaChip(), fecInfo.getSampaChannel());
196+
UpdateCRU(cru, row, pad, timeBin, signal );
197+
UpdateROC(roc, row+rowOffset, pad, timeBin, signal );
180198
}
181199
++readTimeBins;
182200
}
@@ -225,7 +243,7 @@ inline CalibRawBase::ProcessStatus CalibRawBase::ProcessEventRawReader()
225243
if (!data) continue;
226244

227245
CRU cru(reader->getRegion());
228-
const int sector = cru.sector().getSector();
246+
const int roc = cru.roc();
229247
// TODO: OROC case needs subtraction of number of pad rows in IROC
230248
const PadRegionInfo& regionInfo = mMapper.getPadRegionInfo(cru.region());
231249
const PartitionInfo& partInfo = mMapper.getPartitionInfo(cru.partition());
@@ -257,9 +275,10 @@ inline CalibRawBase::ProcessStatus CalibRawBase::ProcessEventRawReader()
257275

258276
// modify row depending on the calibration type used
259277
const float signal = float(signalI);
260-
//const FECInfo& fecInfo = mTPCmapper.getFECInfo(PadSecPos(sector, row, pad));
261-
//printf("Call update: %d, %d, %d, %d (%d), %.3f -- reg: %02d -- FEC: %02d, Chip: %02d, Chn: %02d\n", sector, row, pad, timeBin, i, signal, cru.region(), fecInfo.getIndex(), fecInfo.getSampaChip(), fecInfo.getSampaChannel());
262-
Update(sector, row+rowOffset, pad, timeBin, signal );
278+
//const FECInfo& fecInfo = mTPCmapper.getFECInfo(PadSecPos(roc, row, pad));
279+
//printf("Call update: %d, %d, %d, %d (%d), %.3f -- reg: %02d -- FEC: %02d, Chip: %02d, Chn: %02d\n", roc, row, pad, timeBin, i, signal, cru.region(), fecInfo.getIndex(), fecInfo.getSampaChip(), fecInfo.getSampaChannel());
280+
UpdateCRU(cru, row, pad, timeBin, signal );
281+
UpdateROC(roc, row+rowOffset, pad, timeBin, signal );
263282
++timeBin;
264283
hasData=true;
265284
}

Detectors/TPC/calibration/src/CalibPedestal.cxx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ CalibPedestal::CalibPedestal(PadSubset padSubset)
3535
}
3636

3737
//______________________________________________________________________________
38-
Int_t CalibPedestal::Update(const Int_t roc, const Int_t row, const Int_t pad,
39-
const Int_t timeBin, const Float_t signal)
38+
Int_t CalibPedestal::UpdateROC(const Int_t roc, const Int_t row, const Int_t pad,
39+
const Int_t timeBin, const Float_t signal)
4040
{
4141
Int_t adcValue = Int_t(signal);
4242
if (adcValue<mADCMin || adcValue>mADCMax) return 0;

Detectors/TPC/calibration/src/CalibRawBase.cxx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ void CalibRawBase::setupContainers(TString fileInfo)
3535
auto arrDataInfo = data.Tokenize(":");
3636
if (arrDataInfo->GetEntriesFast() == 1) {
3737
TString& rorcTypeTmp = static_cast<TObjString*>(arrDataInfo->At(0))->String();
38-
if (rorcTypeTmp=="trorc") rorcType=rorcTypeTmp;
38+
if (rorcTypeTmp=="grorc") rorcType=rorcTypeTmp;
39+
else if (rorcTypeTmp=="trorc") rorcType=rorcTypeTmp;
3940
else if (rorcTypeTmp=="trorc2") rorcType=rorcTypeTmp;
4041
else if (rorcTypeTmp=="raw") rorcType=rorcTypeTmp;
4142
else {

Detectors/TPC/monitor/include/TPCMonitor/SimpleEventDisplay.h

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
#include "THnSparse.h"
1919
#include "TPCBase/CalDet.h"
20+
#include "TPCBase/CRU.h"
2021
#include "TPCCalibration/CalibRawBase.h"
2122

2223
class TH2D;
@@ -41,15 +42,22 @@ class SimpleEventDisplay : public CalibRawBase
4142

4243
virtual ~SimpleEventDisplay() = default;
4344

44-
Int_t Update(const Int_t roc, const Int_t row, const Int_t pad,
45-
const Int_t timeBin, const Float_t signal) final;
45+
Int_t UpdateROC(const Int_t roc, const Int_t row, const Int_t pad,
46+
const Int_t timeBin, const Float_t signal) final;
4647

48+
/// not used
49+
Int_t UpdateCRU(const CRU& cru, const Int_t row, const Int_t pad,
50+
const Int_t timeBin, const Float_t signal) final { return 0;}
51+
4752
CalPad* getCalPadMax() {return &mPadMax;}
4853

4954
void setPedstals(CalPad* pedestals) { mPedestals = pedestals; }
5055
// TH1D* MakePadSignals(Int_t roc, Int_t channel);
5156
TH1D* MakePadSignals(Int_t roc, Int_t row, Int_t pad);
5257

58+
/// Dummy end event
59+
virtual void EndEvent() final {};
60+
5361
// private:
5462
THnSparseS *mHnDataIROC; //!< Event Data IROCs
5563
THnSparseS *mHnDataOROC; //!< Event Data OROCs

Detectors/TPC/monitor/src/SimpleEventDisplay.cxx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -69,11 +69,11 @@ SimpleEventDisplay::SimpleEventDisplay()
6969
}
7070

7171
//_____________________________________________________________________
72-
Int_t SimpleEventDisplay::Update(const Int_t roc,
73-
const Int_t row,
74-
const Int_t pad,
75-
const Int_t timeBin,
76-
const Float_t signal)
72+
Int_t SimpleEventDisplay::UpdateROC(const Int_t roc,
73+
const Int_t row,
74+
const Int_t pad,
75+
const Int_t timeBin,
76+
const Float_t signal)
7777
{
7878
//
7979
// Signal filling methode on the fly pedestal and time offset correction if necessary.

0 commit comments

Comments
 (0)