14 const Float_t npix_to_qdc_params[4] = {0.172, -1.31, 0.006, 0.33};
32 Scifi* ScifiDet =
dynamic_cast<Scifi*
> (gROOT->GetListOfGlobals()->FindObject(
"Scifi") );
33 Float_t nphe_min = ScifiDet->
GetConfParF(
"Scifi/nphe_min");
34 Float_t nphe_max = ScifiDet->
GetConfParF(
"Scifi/nphe_max");
35 Float_t timeResol = ScifiDet->
GetConfParF(
"Scifi/timeResol");
36 Float_t signalSpeed = ScifiDet->
GetConfParF(
"Scifi/signalSpeed");
40 for (
unsigned int j=0; j<16; ++j){
47 Float_t earliestToA = 1E20;
48 for(
int i = 0; i <V.size();i++) {
50 Double_t signal = V[i]->GetEnergyLoss()*W[i];
54 TVector3 impact(V[i]->GetX(),V[i]->GetY() ,V[i]->GetZ() );
64 distance = (b - impact).Mag();
67 distance = (impact - a).Mag();
71 Float_t ly = signal*1E+6*0.16;
77 Float_t arrival_time = V[i]->GetTime() + distance/signalSpeed;
78 if (arrival_time < earliestToA){earliestToA = arrival_time;}
82 ly_total= gRandom->Poisson(ly_total);
89 if (ly_total > nphe_min){
94 times[0] = gRandom->Gaus(earliestToA, timeResol);
96 LOG(DEBUG) <<
"signal created";