#include <Riostream.h>
#include <TGeoGlobalMagField.h>
#include <TH1.h>
#include <TString.h>
#include "AliITS.h"
#include "AliITSdigitSPD.h"
#include "AliITShit.h"
#include "AliITSmodule.h"
#include "AliITSpList.h"
#include "AliITSCalibrationSPD.h"
#include "AliITSsegmentationSPD.h"
#include "AliITSsimulationSPD.h"
#include "AliLog.h"
#include "AliRun.h"
#include "AliMagF.h"
#include "AliMathBase.h"
using std::endl;
using std::cout;
ClassImp(AliITSsimulationSPD)
AliITSsimulationSPD::AliITSsimulationSPD():
AliITSsimulation(),
fHis(0),
fSPDname(),
fCoupling(),
fLorentz(kFALSE),
fTanLorAng(0),
fStrobe(kTRUE),
fStrobeLenght(4),
fStrobePhase(-12.5e-9){
AliDebug(1,Form("Calling default constructor"));
}
AliITSsimulationSPD::AliITSsimulationSPD(AliITSDetTypeSim *dettyp):
AliITSsimulation(dettyp),
fHis(0),
fSPDname(),
fCoupling(),
fLorentz(kFALSE),
fTanLorAng(0),
fStrobe(kTRUE),
fStrobeLenght(4),
fStrobePhase(-12.5e-9){
AliDebug(1,Form("Calling standard constructor "));
Init();
}
void AliITSsimulationSPD::Init(){
const Double_t kmictocm = 1.0e-4;
SetModuleNumber(0);
SetEventNumber(0);
SetMap(new AliITSpList(GetNPixelsZ(),GetNPixelsX()));
AliITSSimuParam* simpar = fDetType->GetSimuParam();
AliITSsegmentationSPD* seg = (AliITSsegmentationSPD*)GetSegmentationModel(0);
Double_t bias = simpar->GetSPDBiasVoltage();
simpar->SetDistanceOverVoltage(kmictocm*seg->Dy(),bias);
char opt[20];
simpar->GetSPDCouplingOption(opt);
char *old = strstr(opt,"old");
if (old) {
fCoupling=2;
} else {
fCoupling=1;
}
SetLorentzDrift(simpar->GetSPDLorentzDrift());
if (fLorentz) SetTanLorAngle(simpar->GetSPDLorentzHoleWeight());
if (fStrobe) GenerateStrobePhase();
}
Bool_t AliITSsimulationSPD::SetTanLorAngle(Double_t WeightHole) {
if(!fDetType) {
AliError("AliITSsimulationSPD::SetTanLorAngle: AliITSDetTypeSim* fDetType not set ");
return kFALSE;}
if(WeightHole<0) {
WeightHole=0.;
AliWarning("AliITSsimulationSPD::SetTanLorAngle: You have asked for negative Hole weight");
AliWarning("AliITSsimulationSPD::SetTanLorAngle: I'm going to use only electrons");
}
if(WeightHole>1) {
WeightHole=1.;
AliWarning("AliITSsimulationSPD::SetTanLorAngle: You have asked for weight > 1");
AliWarning("AliITSsimulationSPD::SetTanLorAngle: I'm going to use only holes");
}
Double_t WeightEle=1.-WeightHole;
AliITSSimuParam* simpar = fDetType->GetSimuParam();
AliMagF* fld = (AliMagF*)TGeoGlobalMagField::Instance()->GetField();
if (!fld) AliFatal("The field is not initialized");
Double_t bz = fld->SolenoidField();
fTanLorAng = TMath::Tan(WeightHole*simpar->LorentzAngleHole(bz) +
WeightEle*simpar->LorentzAngleElectron(bz));
return kTRUE;
}
AliITSsimulationSPD::~AliITSsimulationSPD(){
if (fHis) {
fHis->Delete();
delete fHis;
}
}
AliITSsimulationSPD::AliITSsimulationSPD(const
AliITSsimulationSPD
&s) : AliITSsimulation(s),
fHis(s.fHis),
fSPDname(s.fSPDname),
fCoupling(s.fCoupling),
fLorentz(s.fLorentz),
fTanLorAng(s.fTanLorAng),
fStrobe(s.fStrobe),
fStrobeLenght(s.fStrobeLenght),
fStrobePhase(s.fStrobePhase){
}
AliITSsimulationSPD& AliITSsimulationSPD::operator=(const
AliITSsimulationSPD &s){
if(&s == this) return *this;
this->fHis = s.fHis;
fCoupling = s.fCoupling;
fSPDname = s.fSPDname;
fLorentz = s.fLorentz;
fTanLorAng = s.fTanLorAng;
fStrobe = s.fStrobe;
fStrobeLenght = s.fStrobeLenght;
fStrobePhase = s.fStrobePhase;
return *this;
}
void AliITSsimulationSPD::InitSimulationModule(Int_t module, Int_t event){
AliDebug(1,Form("(module=%d,event=%d)",module,event));
const Double_t kmictocm = 1.0e-4;
AliITSSimuParam* simpar = fDetType->GetSimuParam();
AliITSsegmentationSPD* seg = (AliITSsegmentationSPD*)GetSegmentationModel(0);
SetModuleNumber(module);
SetEventNumber(event);
simpar->SetDistanceOverVoltage(kmictocm*seg->Dy(),simpar->GetSPDBiasVoltage(module));
ClearMap();
}
void AliITSsimulationSPD::SDigitiseModule(AliITSmodule *mod,Int_t,
Int_t event){
AliDebug(1,Form("(mod=%p, ,event=%d)",mod,event));
if(!(mod->GetNhits())){
AliDebug(1,Form("In event %d module %d there are %d hits returning.",
event, mod->GetIndex(),mod->GetNhits()));
return;
}
SetModuleNumber(mod->GetIndex());
if (fStrobe) if(event != GetEventNumber()) GenerateStrobePhase();
SetEventNumber(event);
InitSimulationModule( GetModuleNumber() , event );
HitToSDigitFast(mod);
if (fDetType->GetSimuParam()->GetSPDAddNoisyFlag()) AddNoisyPixels();
if (fDetType->GetSimuParam()->GetSPDRemoveDeadFlag()) RemoveDeadPixels();
WriteSDigits();
ClearMap();
}
void AliITSsimulationSPD::WriteSDigits(){
Int_t ix, nix, iz, niz;
static AliITS *aliITS = (AliITS*)gAlice->GetModule("ITS");
AliDebug(1,Form("Writing SDigits for module %d",GetModuleNumber()));
GetMap()->GetMaxMapIndex(niz, nix);
for(iz=0; iz<niz; iz++)for(ix=0; ix<nix; ix++){
if(GetMap()->GetSignalOnly(iz,ix)>0.0){
aliITS->AddSumDigit(*(GetMap()->GetpListItem(iz,ix)));
if(AliDebugLevel()>0) {
AliDebug(1,Form("%d, %d",iz,ix));
cout << *(GetMap()->GetpListItem(iz,ix)) << endl;
}
}
}
return;
}
void AliITSsimulationSPD::FinishSDigitiseModule(){
AliDebug(1,"()");
FrompListToDigits();
ClearMap();
return;
}
void AliITSsimulationSPD::DigitiseModule(AliITSmodule *mod,Int_t,
Int_t event){
if (fStrobe) if(event != GetEventNumber()) GenerateStrobePhase();
AliDebug(1,Form("(mod=%p,,0)",mod));
InitSimulationModule( mod->GetIndex(), event );
HitToSDigitFast(mod);
if (fDetType->GetSimuParam()->GetSPDAddNoisyFlag()) AddNoisyPixels();
if (fDetType->GetSimuParam()->GetSPDRemoveDeadFlag()) RemoveDeadPixels();
FrompListToDigits();
ClearMap();
}
void AliITSsimulationSPD::HitToSDigit(AliITSmodule *mod){
const Double_t kmictocm = 1.0e-4;
const Double_t kBunchLenght = 25e-9;
TObjArray *hits = mod->GetHits();
Int_t nhits = hits->GetEntriesFast();
Int_t h,ix,iz,i;
Int_t idtrack;
Double_t x0=0.0,x1=0.0,y0=0.0,y1=0.0,z0=0.0,z1=0.0,de=0.0,ld=0.0;
Double_t x,y,z,t,tp,st,dt=0.2,el,sig,sigx,sigz,fda;
AliITSsegmentationSPD* seg = (AliITSsegmentationSPD*)GetSegmentationModel(0);
AliITSSimuParam *simpar = fDetType->GetSimuParam();
Double_t thick = 0.5*kmictocm*seg->Dy();
simpar->GetSPDSigmaDiffusionAsymmetry(fda);
AliDebug(1,Form("(mod=%p) fCoupling=%d",mod,fCoupling));
if(nhits<=0) return;
for(h=0;h<nhits;h++){
if(AliDebugLevel()>0) {
AliDebug(1,Form("Hits, %d", h));
cout << *(mod->GetHit(h)) << endl;
}
if (fStrobe)
if ((mod->GetHit(h)->GetTOF() < fStrobePhase) ||
(mod->GetHit(h)->GetTOF() > (fStrobePhase+(Double_t)fStrobeLenght*kBunchLenght))) continue;
if(!mod->LineSegmentL(h,x0,x1,y0,y1,z0,z1,de,idtrack)) continue;
st = TMath::Sqrt(x1*x1+y1*y1+z1*z1);
if(st>0.0){
st = (Double_t)((Int_t)(st/kmictocm));
if(st<=1.0) st = 1.0;
dt = 1.0/st;
for(t=0.0;t<1.0;t+=dt){
tp = t+0.5*dt;
x = x0+x1*tp;
y = y0+y1*tp;
z = z0+z1*tp;
if(!(seg->LocalToDet(x,z,ix,iz))) continue;
el = dt * de / simpar->GetGeVToCharge();
if(GetDebug(1)){
if(el<=0.0) cout<<"el="<<el<<" dt="<<dt
<<" de="<<de<<endl;
}
sig = simpar->SigmaDiffusion1D(TMath::Abs(thick + y));
sigx=sig;
sigz=sig*fda;
if (fLorentz) ld=(y+thick)*fTanLorAng;
SpreadChargeAsym(x,z,ix,iz,el,sigx,sigz,ld,idtrack,h);
}
} else {
x = x0;
y = y0;
z = z0;
if(!(seg->LocalToDet(x,z,ix,iz))) continue;
el = de / simpar->GetGeVToCharge();
sig = simpar->SigmaDiffusion1D(TMath::Abs(thick + y));
sigx=sig;
sigz=sig*fda;
if (fLorentz) ld=(y+thick)*fTanLorAng;
SpreadChargeAsym(x,z,ix,iz,el,sigx,sigz,ld,idtrack,h);
}
}
switch (fCoupling) {
default:
break;
case 1:
for(i=0;i<GetMap()->GetEntries();i++)
if(GetMap()->GetpListItem(i)==0) continue;
else{
GetMap()->GetMapIndex(GetMap()->GetpListItem(i)->GetIndex(),iz,ix);
SetCoupling(iz,ix);
}
break;
case 2:
for(i=0;i<GetMap()->GetEntries();i++)
if(GetMap()->GetpListItem(i)==0) continue;
else{
GetMap()->GetMapIndex(GetMap()->GetpListItem(i)->GetIndex(),iz,ix);
SetCouplingOld(iz,ix);
}
break;
}
if(GetDebug(2))Info("HitToSDigit","Finished fCoupling=%d",fCoupling);
}
void AliITSsimulationSPD::HitToSDigitFast(AliITSmodule *mod){
const Double_t kmictocm = 1.0e-4;
const Int_t kn10=10;
const Double_t kti[kn10]={7.443716945e-3,2.166976971e-1,3.397047841e-1,
4.325316833e-1,4.869532643e-1,5.130467358e-1,
5.674683167e-1,6.602952159e-1,7.833023029e-1,
9.255628306e-1};
const Double_t kwi[kn10]={1.477621124e-1,1.346333597e-1,1.095431813e-1,
7.472567455e-2,3.333567215e-2,3.333567215e-2,
7.472567455e-2,1.095431813e-1,1.346333597e-1,
1.477621124e-1};
const Double_t kBunchLenght = 25e-9;
TObjArray *hits = mod->GetHits();
Int_t nhits = hits->GetEntriesFast();
Int_t h,ix,iz,i;
Int_t idtrack;
Double_t x0=0.0,x1=0.0,y0=0.0,y1=0.0,z0=0.0,z1=0.0,de=0.0,ld=0.0;
Double_t x,y,z,t,st,el,sig,sigx,sigz,fda;
AliITSsegmentationSPD* seg = (AliITSsegmentationSPD*)GetSegmentationModel(0);
AliITSSimuParam* simpar = fDetType->GetSimuParam();
Double_t thick = 0.5*kmictocm*seg->Dy();
simpar->GetSPDSigmaDiffusionAsymmetry(fda);
AliDebug(1,Form("(mod=%p) fCoupling=%d",mod,fCoupling));
if(nhits<=0) return;
for(h=0;h<nhits;h++){
if(AliDebugLevel()>0) {
AliDebug(1,Form("Hits, %d", h));
cout << *(mod->GetHit(h)) << endl;
}
if (fStrobe)
if ((mod->GetHit(h)->GetTOF() < fStrobePhase) ||
(mod->GetHit(h)->GetTOF() > (fStrobePhase+(Double_t)fStrobeLenght*kBunchLenght))) continue;
if(!mod->LineSegmentL(h,x0,x1,y0,y1,z0,z1,de,idtrack)) continue;
st = TMath::Sqrt(x1*x1+y1*y1+z1*z1);
if(st>0.0) for(i=0;i<kn10;i++){
t = kti[i];
x = x0+x1*t;
y = y0+y1*t;
z = z0+z1*t;
if(!(seg->LocalToDet(x,z,ix,iz))) continue;
el = kwi[i]*de/simpar->GetGeVToCharge();
if(GetDebug(1)){
if(el<=0.0) cout<<"el="<<el<<" kwi["<<i<<"]="<<kwi[i]
<<" de="<<de<<endl;
}
sig = simpar->SigmaDiffusion1D(TMath::Abs(thick + y));
sigx=sig;
sigz=sig*fda;
if (fLorentz) ld=(y+thick)*fTanLorAng;
SpreadChargeAsym(x,z,ix,iz,el,sigx,sigz,ld,idtrack,h);
}
else {
x = x0;
y = y0;
z = z0;
if(!(seg->LocalToDet(x,z,ix,iz))) continue;
el = de / simpar->GetGeVToCharge();
sig = simpar->SigmaDiffusion1D(TMath::Abs(thick + y));
sigx=sig;
sigz=sig*fda;
if (fLorentz) ld=(y+thick)*fTanLorAng;
SpreadChargeAsym(x,z,ix,iz,el,sigx,sigz,ld,idtrack,h);
}
}
switch (fCoupling) {
default:
break;
case 1:
for(i=0;i<GetMap()->GetEntries();i++)
if(GetMap()->GetpListItem(i)==0) continue;
else{
GetMap()->GetMapIndex(GetMap()->GetpListItem(i)->GetIndex(),iz,ix);
SetCoupling(iz,ix);
}
break;
case 2:
for(i=0;i<GetMap()->GetEntries();i++)
if(GetMap()->GetpListItem(i)==0) continue;
else{
GetMap()->GetMapIndex(GetMap()->GetpListItem(i)->GetIndex(),iz,ix);
SetCouplingOld(iz,ix);
}
break;
}
if(GetDebug(2))Info("HitToSDigit","Finished fCoupling=%d",fCoupling);
}
void AliITSsimulationSPD::SpreadCharge(Double_t x0,Double_t z0,
Int_t ix0,Int_t iz0,
Double_t el,Double_t sig,Double_t ld,
Int_t t,Int_t hi){
const Int_t knx = 3,knz = 2;
const Double_t kRoot2 = 1.414213562;
const Double_t kmictocm = 1.0e-4;
Int_t ix,iz,ixs,ixe,izs,ize;
Float_t x,z;
Double_t x1,x2,z1,z2,s,sp;
AliITSsegmentationSPD* seg = (AliITSsegmentationSPD*)GetSegmentationModel(0);
if(GetDebug(4)) Info("SpreadCharge","(x0=%e,z0=%e,ix0=%d,iz0=%d,el=%e,"
"sig=%e,t=%d,i=%d)",x0,z0,ix0,iz0,el,sig,t,hi);
if(sig<=0.0) {
GetMap()->AddSignal(iz0,ix0,t,hi,GetModuleNumber(),el);
if(GetDebug(2)){
cout << "sig<=0.0=" << sig << endl;
}
return;
}
sp = 1.0/(sig*kRoot2);
if(GetDebug(2)){
cout << "sig=" << sig << " sp=" << sp << endl;
}
ixs = TMath::Max(-knx+ix0,0);
ixe = TMath::Min(knx+ix0,seg->Npx()-1);
izs = TMath::Max(-knz+iz0,0);
ize = TMath::Min(knz+iz0,seg->Npz()-1);
for(ix=ixs;ix<=ixe;ix++) for(iz=izs;iz<=ize;iz++){
seg->DetToLocal(ix,iz,x,z);
x1 = x;
z1 = z;
x2 = x1 + 0.5*kmictocm*seg->Dpx(ix);
x1 -= 0.5*kmictocm*seg->Dpx(ix);
z2 = z1 + 0.5*kmictocm*seg->Dpz(iz);
z1 -= 0.5*kmictocm*seg->Dpz(iz);
x1 -= x0+ld;
x2 -= x0+ld;
z1 -= z0;
z2 -= z0;
s = 0.25;
s *= AliMathBase::ErfcFast(sp*x1) - AliMathBase::ErfcFast(sp*x2);
if(GetDebug(3)){
cout <<"el="<<el<<" ix0="<<ix0<<" ix="<<ix<<" x0="<<x<<
" iz0="<<iz0<<" iz="<<iz<<" z0="<<z<<
" sp*x1="<<sp*x1<<" sp*x2="<<sp*x2<<" s="<<s;
}
s *= AliMathBase::ErfcFast(sp*z1) - AliMathBase::ErfcFast(sp*z2);
if(GetDebug(3)){
cout<<" sp*z1="<<sp*z1<<" sp*z2="<<sp*z2<<" s="<<s<< endl;
}
GetMap()->AddSignal(iz,ix,t,hi,GetModuleNumber(),s*el);
}
}
void AliITSsimulationSPD::SpreadChargeAsym(Double_t x0,Double_t z0,
Int_t ix0,Int_t iz0,
Double_t el,Double_t sigx,Double_t sigz,
Double_t ld,Int_t t,Int_t hi){
const Int_t knx = 3,knz = 2;
const Double_t kRoot2 = 1.414213562;
const Double_t kmictocm = 1.0e-4;
Int_t ix,iz,ixs,ixe,izs,ize;
Float_t x,z;
Double_t x1,x2,z1,z2,s,spx,spz;
AliITSsegmentationSPD* seg = (AliITSsegmentationSPD*)GetSegmentationModel(0);
if(GetDebug(4)) Info("SpreadChargeAsym","(x0=%e,z0=%e,ix0=%d,iz0=%d,el=%e,"
"sigx=%e, sigz=%e, t=%d,i=%d)",x0,z0,ix0,iz0,el,sigx,sigz,t,hi);
if(sigx<=0.0 || sigz<=0.0) {
GetMap()->AddSignal(iz0,ix0,t,hi,GetModuleNumber(),el);
if(GetDebug(2)){
cout << "sigx<=0.0=" << sigx << endl;
cout << "sigz<=0.0=" << sigz << endl;
}
return;
}
spx = 1.0/(sigx*kRoot2); spz = 1.0/(sigz*kRoot2);
if(GetDebug(2)){
cout << "sigx=" << sigx << " spx=" << spx << endl;
cout << "sigz=" << sigz << " spz=" << spz << endl;
}
ixs = TMath::Max(-knx+ix0,0);
ixe = TMath::Min(knx+ix0,seg->Npx()-1);
izs = TMath::Max(-knz+iz0,0);
ize = TMath::Min(knz+iz0,seg->Npz()-1);
for(ix=ixs;ix<=ixe;ix++) for(iz=izs;iz<=ize;iz++){
seg->DetToLocal(ix,iz,x,z);
x1 = x;
z1 = z;
x2 = x1 + 0.5*kmictocm*seg->Dpx(ix);
x1 -= 0.5*kmictocm*seg->Dpx(ix);
z2 = z1 + 0.5*kmictocm*seg->Dpz(iz);
z1 -= 0.5*kmictocm*seg->Dpz(iz);
x1 -= x0+ld;
x2 -= x0+ld;
z1 -= z0;
z2 -= z0;
s = 0.25;
s *= AliMathBase::ErfcFast(spx*x1) - AliMathBase::ErfcFast(spx*x2);
if(GetDebug(3)){
cout <<"el="<<el<<" ix0="<<ix0<<" ix="<<ix<<" x0="<<x<<
" iz0="<<iz0<<" iz="<<iz<<" z0="<<z<<
" spx*x1="<<spx*x1<<" spx*x2="<<spx*x2<<" s="<<s;
}
s *= AliMathBase::ErfcFast(spz*z1) - AliMathBase::ErfcFast(spz*z2);
if(GetDebug(3)){
cout<<" spz*z1="<<spz*z1<<" spz*z2="<<spz*z2<<" s="<<s<< endl;
}
GetMap()->AddSignal(iz,ix,t,hi,GetModuleNumber(),s*el);
}
}
void AliITSsimulationSPD::RemoveDeadPixels(){
Int_t mod = GetModuleNumber();
AliITSCalibrationSPD* calObj = (AliITSCalibrationSPD*) fDetType->GetCalibrationModel(mod);
Int_t nrDead = calObj->GetNrBad();
for (Int_t i=0; i<nrDead; i++) {
GetMap()->DeleteHit(calObj->GetBadColAt(i), calObj->GetBadRowAt(i));
}
}
void AliITSsimulationSPD::AddNoisyPixels() {
Int_t mod = GetModuleNumber();
AliITSCalibrationSPD* calObj = (AliITSCalibrationSPD*) fDetType->GetSPDNoisyModel(mod);
Int_t nrNoisy = calObj->GetNrBad();
for (Int_t i=0; i<nrNoisy; i++) {
GetMap()->AddNoise(calObj->GetBadColAt(i), calObj->GetBadRowAt(i), mod, 10*GetThreshold());
}
}
void AliITSsimulationSPD::FrompListToDigits(){
static AliITS *aliITS = (AliITS*)gAlice->GetModule("ITS");
Int_t j,ix,iz;
Double_t electronics;
Double_t sig;
const Int_t knmaxtrk=AliITSdigit::GetNTracks();
static AliITSdigitSPD dig;
AliITSSimuParam *simpar = fDetType->GetSimuParam();
if(GetDebug(1)) Info("FrompListToDigits","()");
for(iz=0; iz<GetNPixelsZ(); iz++) for(ix=0; ix<GetNPixelsX(); ix++){
electronics = simpar->ApplySPDBaselineAndNoise();
UpdateMapNoise(ix,iz,electronics);
sig = GetMap()->GetSignalOnly(iz,ix);
FillHistograms(ix,iz,sig+electronics);
if(GetDebug(3)){
cout<<sig<<"+"<<electronics<<">threshold("<<ix<<","<<iz
<<")="<<GetThreshold() <<endl;
}
if (GetMap()->GetSignal(iz,ix) <= GetThreshold()) continue;
dig.SetCoord1(iz);
dig.SetCoord2(ix);
dig.SetSignal(1);
Double_t aSignal = GetMap()->GetSignal(iz,ix);
if (TMath::Abs(aSignal)>2147483647.0) {
AliWarning(Form("Too big or too small signal value %f",aSignal));
aSignal = TMath::Sign((Double_t)2147483647,aSignal);
}
dig.SetSignalSPD((Int_t)aSignal);
for(j=0;j<knmaxtrk;j++){
if (j<GetMap()->GetNEntries()) {
dig.SetTrack(j,GetMap()->GetTrack(iz,ix,j));
dig.SetHit(j,GetMap()->GetHit(iz,ix,j));
}else {
dig.SetTrack(j,-3);
dig.SetHit(j,-1);
}
}
if(GetDebug(3)){
cout<<iz<<","<<ix<<","<<*(GetMap()->GetpListItem(iz,ix))<<endl;
}
aliITS->AddSimDigit(0,&dig);
fDetType->ProcessSPDDigitForFastOr(fModule, dig.GetCoord1(), dig.GetCoord2());
}
}
void AliITSsimulationSPD::CreateHistograms(){
if(GetDebug(1)) Info("CreateHistograms","create histograms");
fHis = new TObjArray(GetNPixelsZ());
fSPDname="spd_";
for(Int_t i=0;i<GetNPixelsZ();i++) {
Char_t pixelz[4];
snprintf(pixelz,3,"%d",i);
fSPDname.Append(pixelz);
fHis->AddAt(new TH1F(fSPDname.Data(),"SPD maps",
GetNPixelsX(),0.,(Double_t)GetNPixelsX()),i);
}
}
void AliITSsimulationSPD::FillHistograms(Int_t ix,Int_t iz,Double_t v){
if(!GetHistArray()) return;
if(GetDebug(2)) Info("FillHistograms","fill histograms");
GetHistogram(iz)->Fill(ix,v);
}
void AliITSsimulationSPD::ResetHistograms(){
if(!GetHistArray()) return;
if(GetDebug(2)) Info("FillHistograms","fill histograms");
for ( int i=0;i<GetNPixelsZ();i++ ) {
if (fHis->At(i)) ((TH1F*)fHis->At(i))->Reset();
}
}
void AliITSsimulationSPD::SetCoupling(Int_t col, Int_t row) {
/*
<img src="picts/ITS/barimodel_3.gif">
</pre>
<br clear=left>
<font size=+2 color=red>
<a href="mailto:tiziano.virgili@cern.ch"></a>.
</font>
<pre>
*/
//End_Html
Int_t j1,j2,flag=0;
Double_t pulse1,pulse2;
Double_t couplR=0.0,couplC=0.0;
Double_t xr=0.;
GetCouplings(couplC,couplR);
if(GetDebug(3)) Info("SetCoupling","(col=%d,row=%d) "
"Calling SetCoupling couplC=%e couplR=%e",
col,row,couplC,couplR);
j1 = col;
j2 = row;
pulse1 = GetMap()->GetSignalOnly(col,row);
pulse2 = pulse1;
for (Int_t isign=-1;isign<=1;isign+=2){
do{
j1 += isign;
xr = gRandom->Rndm();
if ((j1<0) || (j1>GetNPixelsZ()-1) || (xr>couplC)){
j1 = col;
flag = 1;
}else{
UpdateMapNoise(row,j1,pulse1);
flag = 1;
}
} while(flag == 0);
do{
j2 += isign;
xr = gRandom->Rndm();
if ((j2<0) || (j2>GetNPixelsX()-1) || (xr>couplR)){
j2 = row;
flag = 1;
}else{
UpdateMapNoise(j2,col,pulse2);
flag = 1;
}
} while(flag == 0);
}
}
void AliITSsimulationSPD::SetCouplingOld(Int_t col, Int_t row) {
/*
<img src="picts/ITS/barimodel_3.gif">
</pre>
<br clear=left>
<font size=+2 color=red>
<a href="mailto:Rocco.Caliandro@ba.infn.it"></a>.
</font>
<pre>
*/
//End_Html
Int_t j1,j2,flag=0;
Double_t pulse1,pulse2;
Double_t couplR=0.0,couplC=0.0;
GetCouplings(couplC,couplR);
if(GetDebug(3)) Info("SetCouplingOld","(col=%d,row=%d) "
"Calling SetCoupling couplC=%e couplR=%e",
col,row,couplC,couplR);
for (Int_t isign=-1;isign<=1;isign+=2){
pulse1 = GetMap()->GetSignalOnly(col,row);
pulse2 = pulse1;
j1 = col;
j2 = row;
do{
j1 += isign;
pulse1 *= couplC;
if ((j1<0)||(j1>GetNPixelsZ()-1)||(pulse1<GetThreshold())){
pulse1 = GetMap()->GetSignalOnly(col,row);
j1 = col;
flag = 1;
}else{
UpdateMapNoise(row,j1,pulse1);
flag = 1;
}
} while(flag == 0);
do{
j2 += isign;
pulse2 *= couplR;
if((j2<0)||(j2>(GetNPixelsX()-1))||(pulse2<GetThreshold())){
pulse2 = GetMap()->GetSignalOnly(col,row);
j2 = row;
flag = 1;
}else{
UpdateMapNoise(j2,col,pulse2);
flag = 1;
}
} while(flag == 0);
}
}
void AliITSsimulationSPD::GenerateStrobePhase()
{
const Double_t kBunchLenght = 25e-9;
fStrobePhase = ((Double_t)gRandom->Integer(fStrobeLenght))*kBunchLenght-
(Double_t)fStrobeLenght*kBunchLenght+
kBunchLenght/2;
}
AliITSsimulationSPD.cxx:1 AliITSsimulationSPD.cxx:2 AliITSsimulationSPD.cxx:3 AliITSsimulationSPD.cxx:4 AliITSsimulationSPD.cxx:5 AliITSsimulationSPD.cxx:6 AliITSsimulationSPD.cxx:7 AliITSsimulationSPD.cxx:8 AliITSsimulationSPD.cxx:9 AliITSsimulationSPD.cxx:10 AliITSsimulationSPD.cxx:11 AliITSsimulationSPD.cxx:12 AliITSsimulationSPD.cxx:13 AliITSsimulationSPD.cxx:14 AliITSsimulationSPD.cxx:15 AliITSsimulationSPD.cxx:16 AliITSsimulationSPD.cxx:17 AliITSsimulationSPD.cxx:18 AliITSsimulationSPD.cxx:19 AliITSsimulationSPD.cxx:20 AliITSsimulationSPD.cxx:21 AliITSsimulationSPD.cxx:22 AliITSsimulationSPD.cxx:23 AliITSsimulationSPD.cxx:24 AliITSsimulationSPD.cxx:25 AliITSsimulationSPD.cxx:26 AliITSsimulationSPD.cxx:27 AliITSsimulationSPD.cxx:28 AliITSsimulationSPD.cxx:29 AliITSsimulationSPD.cxx:30 AliITSsimulationSPD.cxx:31 AliITSsimulationSPD.cxx:32 AliITSsimulationSPD.cxx:33 AliITSsimulationSPD.cxx:34 AliITSsimulationSPD.cxx:35 AliITSsimulationSPD.cxx:36 AliITSsimulationSPD.cxx:37 AliITSsimulationSPD.cxx:38 AliITSsimulationSPD.cxx:39 AliITSsimulationSPD.cxx:40 AliITSsimulationSPD.cxx:41 AliITSsimulationSPD.cxx:42 AliITSsimulationSPD.cxx:43 AliITSsimulationSPD.cxx:44 AliITSsimulationSPD.cxx:45 AliITSsimulationSPD.cxx:46 AliITSsimulationSPD.cxx:47 AliITSsimulationSPD.cxx:48 AliITSsimulationSPD.cxx:49 AliITSsimulationSPD.cxx:50 AliITSsimulationSPD.cxx:51 AliITSsimulationSPD.cxx:52 AliITSsimulationSPD.cxx:53 AliITSsimulationSPD.cxx:54 AliITSsimulationSPD.cxx:55 AliITSsimulationSPD.cxx:56 AliITSsimulationSPD.cxx:57 AliITSsimulationSPD.cxx:58 AliITSsimulationSPD.cxx:59 AliITSsimulationSPD.cxx:60 AliITSsimulationSPD.cxx:61 AliITSsimulationSPD.cxx:62 AliITSsimulationSPD.cxx:63 AliITSsimulationSPD.cxx:64 AliITSsimulationSPD.cxx:65 AliITSsimulationSPD.cxx:66 AliITSsimulationSPD.cxx:67 AliITSsimulationSPD.cxx:68 AliITSsimulationSPD.cxx:69 AliITSsimulationSPD.cxx:70 AliITSsimulationSPD.cxx:71 AliITSsimulationSPD.cxx:72 AliITSsimulationSPD.cxx:73 AliITSsimulationSPD.cxx:74 AliITSsimulationSPD.cxx:75 AliITSsimulationSPD.cxx:76 AliITSsimulationSPD.cxx:77 AliITSsimulationSPD.cxx:78 AliITSsimulationSPD.cxx:79 AliITSsimulationSPD.cxx:80 AliITSsimulationSPD.cxx:81 AliITSsimulationSPD.cxx:82 AliITSsimulationSPD.cxx:83 AliITSsimulationSPD.cxx:84 AliITSsimulationSPD.cxx:85 AliITSsimulationSPD.cxx:86 AliITSsimulationSPD.cxx:87 AliITSsimulationSPD.cxx:88 AliITSsimulationSPD.cxx:89 AliITSsimulationSPD.cxx:90 AliITSsimulationSPD.cxx:91 AliITSsimulationSPD.cxx:92 AliITSsimulationSPD.cxx:93 AliITSsimulationSPD.cxx:94 AliITSsimulationSPD.cxx:95 AliITSsimulationSPD.cxx:96 AliITSsimulationSPD.cxx:97 AliITSsimulationSPD.cxx:98 AliITSsimulationSPD.cxx:99 AliITSsimulationSPD.cxx:100 AliITSsimulationSPD.cxx:101 AliITSsimulationSPD.cxx:102 AliITSsimulationSPD.cxx:103 AliITSsimulationSPD.cxx:104 AliITSsimulationSPD.cxx:105 AliITSsimulationSPD.cxx:106 AliITSsimulationSPD.cxx:107 AliITSsimulationSPD.cxx:108 AliITSsimulationSPD.cxx:109 AliITSsimulationSPD.cxx:110 AliITSsimulationSPD.cxx:111 AliITSsimulationSPD.cxx:112 AliITSsimulationSPD.cxx:113 AliITSsimulationSPD.cxx:114 AliITSsimulationSPD.cxx:115 AliITSsimulationSPD.cxx:116 AliITSsimulationSPD.cxx:117 AliITSsimulationSPD.cxx:118 AliITSsimulationSPD.cxx:119 AliITSsimulationSPD.cxx:120 AliITSsimulationSPD.cxx:121 AliITSsimulationSPD.cxx:122 AliITSsimulationSPD.cxx:123 AliITSsimulationSPD.cxx:124 AliITSsimulationSPD.cxx:125 AliITSsimulationSPD.cxx:126 AliITSsimulationSPD.cxx:127 AliITSsimulationSPD.cxx:128 AliITSsimulationSPD.cxx:129 AliITSsimulationSPD.cxx:130 AliITSsimulationSPD.cxx:131 AliITSsimulationSPD.cxx:132 AliITSsimulationSPD.cxx:133 AliITSsimulationSPD.cxx:134 AliITSsimulationSPD.cxx:135 AliITSsimulationSPD.cxx:136 AliITSsimulationSPD.cxx:137 AliITSsimulationSPD.cxx:138 AliITSsimulationSPD.cxx:139 AliITSsimulationSPD.cxx:140 AliITSsimulationSPD.cxx:141 AliITSsimulationSPD.cxx:142 AliITSsimulationSPD.cxx:143 AliITSsimulationSPD.cxx:144 AliITSsimulationSPD.cxx:145 AliITSsimulationSPD.cxx:146 AliITSsimulationSPD.cxx:147 AliITSsimulationSPD.cxx:148 AliITSsimulationSPD.cxx:149 AliITSsimulationSPD.cxx:150 AliITSsimulationSPD.cxx:151 AliITSsimulationSPD.cxx:152 AliITSsimulationSPD.cxx:153 AliITSsimulationSPD.cxx:154 AliITSsimulationSPD.cxx:155 AliITSsimulationSPD.cxx:156 AliITSsimulationSPD.cxx:157 AliITSsimulationSPD.cxx:158 AliITSsimulationSPD.cxx:159 AliITSsimulationSPD.cxx:160 AliITSsimulationSPD.cxx:161 AliITSsimulationSPD.cxx:162 AliITSsimulationSPD.cxx:163 AliITSsimulationSPD.cxx:164 AliITSsimulationSPD.cxx:165 AliITSsimulationSPD.cxx:166 AliITSsimulationSPD.cxx:167 AliITSsimulationSPD.cxx:168 AliITSsimulationSPD.cxx:169 AliITSsimulationSPD.cxx:170 AliITSsimulationSPD.cxx:171 AliITSsimulationSPD.cxx:172 AliITSsimulationSPD.cxx:173 AliITSsimulationSPD.cxx:174 AliITSsimulationSPD.cxx:175 AliITSsimulationSPD.cxx:176 AliITSsimulationSPD.cxx:177 AliITSsimulationSPD.cxx:178 AliITSsimulationSPD.cxx:179 AliITSsimulationSPD.cxx:180 AliITSsimulationSPD.cxx:181 AliITSsimulationSPD.cxx:182 AliITSsimulationSPD.cxx:183 AliITSsimulationSPD.cxx:184 AliITSsimulationSPD.cxx:185 AliITSsimulationSPD.cxx:186 AliITSsimulationSPD.cxx:187 AliITSsimulationSPD.cxx:188 AliITSsimulationSPD.cxx:189 AliITSsimulationSPD.cxx:190 AliITSsimulationSPD.cxx:191 AliITSsimulationSPD.cxx:192 AliITSsimulationSPD.cxx:193 AliITSsimulationSPD.cxx:194 AliITSsimulationSPD.cxx:195 AliITSsimulationSPD.cxx:196 AliITSsimulationSPD.cxx:197 AliITSsimulationSPD.cxx:198 AliITSsimulationSPD.cxx:199 AliITSsimulationSPD.cxx:200 AliITSsimulationSPD.cxx:201 AliITSsimulationSPD.cxx:202 AliITSsimulationSPD.cxx:203 AliITSsimulationSPD.cxx:204 AliITSsimulationSPD.cxx:205 AliITSsimulationSPD.cxx:206 AliITSsimulationSPD.cxx:207 AliITSsimulationSPD.cxx:208 AliITSsimulationSPD.cxx:209 AliITSsimulationSPD.cxx:210 AliITSsimulationSPD.cxx:211 AliITSsimulationSPD.cxx:212 AliITSsimulationSPD.cxx:213 AliITSsimulationSPD.cxx:214 AliITSsimulationSPD.cxx:215 AliITSsimulationSPD.cxx:216 AliITSsimulationSPD.cxx:217 AliITSsimulationSPD.cxx:218 AliITSsimulationSPD.cxx:219 AliITSsimulationSPD.cxx:220 AliITSsimulationSPD.cxx:221 AliITSsimulationSPD.cxx:222 AliITSsimulationSPD.cxx:223 AliITSsimulationSPD.cxx:224 AliITSsimulationSPD.cxx:225 AliITSsimulationSPD.cxx:226 AliITSsimulationSPD.cxx:227 AliITSsimulationSPD.cxx:228 AliITSsimulationSPD.cxx:229 AliITSsimulationSPD.cxx:230 AliITSsimulationSPD.cxx:231 AliITSsimulationSPD.cxx:232 AliITSsimulationSPD.cxx:233 AliITSsimulationSPD.cxx:234 AliITSsimulationSPD.cxx:235 AliITSsimulationSPD.cxx:236 AliITSsimulationSPD.cxx:237 AliITSsimulationSPD.cxx:238 AliITSsimulationSPD.cxx:239 AliITSsimulationSPD.cxx:240 AliITSsimulationSPD.cxx:241 AliITSsimulationSPD.cxx:242 AliITSsimulationSPD.cxx:243 AliITSsimulationSPD.cxx:244 AliITSsimulationSPD.cxx:245 AliITSsimulationSPD.cxx:246 AliITSsimulationSPD.cxx:247 AliITSsimulationSPD.cxx:248 AliITSsimulationSPD.cxx:249 AliITSsimulationSPD.cxx:250 AliITSsimulationSPD.cxx:251 AliITSsimulationSPD.cxx:252 AliITSsimulationSPD.cxx:253 AliITSsimulationSPD.cxx:254 AliITSsimulationSPD.cxx:255 AliITSsimulationSPD.cxx:256 AliITSsimulationSPD.cxx:257 AliITSsimulationSPD.cxx:258 AliITSsimulationSPD.cxx:259 AliITSsimulationSPD.cxx:260 AliITSsimulationSPD.cxx:261 AliITSsimulationSPD.cxx:262 AliITSsimulationSPD.cxx:263 AliITSsimulationSPD.cxx:264 AliITSsimulationSPD.cxx:265 AliITSsimulationSPD.cxx:266 AliITSsimulationSPD.cxx:267 AliITSsimulationSPD.cxx:268 AliITSsimulationSPD.cxx:269 AliITSsimulationSPD.cxx:270 AliITSsimulationSPD.cxx:271 AliITSsimulationSPD.cxx:272 AliITSsimulationSPD.cxx:273 AliITSsimulationSPD.cxx:274 AliITSsimulationSPD.cxx:275 AliITSsimulationSPD.cxx:276 AliITSsimulationSPD.cxx:277 AliITSsimulationSPD.cxx:278 AliITSsimulationSPD.cxx:279 AliITSsimulationSPD.cxx:280 AliITSsimulationSPD.cxx:281 AliITSsimulationSPD.cxx:282 AliITSsimulationSPD.cxx:283 AliITSsimulationSPD.cxx:284 AliITSsimulationSPD.cxx:285 AliITSsimulationSPD.cxx:286 AliITSsimulationSPD.cxx:287 AliITSsimulationSPD.cxx:288 AliITSsimulationSPD.cxx:289 AliITSsimulationSPD.cxx:290 AliITSsimulationSPD.cxx:291 AliITSsimulationSPD.cxx:292 AliITSsimulationSPD.cxx:293 AliITSsimulationSPD.cxx:294 AliITSsimulationSPD.cxx:295 AliITSsimulationSPD.cxx:296 AliITSsimulationSPD.cxx:297 AliITSsimulationSPD.cxx:298 AliITSsimulationSPD.cxx:299 AliITSsimulationSPD.cxx:300 AliITSsimulationSPD.cxx:301 AliITSsimulationSPD.cxx:302 AliITSsimulationSPD.cxx:303 AliITSsimulationSPD.cxx:304 AliITSsimulationSPD.cxx:305 AliITSsimulationSPD.cxx:306 AliITSsimulationSPD.cxx:307 AliITSsimulationSPD.cxx:308 AliITSsimulationSPD.cxx:309 AliITSsimulationSPD.cxx:310 AliITSsimulationSPD.cxx:311 AliITSsimulationSPD.cxx:312 AliITSsimulationSPD.cxx:313 AliITSsimulationSPD.cxx:314 AliITSsimulationSPD.cxx:315 AliITSsimulationSPD.cxx:316 AliITSsimulationSPD.cxx:317 AliITSsimulationSPD.cxx:318 AliITSsimulationSPD.cxx:319 AliITSsimulationSPD.cxx:320 AliITSsimulationSPD.cxx:321 AliITSsimulationSPD.cxx:322 AliITSsimulationSPD.cxx:323 AliITSsimulationSPD.cxx:324 AliITSsimulationSPD.cxx:325 AliITSsimulationSPD.cxx:326 AliITSsimulationSPD.cxx:327 AliITSsimulationSPD.cxx:328 AliITSsimulationSPD.cxx:329 AliITSsimulationSPD.cxx:330 AliITSsimulationSPD.cxx:331 AliITSsimulationSPD.cxx:332 AliITSsimulationSPD.cxx:333 AliITSsimulationSPD.cxx:334 AliITSsimulationSPD.cxx:335 AliITSsimulationSPD.cxx:336 AliITSsimulationSPD.cxx:337 AliITSsimulationSPD.cxx:338 AliITSsimulationSPD.cxx:339 AliITSsimulationSPD.cxx:340 AliITSsimulationSPD.cxx:341 AliITSsimulationSPD.cxx:342 AliITSsimulationSPD.cxx:343 AliITSsimulationSPD.cxx:344 AliITSsimulationSPD.cxx:345 AliITSsimulationSPD.cxx:346 AliITSsimulationSPD.cxx:347 AliITSsimulationSPD.cxx:348 AliITSsimulationSPD.cxx:349 AliITSsimulationSPD.cxx:350 AliITSsimulationSPD.cxx:351 AliITSsimulationSPD.cxx:352 AliITSsimulationSPD.cxx:353 AliITSsimulationSPD.cxx:354 AliITSsimulationSPD.cxx:355 AliITSsimulationSPD.cxx:356 AliITSsimulationSPD.cxx:357 AliITSsimulationSPD.cxx:358 AliITSsimulationSPD.cxx:359 AliITSsimulationSPD.cxx:360 AliITSsimulationSPD.cxx:361 AliITSsimulationSPD.cxx:362 AliITSsimulationSPD.cxx:363 AliITSsimulationSPD.cxx:364 AliITSsimulationSPD.cxx:365 AliITSsimulationSPD.cxx:366 AliITSsimulationSPD.cxx:367 AliITSsimulationSPD.cxx:368 AliITSsimulationSPD.cxx:369 AliITSsimulationSPD.cxx:370 AliITSsimulationSPD.cxx:371 AliITSsimulationSPD.cxx:372 AliITSsimulationSPD.cxx:373 AliITSsimulationSPD.cxx:374 AliITSsimulationSPD.cxx:375 AliITSsimulationSPD.cxx:376 AliITSsimulationSPD.cxx:377 AliITSsimulationSPD.cxx:378 AliITSsimulationSPD.cxx:379 AliITSsimulationSPD.cxx:380 AliITSsimulationSPD.cxx:381 AliITSsimulationSPD.cxx:382 AliITSsimulationSPD.cxx:383 AliITSsimulationSPD.cxx:384 AliITSsimulationSPD.cxx:385 AliITSsimulationSPD.cxx:386 AliITSsimulationSPD.cxx:387 AliITSsimulationSPD.cxx:388 AliITSsimulationSPD.cxx:389 AliITSsimulationSPD.cxx:390 AliITSsimulationSPD.cxx:391 AliITSsimulationSPD.cxx:392 AliITSsimulationSPD.cxx:393 AliITSsimulationSPD.cxx:394 AliITSsimulationSPD.cxx:395 AliITSsimulationSPD.cxx:396 AliITSsimulationSPD.cxx:397 AliITSsimulationSPD.cxx:398 AliITSsimulationSPD.cxx:399 AliITSsimulationSPD.cxx:400 AliITSsimulationSPD.cxx:401 AliITSsimulationSPD.cxx:402 AliITSsimulationSPD.cxx:403 AliITSsimulationSPD.cxx:404 AliITSsimulationSPD.cxx:405 AliITSsimulationSPD.cxx:406 AliITSsimulationSPD.cxx:407 AliITSsimulationSPD.cxx:408 AliITSsimulationSPD.cxx:409 AliITSsimulationSPD.cxx:410 AliITSsimulationSPD.cxx:411 AliITSsimulationSPD.cxx:412 AliITSsimulationSPD.cxx:413 AliITSsimulationSPD.cxx:414 AliITSsimulationSPD.cxx:415 AliITSsimulationSPD.cxx:416 AliITSsimulationSPD.cxx:417 AliITSsimulationSPD.cxx:418 AliITSsimulationSPD.cxx:419 AliITSsimulationSPD.cxx:420 AliITSsimulationSPD.cxx:421 AliITSsimulationSPD.cxx:422 AliITSsimulationSPD.cxx:423 AliITSsimulationSPD.cxx:424 AliITSsimulationSPD.cxx:425 AliITSsimulationSPD.cxx:426 AliITSsimulationSPD.cxx:427 AliITSsimulationSPD.cxx:428 AliITSsimulationSPD.cxx:429 AliITSsimulationSPD.cxx:430 AliITSsimulationSPD.cxx:431 AliITSsimulationSPD.cxx:432 AliITSsimulationSPD.cxx:433 AliITSsimulationSPD.cxx:434 AliITSsimulationSPD.cxx:435 AliITSsimulationSPD.cxx:436 AliITSsimulationSPD.cxx:437 AliITSsimulationSPD.cxx:438 AliITSsimulationSPD.cxx:439 AliITSsimulationSPD.cxx:440 AliITSsimulationSPD.cxx:441 AliITSsimulationSPD.cxx:442 AliITSsimulationSPD.cxx:443 AliITSsimulationSPD.cxx:444 AliITSsimulationSPD.cxx:445 AliITSsimulationSPD.cxx:446 AliITSsimulationSPD.cxx:447 AliITSsimulationSPD.cxx:448 AliITSsimulationSPD.cxx:449 AliITSsimulationSPD.cxx:450 AliITSsimulationSPD.cxx:451 AliITSsimulationSPD.cxx:452 AliITSsimulationSPD.cxx:453 AliITSsimulationSPD.cxx:454 AliITSsimulationSPD.cxx:455 AliITSsimulationSPD.cxx:456 AliITSsimulationSPD.cxx:457 AliITSsimulationSPD.cxx:458 AliITSsimulationSPD.cxx:459 AliITSsimulationSPD.cxx:460 AliITSsimulationSPD.cxx:461 AliITSsimulationSPD.cxx:462 AliITSsimulationSPD.cxx:463 AliITSsimulationSPD.cxx:464 AliITSsimulationSPD.cxx:465 AliITSsimulationSPD.cxx:466 AliITSsimulationSPD.cxx:467 AliITSsimulationSPD.cxx:468 AliITSsimulationSPD.cxx:469 AliITSsimulationSPD.cxx:470 AliITSsimulationSPD.cxx:471 AliITSsimulationSPD.cxx:472 AliITSsimulationSPD.cxx:473 AliITSsimulationSPD.cxx:474 AliITSsimulationSPD.cxx:475 AliITSsimulationSPD.cxx:476 AliITSsimulationSPD.cxx:477 AliITSsimulationSPD.cxx:478 AliITSsimulationSPD.cxx:479 AliITSsimulationSPD.cxx:480 AliITSsimulationSPD.cxx:481 AliITSsimulationSPD.cxx:482 AliITSsimulationSPD.cxx:483 AliITSsimulationSPD.cxx:484 AliITSsimulationSPD.cxx:485 AliITSsimulationSPD.cxx:486 AliITSsimulationSPD.cxx:487 AliITSsimulationSPD.cxx:488 AliITSsimulationSPD.cxx:489 AliITSsimulationSPD.cxx:490 AliITSsimulationSPD.cxx:491 AliITSsimulationSPD.cxx:492 AliITSsimulationSPD.cxx:493 AliITSsimulationSPD.cxx:494 AliITSsimulationSPD.cxx:495 AliITSsimulationSPD.cxx:496 AliITSsimulationSPD.cxx:497 AliITSsimulationSPD.cxx:498 AliITSsimulationSPD.cxx:499 AliITSsimulationSPD.cxx:500 AliITSsimulationSPD.cxx:501 AliITSsimulationSPD.cxx:502 AliITSsimulationSPD.cxx:503 AliITSsimulationSPD.cxx:504 AliITSsimulationSPD.cxx:505 AliITSsimulationSPD.cxx:506 AliITSsimulationSPD.cxx:507 AliITSsimulationSPD.cxx:508 AliITSsimulationSPD.cxx:509 AliITSsimulationSPD.cxx:510 AliITSsimulationSPD.cxx:511 AliITSsimulationSPD.cxx:512 AliITSsimulationSPD.cxx:513 AliITSsimulationSPD.cxx:514 AliITSsimulationSPD.cxx:515 AliITSsimulationSPD.cxx:516 AliITSsimulationSPD.cxx:517 AliITSsimulationSPD.cxx:518 AliITSsimulationSPD.cxx:519 AliITSsimulationSPD.cxx:520 AliITSsimulationSPD.cxx:521 AliITSsimulationSPD.cxx:522 AliITSsimulationSPD.cxx:523 AliITSsimulationSPD.cxx:524 AliITSsimulationSPD.cxx:525 AliITSsimulationSPD.cxx:526 AliITSsimulationSPD.cxx:527 AliITSsimulationSPD.cxx:528 AliITSsimulationSPD.cxx:529 AliITSsimulationSPD.cxx:530 AliITSsimulationSPD.cxx:531 AliITSsimulationSPD.cxx:532 AliITSsimulationSPD.cxx:533 AliITSsimulationSPD.cxx:534 AliITSsimulationSPD.cxx:535 AliITSsimulationSPD.cxx:536 AliITSsimulationSPD.cxx:537 AliITSsimulationSPD.cxx:538 AliITSsimulationSPD.cxx:539 AliITSsimulationSPD.cxx:540 AliITSsimulationSPD.cxx:541 AliITSsimulationSPD.cxx:542 AliITSsimulationSPD.cxx:543 AliITSsimulationSPD.cxx:544 AliITSsimulationSPD.cxx:545 AliITSsimulationSPD.cxx:546 AliITSsimulationSPD.cxx:547 AliITSsimulationSPD.cxx:548 AliITSsimulationSPD.cxx:549 AliITSsimulationSPD.cxx:550 AliITSsimulationSPD.cxx:551 AliITSsimulationSPD.cxx:552 AliITSsimulationSPD.cxx:553 AliITSsimulationSPD.cxx:554 AliITSsimulationSPD.cxx:555 AliITSsimulationSPD.cxx:556 AliITSsimulationSPD.cxx:557 AliITSsimulationSPD.cxx:558 AliITSsimulationSPD.cxx:559 AliITSsimulationSPD.cxx:560 AliITSsimulationSPD.cxx:561 AliITSsimulationSPD.cxx:562 AliITSsimulationSPD.cxx:563 AliITSsimulationSPD.cxx:564 AliITSsimulationSPD.cxx:565 AliITSsimulationSPD.cxx:566 AliITSsimulationSPD.cxx:567 AliITSsimulationSPD.cxx:568 AliITSsimulationSPD.cxx:569 AliITSsimulationSPD.cxx:570 AliITSsimulationSPD.cxx:571 AliITSsimulationSPD.cxx:572 AliITSsimulationSPD.cxx:573 AliITSsimulationSPD.cxx:574 AliITSsimulationSPD.cxx:575 AliITSsimulationSPD.cxx:576 AliITSsimulationSPD.cxx:577 AliITSsimulationSPD.cxx:578 AliITSsimulationSPD.cxx:579 AliITSsimulationSPD.cxx:580 AliITSsimulationSPD.cxx:581 AliITSsimulationSPD.cxx:582 AliITSsimulationSPD.cxx:583 AliITSsimulationSPD.cxx:584 AliITSsimulationSPD.cxx:585 AliITSsimulationSPD.cxx:586 AliITSsimulationSPD.cxx:587 AliITSsimulationSPD.cxx:588 AliITSsimulationSPD.cxx:589 AliITSsimulationSPD.cxx:590 AliITSsimulationSPD.cxx:591 AliITSsimulationSPD.cxx:592 AliITSsimulationSPD.cxx:593 AliITSsimulationSPD.cxx:594 AliITSsimulationSPD.cxx:595 AliITSsimulationSPD.cxx:596 AliITSsimulationSPD.cxx:597 AliITSsimulationSPD.cxx:598 AliITSsimulationSPD.cxx:599 AliITSsimulationSPD.cxx:600 AliITSsimulationSPD.cxx:601 AliITSsimulationSPD.cxx:602 AliITSsimulationSPD.cxx:603 AliITSsimulationSPD.cxx:604 AliITSsimulationSPD.cxx:605 AliITSsimulationSPD.cxx:606 AliITSsimulationSPD.cxx:607 AliITSsimulationSPD.cxx:608 AliITSsimulationSPD.cxx:609 AliITSsimulationSPD.cxx:610 AliITSsimulationSPD.cxx:611 AliITSsimulationSPD.cxx:612 AliITSsimulationSPD.cxx:613 AliITSsimulationSPD.cxx:614 AliITSsimulationSPD.cxx:615 AliITSsimulationSPD.cxx:616 AliITSsimulationSPD.cxx:617 AliITSsimulationSPD.cxx:618 AliITSsimulationSPD.cxx:619 AliITSsimulationSPD.cxx:620 AliITSsimulationSPD.cxx:621 AliITSsimulationSPD.cxx:622 AliITSsimulationSPD.cxx:623 AliITSsimulationSPD.cxx:624 AliITSsimulationSPD.cxx:625 AliITSsimulationSPD.cxx:626 AliITSsimulationSPD.cxx:627 AliITSsimulationSPD.cxx:628 AliITSsimulationSPD.cxx:629 AliITSsimulationSPD.cxx:630 AliITSsimulationSPD.cxx:631 AliITSsimulationSPD.cxx:632 AliITSsimulationSPD.cxx:633 AliITSsimulationSPD.cxx:634 AliITSsimulationSPD.cxx:635 AliITSsimulationSPD.cxx:636 AliITSsimulationSPD.cxx:637 AliITSsimulationSPD.cxx:638 AliITSsimulationSPD.cxx:639 AliITSsimulationSPD.cxx:640 AliITSsimulationSPD.cxx:641 AliITSsimulationSPD.cxx:642 AliITSsimulationSPD.cxx:643 AliITSsimulationSPD.cxx:644 AliITSsimulationSPD.cxx:645 AliITSsimulationSPD.cxx:646 AliITSsimulationSPD.cxx:647 AliITSsimulationSPD.cxx:648 AliITSsimulationSPD.cxx:649 AliITSsimulationSPD.cxx:650 AliITSsimulationSPD.cxx:651 AliITSsimulationSPD.cxx:652 AliITSsimulationSPD.cxx:653 AliITSsimulationSPD.cxx:654 AliITSsimulationSPD.cxx:655 AliITSsimulationSPD.cxx:656 AliITSsimulationSPD.cxx:657 AliITSsimulationSPD.cxx:658 AliITSsimulationSPD.cxx:659 AliITSsimulationSPD.cxx:660 AliITSsimulationSPD.cxx:661 AliITSsimulationSPD.cxx:662 AliITSsimulationSPD.cxx:663 AliITSsimulationSPD.cxx:664 AliITSsimulationSPD.cxx:665 AliITSsimulationSPD.cxx:666 AliITSsimulationSPD.cxx:667 AliITSsimulationSPD.cxx:668 AliITSsimulationSPD.cxx:669 AliITSsimulationSPD.cxx:670 AliITSsimulationSPD.cxx:671 AliITSsimulationSPD.cxx:672 AliITSsimulationSPD.cxx:673 AliITSsimulationSPD.cxx:674 AliITSsimulationSPD.cxx:675 AliITSsimulationSPD.cxx:676 AliITSsimulationSPD.cxx:677 AliITSsimulationSPD.cxx:678 AliITSsimulationSPD.cxx:679 AliITSsimulationSPD.cxx:680 AliITSsimulationSPD.cxx:681 AliITSsimulationSPD.cxx:682 AliITSsimulationSPD.cxx:683 AliITSsimulationSPD.cxx:684 AliITSsimulationSPD.cxx:685 AliITSsimulationSPD.cxx:686 AliITSsimulationSPD.cxx:687 AliITSsimulationSPD.cxx:688 AliITSsimulationSPD.cxx:689 AliITSsimulationSPD.cxx:690 AliITSsimulationSPD.cxx:691 AliITSsimulationSPD.cxx:692 AliITSsimulationSPD.cxx:693 AliITSsimulationSPD.cxx:694 AliITSsimulationSPD.cxx:695 AliITSsimulationSPD.cxx:696 AliITSsimulationSPD.cxx:697 AliITSsimulationSPD.cxx:698 AliITSsimulationSPD.cxx:699 AliITSsimulationSPD.cxx:700 AliITSsimulationSPD.cxx:701 AliITSsimulationSPD.cxx:702 AliITSsimulationSPD.cxx:703 AliITSsimulationSPD.cxx:704 AliITSsimulationSPD.cxx:705 AliITSsimulationSPD.cxx:706 AliITSsimulationSPD.cxx:707 AliITSsimulationSPD.cxx:708 AliITSsimulationSPD.cxx:709 AliITSsimulationSPD.cxx:710 AliITSsimulationSPD.cxx:711 AliITSsimulationSPD.cxx:712 AliITSsimulationSPD.cxx:713 AliITSsimulationSPD.cxx:714 AliITSsimulationSPD.cxx:715 AliITSsimulationSPD.cxx:716 AliITSsimulationSPD.cxx:717 AliITSsimulationSPD.cxx:718 AliITSsimulationSPD.cxx:719 AliITSsimulationSPD.cxx:720 AliITSsimulationSPD.cxx:721 AliITSsimulationSPD.cxx:722 AliITSsimulationSPD.cxx:723 AliITSsimulationSPD.cxx:724 AliITSsimulationSPD.cxx:725 AliITSsimulationSPD.cxx:726 AliITSsimulationSPD.cxx:727 AliITSsimulationSPD.cxx:728 AliITSsimulationSPD.cxx:729 AliITSsimulationSPD.cxx:730 AliITSsimulationSPD.cxx:731 AliITSsimulationSPD.cxx:732 AliITSsimulationSPD.cxx:733 AliITSsimulationSPD.cxx:734 AliITSsimulationSPD.cxx:735 AliITSsimulationSPD.cxx:736 AliITSsimulationSPD.cxx:737 AliITSsimulationSPD.cxx:738 AliITSsimulationSPD.cxx:739 AliITSsimulationSPD.cxx:740 AliITSsimulationSPD.cxx:741 AliITSsimulationSPD.cxx:742 AliITSsimulationSPD.cxx:743 AliITSsimulationSPD.cxx:744 AliITSsimulationSPD.cxx:745 AliITSsimulationSPD.cxx:746 AliITSsimulationSPD.cxx:747 AliITSsimulationSPD.cxx:748 AliITSsimulationSPD.cxx:749 AliITSsimulationSPD.cxx:750 AliITSsimulationSPD.cxx:751 AliITSsimulationSPD.cxx:752 AliITSsimulationSPD.cxx:753 AliITSsimulationSPD.cxx:754 AliITSsimulationSPD.cxx:755 AliITSsimulationSPD.cxx:756 AliITSsimulationSPD.cxx:757 AliITSsimulationSPD.cxx:758 AliITSsimulationSPD.cxx:759 AliITSsimulationSPD.cxx:760 AliITSsimulationSPD.cxx:761 AliITSsimulationSPD.cxx:762 AliITSsimulationSPD.cxx:763 AliITSsimulationSPD.cxx:764 AliITSsimulationSPD.cxx:765 AliITSsimulationSPD.cxx:766 AliITSsimulationSPD.cxx:767 AliITSsimulationSPD.cxx:768 AliITSsimulationSPD.cxx:769 AliITSsimulationSPD.cxx:770 AliITSsimulationSPD.cxx:771 AliITSsimulationSPD.cxx:772 AliITSsimulationSPD.cxx:773 AliITSsimulationSPD.cxx:774 AliITSsimulationSPD.cxx:775 AliITSsimulationSPD.cxx:776 AliITSsimulationSPD.cxx:777 AliITSsimulationSPD.cxx:778 AliITSsimulationSPD.cxx:779 AliITSsimulationSPD.cxx:780 AliITSsimulationSPD.cxx:781 AliITSsimulationSPD.cxx:782 AliITSsimulationSPD.cxx:783 AliITSsimulationSPD.cxx:784 AliITSsimulationSPD.cxx:785 AliITSsimulationSPD.cxx:786 AliITSsimulationSPD.cxx:787 AliITSsimulationSPD.cxx:788 AliITSsimulationSPD.cxx:789 AliITSsimulationSPD.cxx:790 AliITSsimulationSPD.cxx:791 AliITSsimulationSPD.cxx:792 AliITSsimulationSPD.cxx:793 AliITSsimulationSPD.cxx:794 AliITSsimulationSPD.cxx:795 AliITSsimulationSPD.cxx:796 AliITSsimulationSPD.cxx:797 AliITSsimulationSPD.cxx:798 AliITSsimulationSPD.cxx:799 AliITSsimulationSPD.cxx:800 AliITSsimulationSPD.cxx:801 AliITSsimulationSPD.cxx:802 AliITSsimulationSPD.cxx:803 AliITSsimulationSPD.cxx:804 AliITSsimulationSPD.cxx:805 AliITSsimulationSPD.cxx:806 AliITSsimulationSPD.cxx:807 AliITSsimulationSPD.cxx:808 AliITSsimulationSPD.cxx:809 AliITSsimulationSPD.cxx:810 AliITSsimulationSPD.cxx:811 AliITSsimulationSPD.cxx:812 AliITSsimulationSPD.cxx:813 AliITSsimulationSPD.cxx:814 AliITSsimulationSPD.cxx:815 AliITSsimulationSPD.cxx:816 AliITSsimulationSPD.cxx:817 AliITSsimulationSPD.cxx:818 AliITSsimulationSPD.cxx:819 AliITSsimulationSPD.cxx:820 AliITSsimulationSPD.cxx:821 AliITSsimulationSPD.cxx:822 AliITSsimulationSPD.cxx:823 AliITSsimulationSPD.cxx:824 AliITSsimulationSPD.cxx:825 AliITSsimulationSPD.cxx:826 AliITSsimulationSPD.cxx:827 AliITSsimulationSPD.cxx:828 AliITSsimulationSPD.cxx:829 AliITSsimulationSPD.cxx:830 AliITSsimulationSPD.cxx:831 AliITSsimulationSPD.cxx:832 AliITSsimulationSPD.cxx:833 AliITSsimulationSPD.cxx:834 AliITSsimulationSPD.cxx:835 AliITSsimulationSPD.cxx:836 AliITSsimulationSPD.cxx:837 AliITSsimulationSPD.cxx:838 AliITSsimulationSPD.cxx:839 AliITSsimulationSPD.cxx:840 AliITSsimulationSPD.cxx:841 AliITSsimulationSPD.cxx:842 AliITSsimulationSPD.cxx:843 AliITSsimulationSPD.cxx:844 AliITSsimulationSPD.cxx:845 AliITSsimulationSPD.cxx:846 AliITSsimulationSPD.cxx:847 AliITSsimulationSPD.cxx:848 AliITSsimulationSPD.cxx:849 AliITSsimulationSPD.cxx:850 AliITSsimulationSPD.cxx:851 AliITSsimulationSPD.cxx:852 AliITSsimulationSPD.cxx:853 AliITSsimulationSPD.cxx:854 AliITSsimulationSPD.cxx:855 AliITSsimulationSPD.cxx:856 AliITSsimulationSPD.cxx:857 AliITSsimulationSPD.cxx:858 AliITSsimulationSPD.cxx:859 AliITSsimulationSPD.cxx:860 AliITSsimulationSPD.cxx:861 AliITSsimulationSPD.cxx:862 AliITSsimulationSPD.cxx:863 AliITSsimulationSPD.cxx:864 AliITSsimulationSPD.cxx:865 AliITSsimulationSPD.cxx:866 AliITSsimulationSPD.cxx:867 AliITSsimulationSPD.cxx:868 AliITSsimulationSPD.cxx:869 AliITSsimulationSPD.cxx:870 AliITSsimulationSPD.cxx:871 AliITSsimulationSPD.cxx:872 AliITSsimulationSPD.cxx:873 AliITSsimulationSPD.cxx:874 AliITSsimulationSPD.cxx:875 AliITSsimulationSPD.cxx:876 AliITSsimulationSPD.cxx:877 AliITSsimulationSPD.cxx:878 AliITSsimulationSPD.cxx:879 AliITSsimulationSPD.cxx:880 AliITSsimulationSPD.cxx:881 AliITSsimulationSPD.cxx:882 AliITSsimulationSPD.cxx:883 AliITSsimulationSPD.cxx:884 AliITSsimulationSPD.cxx:885 AliITSsimulationSPD.cxx:886 AliITSsimulationSPD.cxx:887 AliITSsimulationSPD.cxx:888 AliITSsimulationSPD.cxx:889 AliITSsimulationSPD.cxx:890 AliITSsimulationSPD.cxx:891 AliITSsimulationSPD.cxx:892 AliITSsimulationSPD.cxx:893 AliITSsimulationSPD.cxx:894 AliITSsimulationSPD.cxx:895 AliITSsimulationSPD.cxx:896 AliITSsimulationSPD.cxx:897 AliITSsimulationSPD.cxx:898 AliITSsimulationSPD.cxx:899 AliITSsimulationSPD.cxx:900 AliITSsimulationSPD.cxx:901 AliITSsimulationSPD.cxx:902 AliITSsimulationSPD.cxx:903 AliITSsimulationSPD.cxx:904 AliITSsimulationSPD.cxx:905 AliITSsimulationSPD.cxx:906 AliITSsimulationSPD.cxx:907 AliITSsimulationSPD.cxx:908 AliITSsimulationSPD.cxx:909 AliITSsimulationSPD.cxx:910 AliITSsimulationSPD.cxx:911 AliITSsimulationSPD.cxx:912 AliITSsimulationSPD.cxx:913 AliITSsimulationSPD.cxx:914 AliITSsimulationSPD.cxx:915 AliITSsimulationSPD.cxx:916 AliITSsimulationSPD.cxx:917 AliITSsimulationSPD.cxx:918 AliITSsimulationSPD.cxx:919 AliITSsimulationSPD.cxx:920 AliITSsimulationSPD.cxx:921 AliITSsimulationSPD.cxx:922 AliITSsimulationSPD.cxx:923 AliITSsimulationSPD.cxx:924 AliITSsimulationSPD.cxx:925 AliITSsimulationSPD.cxx:926 AliITSsimulationSPD.cxx:927 AliITSsimulationSPD.cxx:928 AliITSsimulationSPD.cxx:929 AliITSsimulationSPD.cxx:930 AliITSsimulationSPD.cxx:931 AliITSsimulationSPD.cxx:932 AliITSsimulationSPD.cxx:933 AliITSsimulationSPD.cxx:934 AliITSsimulationSPD.cxx:935 AliITSsimulationSPD.cxx:936 AliITSsimulationSPD.cxx:937 AliITSsimulationSPD.cxx:938 AliITSsimulationSPD.cxx:939 AliITSsimulationSPD.cxx:940 AliITSsimulationSPD.cxx:941 AliITSsimulationSPD.cxx:942 AliITSsimulationSPD.cxx:943 AliITSsimulationSPD.cxx:944 AliITSsimulationSPD.cxx:945 AliITSsimulationSPD.cxx:946 AliITSsimulationSPD.cxx:947 AliITSsimulationSPD.cxx:948 AliITSsimulationSPD.cxx:949 AliITSsimulationSPD.cxx:950 AliITSsimulationSPD.cxx:951 AliITSsimulationSPD.cxx:952 AliITSsimulationSPD.cxx:953 AliITSsimulationSPD.cxx:954 AliITSsimulationSPD.cxx:955 AliITSsimulationSPD.cxx:956 AliITSsimulationSPD.cxx:957 AliITSsimulationSPD.cxx:958 AliITSsimulationSPD.cxx:959 AliITSsimulationSPD.cxx:960 AliITSsimulationSPD.cxx:961 AliITSsimulationSPD.cxx:962 AliITSsimulationSPD.cxx:963 AliITSsimulationSPD.cxx:964 AliITSsimulationSPD.cxx:965 AliITSsimulationSPD.cxx:966 AliITSsimulationSPD.cxx:967 AliITSsimulationSPD.cxx:968 AliITSsimulationSPD.cxx:969 AliITSsimulationSPD.cxx:970 AliITSsimulationSPD.cxx:971 AliITSsimulationSPD.cxx:972 AliITSsimulationSPD.cxx:973 AliITSsimulationSPD.cxx:974 AliITSsimulationSPD.cxx:975 AliITSsimulationSPD.cxx:976 AliITSsimulationSPD.cxx:977 AliITSsimulationSPD.cxx:978 AliITSsimulationSPD.cxx:979 AliITSsimulationSPD.cxx:980 AliITSsimulationSPD.cxx:981 AliITSsimulationSPD.cxx:982 AliITSsimulationSPD.cxx:983 AliITSsimulationSPD.cxx:984 AliITSsimulationSPD.cxx:985 AliITSsimulationSPD.cxx:986 AliITSsimulationSPD.cxx:987 AliITSsimulationSPD.cxx:988 AliITSsimulationSPD.cxx:989 AliITSsimulationSPD.cxx:990 AliITSsimulationSPD.cxx:991 AliITSsimulationSPD.cxx:992 AliITSsimulationSPD.cxx:993 AliITSsimulationSPD.cxx:994 AliITSsimulationSPD.cxx:995 AliITSsimulationSPD.cxx:996 AliITSsimulationSPD.cxx:997 AliITSsimulationSPD.cxx:998 AliITSsimulationSPD.cxx:999 AliITSsimulationSPD.cxx:1000 AliITSsimulationSPD.cxx:1001 AliITSsimulationSPD.cxx:1002 AliITSsimulationSPD.cxx:1003 AliITSsimulationSPD.cxx:1004 AliITSsimulationSPD.cxx:1005 AliITSsimulationSPD.cxx:1006 AliITSsimulationSPD.cxx:1007 AliITSsimulationSPD.cxx:1008 AliITSsimulationSPD.cxx:1009 AliITSsimulationSPD.cxx:1010 AliITSsimulationSPD.cxx:1011 AliITSsimulationSPD.cxx:1012 AliITSsimulationSPD.cxx:1013 AliITSsimulationSPD.cxx:1014 AliITSsimulationSPD.cxx:1015 AliITSsimulationSPD.cxx:1016 AliITSsimulationSPD.cxx:1017 AliITSsimulationSPD.cxx:1018 AliITSsimulationSPD.cxx:1019 AliITSsimulationSPD.cxx:1020 AliITSsimulationSPD.cxx:1021 AliITSsimulationSPD.cxx:1022 AliITSsimulationSPD.cxx:1023 AliITSsimulationSPD.cxx:1024 AliITSsimulationSPD.cxx:1025 AliITSsimulationSPD.cxx:1026 AliITSsimulationSPD.cxx:1027 AliITSsimulationSPD.cxx:1028 AliITSsimulationSPD.cxx:1029 AliITSsimulationSPD.cxx:1030