- //add dead zone virtual "cluster"
- if (i<2){
- for (Float_t ydead = 0; ydead < 1.31 ; ydead+=(i+1.)*0.018){
- Int_t lab[4] = {0,0,0,detector};
- Int_t info[3] = {0,0,0};
- Float_t hit[5]={0,0,0.004/12.,0.001/12.,0};
- if (i==0) hit[0] =ydead-0.4;
- if (i==1) hit[0]=ydead-3.75;
- hit[1] =-0.04;
- if (TMath::Abs(fgLayers[i].GetDetector(detector).GetZmax()-hit[1])<2.)
- fgLayers[i].InsertCluster(new AliITSRecPoint(lab, hit, info));
- hit[1]=-7.05;
- if (TMath::Abs(fgLayers[i].GetDetector(detector).GetZmax()-hit[1])<2.)
- fgLayers[i].InsertCluster(new AliITSRecPoint(lab, hit, info));
- hit[1]=-7.15;
- if (TMath::Abs(fgLayers[i].GetDetector(detector).GetZmax()-hit[1])<2.)
- fgLayers[i].InsertCluster(new AliITSRecPoint(lab, hit, info));
- hit[1] =0.06;
- if (TMath::Abs(fgLayers[i].GetDetector(detector).GetZmax()-hit[1])<2.)
- fgLayers[i].InsertCluster(new AliITSRecPoint(lab, hit, info));
- hit[1]=7.05;
- if (TMath::Abs(fgLayers[i].GetDetector(detector).GetZmax()-hit[1])<2.)
- fgLayers[i].InsertCluster(new AliITSRecPoint(lab, hit, info));
- hit[1]=7.25;
- if (TMath::Abs(fgLayers[i].GetDetector(detector).GetZmax()-hit[1])<2.)
- fgLayers[i].InsertCluster(new AliITSRecPoint(lab, hit, info));
+ // add dead zone "virtual" cluster in SPD, if there is a cluster within
+ // zwindow cm from the dead zone
+ if (i<2 && AliITSReconstructor::GetRecoParam()->GetAddVirtualClustersInDeadZone()) {
+ for (Float_t xdead = 0; xdead < kSPDdetxlength; xdead += (i+1.)*AliITSReconstructor::GetRecoParam()->GetXPassDeadZoneHits()) {
+ Int_t lab[4] = {0,0,0,detector};
+ Int_t info[3] = {0,0,i};
+ Float_t q = 0.;
+ Float_t hit[5] = {xdead,
+ 0.,
+ AliITSReconstructor::GetRecoParam()->GetSigmaXDeadZoneHit2(),
+ AliITSReconstructor::GetRecoParam()->GetSigmaZDeadZoneHit2(),
+ q};
+ Bool_t local = kTRUE;
+ Double_t zwindow = AliITSReconstructor::GetRecoParam()->GetZWindowDeadZone();
+ hit[1] = fSPDdetzcentre[0]+0.5*kSPDdetzlength;
+ if (TMath::Abs(fgLayers[i].GetDetector(detector).GetZmax()-hit[1])<zwindow)
+ fgLayers[i].InsertCluster(new AliITSRecPoint(lab,hit,info,local));
+ hit[1] = fSPDdetzcentre[1]-0.5*kSPDdetzlength;
+ if (TMath::Abs(fgLayers[i].GetDetector(detector).GetZmax()-hit[1])<zwindow)
+ fgLayers[i].InsertCluster(new AliITSRecPoint(lab,hit,info,local));
+ hit[1] = fSPDdetzcentre[1]+0.5*kSPDdetzlength;
+ if (TMath::Abs(fgLayers[i].GetDetector(detector).GetZmax()-hit[1])<zwindow)
+ fgLayers[i].InsertCluster(new AliITSRecPoint(lab,hit,info,local));
+ hit[1] = fSPDdetzcentre[2]-0.5*kSPDdetzlength;
+ if (TMath::Abs(fgLayers[i].GetDetector(detector).GetZmax()-hit[1])<zwindow)
+ fgLayers[i].InsertCluster(new AliITSRecPoint(lab,hit,info,local));
+ hit[1] = fSPDdetzcentre[2]+0.5*kSPDdetzlength;
+ if (TMath::Abs(fgLayers[i].GetDetector(detector).GetZmax()-hit[1])<zwindow)
+ fgLayers[i].InsertCluster(new AliITSRecPoint(lab,hit,info,local));
+ hit[1] = fSPDdetzcentre[3]-0.5*kSPDdetzlength;
+ if (TMath::Abs(fgLayers[i].GetDetector(detector).GetZmax()-hit[1])<zwindow)
+ fgLayers[i].InsertCluster(new AliITSRecPoint(lab,hit,info,local));