ATLAS Offline Software
Loading...
Searching...
No Matches
PixelNoiseFunctions.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4#ifndef PixelNoiseFunctions_h
5#define PixelNoiseFunctions_h
6
7
9#include <vector>
10#include <utility> //for std::pair
11
13class SiTotalCharge;
14class PixelModuleData;
17
18namespace CLHEP{
19 class HepRandomEngine;
20}
21
22
23namespace PixelDigitization{
24 void crossTalk(double crossTalk, SiChargedDiodeCollection& chargedDiodes) ;
25
26 void thermalNoise(double thermalNoise, SiChargedDiodeCollection& chargedDiodes,
27 CLHEP::HepRandomEngine* rndmEngine);
28
29 void randomNoise(SiChargedDiodeCollection& chargedDiodes, const PixelModuleData *moduleData,
30 int nBcid,
31 const PixelChargeCalibCondData *chargeCalibData, CLHEP::HepRandomEngine* rndmEngine,
32 InDetDD::IPixelReadoutManager * pixelReadout);
33
34 void
35 randomNoise(SiChargedDiodeCollection& chargedDiodes, const double totalNoiseOccupancy,
36 const std::vector<float> &noiseShape, float overflowToT,
37 const PixelChargeCalibCondData *chargeCalibData, CLHEP::HepRandomEngine* rndmEngine,
38 InDetDD::IPixelReadoutManager * pixelReadout);
39
40 void
41 randomNoise(SiChargedDiodeCollection& chargedDiodes, const ITkPixSimulationParameters & chipData,
42 int nBcid,
43 const PixelChargeCalibCondData *chargeCalibData, CLHEP::HepRandomEngine* rndmEngine,
44 InDetDD::IPixelReadoutManager * pixelReadout);
45
46 //randomly disables certain elements, using moduleData to get probability
47 void
48 randomDisable(SiChargedDiodeCollection& chargedDiodes,
49 const PixelModuleData *moduleData,
50 CLHEP::HepRandomEngine* rndmEngine);
51
52 void
53 randomDisable(SiChargedDiodeCollection& chargedDiodes,
54 const ITkPixSimulationParameters & chipData,
55 CLHEP::HepRandomEngine* rndmEngine);
56
57 //randomly disables certain elements, probability as a parameter
58 void
59 randomDisable(SiChargedDiodeCollection& chargedDiodes,
60 double disableProbability, CLHEP::HepRandomEngine* rndmEngine);
61
62 //generate Time-Over-Threshold int values with mean, rms, and valid range
63 int
64 generateToT(CLHEP::HepRandomEngine* rndmEngine, double mean, double sd, const std::pair<int, int>& range);
65 //
66 double
67 getG4Time(const SiTotalCharge& totalCharge);
68}//namespace
69
70 #endif
void mean(std::vector< double > &bins, std::vector< double > &values, const std::vector< std::string > &files, const std::string &histname, const std::string &tplotname, const std::string &label="")
void randomDisable(SiChargedDiodeCollection &chargedDiodes, const PixelModuleData *moduleData, CLHEP::HepRandomEngine *rndmEngine)
void crossTalk(double crossTalk, SiChargedDiodeCollection &chargedDiodes)
void thermalNoise(double thermalNoise, SiChargedDiodeCollection &chargedDiodes, CLHEP::HepRandomEngine *rndmEngine)
void randomNoise(SiChargedDiodeCollection &chargedDiodes, const PixelModuleData *moduleData, int nBcid, const PixelChargeCalibCondData *chargeCalibData, CLHEP::HepRandomEngine *rndmEngine, InDetDD::IPixelReadoutManager *pixelReadout)
int generateToT(CLHEP::HepRandomEngine *rndmEngine, double mean, double sd, const std::pair< int, int > &range)
double getG4Time(const SiTotalCharge &totalCharge)