#include "AliITSFOGeneratorSPD.h"
#include "AliITSRawStreamSPD.h"
#include <TRandom.h>
AliITSFOGeneratorSPD::AliITSFOGeneratorSPD() :
fSignals(), fOCDBEff(NULL), fOCDBNoise(NULL)
{
}
AliITSFOGeneratorSPD::AliITSFOGeneratorSPD(AliITSFOEfficiencySPD* ocdbEff, AliITSFONoiseSPD* ocdbNoise) :
fSignals(), fOCDBEff(ocdbEff), fOCDBNoise(ocdbNoise)
{
}
AliITSFOGeneratorSPD::AliITSFOGeneratorSPD(const AliITSFOGeneratorSPD& handle):
fSignals(handle.fSignals), fOCDBEff(handle.fOCDBEff), fOCDBNoise(handle.fOCDBNoise)
{
}
AliITSFOGeneratorSPD::~AliITSFOGeneratorSPD() {
}
AliITSFOGeneratorSPD& AliITSFOGeneratorSPD::operator=(const AliITSFOGeneratorSPD& handle) {
if (this!=&handle) {
fSignals = handle.fSignals;
fOCDBEff = handle.fOCDBEff;
fOCDBNoise = handle.fOCDBNoise;
}
return *this;
}
void AliITSFOGeneratorSPD::SetEfficiencyAndNoise(AliITSFOEfficiencySPD* ocdbEff, AliITSFONoiseSPD* ocdbNoise) {
SetEfficiency(ocdbEff);
SetNoise(ocdbNoise);
}
void AliITSFOGeneratorSPD::SetEfficiency(AliITSFOEfficiencySPD* ocdbEff) {
fOCDBEff = ocdbEff;
}
void AliITSFOGeneratorSPD::SetNoise(AliITSFONoiseSPD* ocdbNoise) {
fOCDBNoise = ocdbNoise;
}
void AliITSFOGeneratorSPD::ProcessPixelHit(UInt_t eq, UInt_t hs, UInt_t chip, UInt_t col, UInt_t row) {
if (eq>=20 || hs>=6 || chip>=10 || col>=32 || row>=256) {
Error("AliITSFOGeneratorSPD::ProcessPixelHit", "eq,hs,chip,col,row (%d,%d,%d,%d,%d) out of bounds.",
eq,hs,chip,col,row);
return;
}
if (fOCDBEff==NULL) {
Error("AliITSFOGeneratorSPD::ProcessPixelHit", "No AliITSFOEfficiencySPD entry has been provided.");
return;
}
if (gRandom->Rndm() < fOCDBEff->GetColumnEfficiency(eq,hs,chip,col)) {
fSignals.SetSignal(eq,hs,chip);
}
}
void AliITSFOGeneratorSPD::ProcessPixelHitM(UInt_t module, UInt_t colM, UInt_t rowM) {
if (module>=240 || colM>=160 || rowM>=256) {
Error("AliITSFOGeneratorSPD::ProcessPixelHitM", "module,colM,rowM (%d,%d,%d) out of bounds.",
module,colM,rowM);
return;
}
UInt_t eq,hs,chip,col,row;
if (AliITSRawStreamSPD::OfflineToOnline(module,colM,rowM,eq,hs,chip,col,row)) {
ProcessPixelHit(eq,hs,chip,col,row);
}
}
void AliITSFOGeneratorSPD::ProcessNoise() {
if (fOCDBNoise==NULL) {
Error("AliITSFOGeneratorSPD::ProcessNoise", "No AliITSFONoiseSPD entry has been provided.");
return;
}
for (UInt_t eq=0; eq<20; eq++) {
for (UInt_t hs=0; hs<6; hs++) {
for (UInt_t chip=0; chip<10; chip++) {
if (gRandom->Rndm() < fOCDBNoise->GetChipNoise(eq,hs,chip)) {
fSignals.SetSignal(eq,hs,chip);
}
}
}
}
}
AliITSFOGeneratorSPD.cxx:1 AliITSFOGeneratorSPD.cxx:2 AliITSFOGeneratorSPD.cxx:3 AliITSFOGeneratorSPD.cxx:4 AliITSFOGeneratorSPD.cxx:5 AliITSFOGeneratorSPD.cxx:6 AliITSFOGeneratorSPD.cxx:7 AliITSFOGeneratorSPD.cxx:8 AliITSFOGeneratorSPD.cxx:9 AliITSFOGeneratorSPD.cxx:10 AliITSFOGeneratorSPD.cxx:11 AliITSFOGeneratorSPD.cxx:12 AliITSFOGeneratorSPD.cxx:13 AliITSFOGeneratorSPD.cxx:14 AliITSFOGeneratorSPD.cxx:15 AliITSFOGeneratorSPD.cxx:16 AliITSFOGeneratorSPD.cxx:17 AliITSFOGeneratorSPD.cxx:18 AliITSFOGeneratorSPD.cxx:19 AliITSFOGeneratorSPD.cxx:20 AliITSFOGeneratorSPD.cxx:21 AliITSFOGeneratorSPD.cxx:22 AliITSFOGeneratorSPD.cxx:23 AliITSFOGeneratorSPD.cxx:24 AliITSFOGeneratorSPD.cxx:25 AliITSFOGeneratorSPD.cxx:26 AliITSFOGeneratorSPD.cxx:27 AliITSFOGeneratorSPD.cxx:28 AliITSFOGeneratorSPD.cxx:29 AliITSFOGeneratorSPD.cxx:30 AliITSFOGeneratorSPD.cxx:31 AliITSFOGeneratorSPD.cxx:32 AliITSFOGeneratorSPD.cxx:33 AliITSFOGeneratorSPD.cxx:34 AliITSFOGeneratorSPD.cxx:35 AliITSFOGeneratorSPD.cxx:36 AliITSFOGeneratorSPD.cxx:37 AliITSFOGeneratorSPD.cxx:38 AliITSFOGeneratorSPD.cxx:39 AliITSFOGeneratorSPD.cxx:40 AliITSFOGeneratorSPD.cxx:41 AliITSFOGeneratorSPD.cxx:42 AliITSFOGeneratorSPD.cxx:43 AliITSFOGeneratorSPD.cxx:44 AliITSFOGeneratorSPD.cxx:45 AliITSFOGeneratorSPD.cxx:46 AliITSFOGeneratorSPD.cxx:47 AliITSFOGeneratorSPD.cxx:48 AliITSFOGeneratorSPD.cxx:49 AliITSFOGeneratorSPD.cxx:50 AliITSFOGeneratorSPD.cxx:51 AliITSFOGeneratorSPD.cxx:52 AliITSFOGeneratorSPD.cxx:53 AliITSFOGeneratorSPD.cxx:54 AliITSFOGeneratorSPD.cxx:55 AliITSFOGeneratorSPD.cxx:56 AliITSFOGeneratorSPD.cxx:57 AliITSFOGeneratorSPD.cxx:58 AliITSFOGeneratorSPD.cxx:59 AliITSFOGeneratorSPD.cxx:60 AliITSFOGeneratorSPD.cxx:61 AliITSFOGeneratorSPD.cxx:62 AliITSFOGeneratorSPD.cxx:63 AliITSFOGeneratorSPD.cxx:64 AliITSFOGeneratorSPD.cxx:65 AliITSFOGeneratorSPD.cxx:66 AliITSFOGeneratorSPD.cxx:67 AliITSFOGeneratorSPD.cxx:68 AliITSFOGeneratorSPD.cxx:69 AliITSFOGeneratorSPD.cxx:70 AliITSFOGeneratorSPD.cxx:71 AliITSFOGeneratorSPD.cxx:72 AliITSFOGeneratorSPD.cxx:73 AliITSFOGeneratorSPD.cxx:74 AliITSFOGeneratorSPD.cxx:75 AliITSFOGeneratorSPD.cxx:76 AliITSFOGeneratorSPD.cxx:77 AliITSFOGeneratorSPD.cxx:78 AliITSFOGeneratorSPD.cxx:79 AliITSFOGeneratorSPD.cxx:80 AliITSFOGeneratorSPD.cxx:81 AliITSFOGeneratorSPD.cxx:82 AliITSFOGeneratorSPD.cxx:83 AliITSFOGeneratorSPD.cxx:84 AliITSFOGeneratorSPD.cxx:85 AliITSFOGeneratorSPD.cxx:86 AliITSFOGeneratorSPD.cxx:87 AliITSFOGeneratorSPD.cxx:88 AliITSFOGeneratorSPD.cxx:89 AliITSFOGeneratorSPD.cxx:90 AliITSFOGeneratorSPD.cxx:91 AliITSFOGeneratorSPD.cxx:92 AliITSFOGeneratorSPD.cxx:93 AliITSFOGeneratorSPD.cxx:94 AliITSFOGeneratorSPD.cxx:95 AliITSFOGeneratorSPD.cxx:96 AliITSFOGeneratorSPD.cxx:97 AliITSFOGeneratorSPD.cxx:98 AliITSFOGeneratorSPD.cxx:99 AliITSFOGeneratorSPD.cxx:100 AliITSFOGeneratorSPD.cxx:101 AliITSFOGeneratorSPD.cxx:102 AliITSFOGeneratorSPD.cxx:103 AliITSFOGeneratorSPD.cxx:104 AliITSFOGeneratorSPD.cxx:105 AliITSFOGeneratorSPD.cxx:106 AliITSFOGeneratorSPD.cxx:107 AliITSFOGeneratorSPD.cxx:108 AliITSFOGeneratorSPD.cxx:109 AliITSFOGeneratorSPD.cxx:110 AliITSFOGeneratorSPD.cxx:111 AliITSFOGeneratorSPD.cxx:112 AliITSFOGeneratorSPD.cxx:113 AliITSFOGeneratorSPD.cxx:114 AliITSFOGeneratorSPD.cxx:115 AliITSFOGeneratorSPD.cxx:116 AliITSFOGeneratorSPD.cxx:117 AliITSFOGeneratorSPD.cxx:118 AliITSFOGeneratorSPD.cxx:119 AliITSFOGeneratorSPD.cxx:120 AliITSFOGeneratorSPD.cxx:121 AliITSFOGeneratorSPD.cxx:122 AliITSFOGeneratorSPD.cxx:123