Project
Loading...
Searching...
No Matches
ChipDigitsContainer.cxx
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
14namespace o2
15{
16namespace its3
17{
18
21
23{
24 return innerBarrel;
25}
26
27void ChipDigitsContainer::addNoise(UInt_t rofMin, UInt_t rofMax, const o2::its3::DigiParams* params)
28{
29 UInt_t row = 0;
30 UInt_t col = 0;
31 Int_t nhits = 0;
32 constexpr float ns2sec = 1e-9;
33 float mean = 0.f;
34 int nel = 0;
35
36 if (isIB()) {
37 // Inner barrel: use ITS3-specific noise interface with OB segmentation.
38 mean = params->getIBNoisePerPixel() * SegmentationOB::NPixels;
39 nel = static_cast<int>(params->getIBChargeThreshold() * 1.1);
40 } else {
41 // Outer barrel: use base class noise interface with IB segmentation.
42 mean = params->getNoisePerPixel() * SegmentationIB::NPixels;
43 nel = static_cast<int>(params->getChargeThreshold() * 1.1);
44 }
45
46 for (UInt_t rof = rofMin; rof <= rofMax; ++rof) {
47 nhits = gRandom->Poisson(mean);
48 for (Int_t i = 0; i < nhits; ++i) {
49 row = gRandom->Integer(maxRows);
50 col = gRandom->Integer(maxCols);
52 continue;
54 continue;
55 auto key = getOrderingKey(rof, row, col);
56 if (!findDigit(key))
57 addDigit(key, rof, row, col, nel, o2::MCCompLabel(true));
58 }
59 }
60}
61
62} // namespace its3
63} // namespace o2
int32_t i
uint32_t col
Definition RawData.h:4
StringRef key
void addNoise(UInt_t rofMin, UInt_t rofMax, const o2::itsmft::DigiParams *params, int maxRows=o2::itsmft::SegmentationAlpide::NRows, int maxCols=o2::itsmft::SegmentationAlpide::NCols)=delete
Adds noise digits, deleted the one using the itsmft::DigiParams interface.
void addDigit(ULong64_t key, UInt_t roframe, UShort_t row, UShort_t col, int charge, o2::MCCompLabel lbl)
const o2::itsmft::NoiseMap * mNoiseMap
o2::itsmft::PreDigit * findDigit(ULong64_t key)
static ULong64_t getOrderingKey(UInt_t roframe, UShort_t row, UShort_t col)
Get global ordering key made of readout frame, column and row.
const o2::itsmft::NoiseMap * mDeadChanMap
bool isNoisy(int chip, int row, int col) const
Definition NoiseMap.h:151
GLenum const GLfloat * params
Definition glcorearb.h:272
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
std::vector< int > row