 |
ATLAS Offline Software
|
Go to the documentation of this file.
16 #include "CLHEP/Random/RandFlat.h"
31 return StatusCode::SUCCESS;
36 return StatusCode::SUCCESS;
40 CLHEP::HepRandomEngine* rndmEngine)
const {
50 const EventContext& ctx{Gaudi::Hive::currentContext()};
70 for (
auto &[mapId,mapDiode]:chargedDiodes) {
71 Identifier diodeID = chargedDiodes.getId(mapId);
72 double charge = mapDiode.charge();
85 if (mapDiode.totalCharge().fromTrack()) {
90 const int timeWalk = 25;
109 double totsig = calibData->
getTotRes(moduleHash, FE, tot);
110 int nToT =
generateToT(rndmEngine, tot,totsig, std::make_pair(0,overflowToT));
130 int flag = mapDiode.flag();
131 int bunch = (
flag >> 8) & 0xff;
134 const Identifier id_readout = chargedDiodes.element()->identifierFromCellId(cellId);
This is an Identifier helper class for the Pixel subdetector. This class is a factory for creating co...
float getToT(InDetDD::PixelDiodeType type, unsigned int moduleHash, unsigned int FE, float Q) const
const InDetDD::SolidStateDetectorElementBase * element() const
static bool isDisabled(SiChargedDiode &chDiode)
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
PixelChargeCalib::Thresholds getThresholds(InDetDD::PixelDiodeType type, unsigned int moduleHash, unsigned int FE) const
constexpr uint32_t invalidFrontEnd
Structs for holding charge calibration parameterisation and data.
float getTotRes(unsigned int moduleHash, unsigned int FE, float Q) const
static void disabled(SiChargedDiode &chDiode, bool flag, bool mask=false)
Identifier wafer_id(int barrel_ec, int layer_disk, int phi_module, int eta_module) const
For a single crystal.
const AtlasDetectorID * getIdHelper() const
Returns the id helper (inline)
double getG4Time(const SiTotalCharge &totalCharge)
double randomThreshold(const PixelChargeCalib::Thresholds &t, CLHEP::HepRandomEngine *pEngine)
IdentifierHash wafer_hash(Identifier wafer_id) const
wafer hash from id
int generateToT(CLHEP::HepRandomEngine *rndmEngine, double mean, double sd, const std::pair< int, int > &range)
::StatusCode StatusCode
StatusCode definition for legacy code.
static void belowThreshold(SiChargedDiode &chDiode, bool flag, bool mask=false)
static void SetBunch(SiChargedDiode &chDiode, int bunch, MsgStream *log=nullptr)
static bool isMaskOut(SiChargedDiode &chDiode)
double charge(const T &p)
value_type push_back(value_type pElem)
Add an element to the end of the collection.
void crossTalk(double crossTalk, SiChargedDiodeCollection &chargedDiodes)
void randomNoise(SiChargedDiodeCollection &chargedDiodes, const PixelModuleData *moduleData, int nBcid, const PixelChargeCalibCondData *chargeCalibData, CLHEP::HepRandomEngine *rndmEngine, InDetDD::IPixelReadoutManager *pixelReadout)
void randomDisable(SiChargedDiodeCollection &chargedDiodes, const PixelModuleData *moduleData, CLHEP::HepRandomEngine *rndmEngine)
virtual Identifier identify() const override final
identifier of this detector element (inline)
void thermalNoise(double thermalNoise, SiChargedDiodeCollection &chargedDiodes, CLHEP::HepRandomEngine *rndmEngine)
virtual Identifier identify() const override final