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
14using namespace o2::its3;
15
18
20{
21 return innerBarrel;
22}
23
24void ChipDigitsContainer::addNoise(UInt_t rofMin, UInt_t rofMax, const o2::its3::DigiParams* params)
25{
26 UInt_t row = 0;
27 UInt_t col = 0;
28 Int_t nhits = 0;
29 constexpr float ns2sec = 1e-9;
30 float mean = 0.f;
31 int nel = 0;
32
33 if (isIB()) {
34 // Inner barrel: use ITS3-specific noise interface with OB segmentation.
35 mean = params->getIBNoisePerPixel() * SegmentationOB::NPixels;
36 nel = static_cast<int>(params->getIBChargeThreshold() * 1.1);
37 } else {
38 // Outer barrel: use base class noise interface with IB segmentation.
39 mean = params->getNoisePerPixel() * SegmentationIB::NPixels;
40 nel = static_cast<int>(params->getChargeThreshold() * 1.1);
41 }
42
43 for (UInt_t rof = rofMin; rof <= rofMax; ++rof) {
44 nhits = gRandom->Poisson(mean);
45 for (Int_t i = 0; i < nhits; ++i) {
46 row = gRandom->Integer(maxRows);
47 col = gRandom->Integer(maxCols);
49 continue;
50 }
52 continue;
53 }
54 auto key = getOrderingKey(rof, row, col);
55 if (!findDigit(key)) {
56 addDigit(key, rof, row, col, nel, o2::MCCompLabel(true));
57 }
58 }
59 }
60}
61// namespace its3
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