else \r
if(fname.Contains("pass3")) \r
fRecoPass=3;\r
+ else \r
+ if(fname.Contains("pass4")) \r
+ fRecoPass=4;\r
}\r
}\r
if(fRecoPass<0){\r
clu->SetEmcCpvDistance(r); \r
clu->SetChi2(TestLambda(clu->E(),clu->GetM20(),clu->GetM02())); //not yet implemented\r
clu->SetTOF(EvalTOF(&cluPHOS,cells)); \r
+ Double_t minDist=clu->GetDistanceToBadChannel() ;//Already calculated
+ DistanceToBadChannel(mod,&locPos,minDist);
+ clu->SetDistanceToBadChannel(minDist) ;
\r
}\r
}\r
//correct distance to track\r
Double_t dx=clu->GetTrackDx() ;\r
Double_t dz=clu->GetTrackDz() ;\r
+ TVector3 locPos;\r
+ fPHOSGeo->Global2Local(locPos,global,mod) ;\r
if(dx!=-999.){ //there is matched track\r
- TVector3 locPos;\r
- fPHOSGeo->Global2Local(locPos,global,mod) ;\r
dx+=locPos.X()-locPosOld.X() ;\r
dz+=locPos.Z()-locPosOld.Z() ; \r
clu->SetTrackDistance(dx,dz);\r
\r
clu->SetChi2(TestLambda(clu->E(),clu->GetM20(),clu->GetM02())); //not yet implemented\r
clu->SetTOF(EvalTOF(&cluPHOS,cells)); \r
+ Double_t minDist=clu->GetDistanceToBadChannel() ;//Already calculated
+ DistanceToBadChannel(mod,&locPos,minDist);
+ clu->SetDistanceToBadChannel(minDist) ;
}\r
}\r
\r
return tof ;\r
\r
}\r
+//________________________________________________________________________
+void AliPHOSTenderSupply::DistanceToBadChannel(Int_t mod, TVector3 * locPos, Double_t &minDist){
+ //Check if distance to bad channel was reduced
+ Int_t range = minDist/2.2 +1 ; //Distance at which bad channels should be serached
+
+ Int_t relid[4]={0,0,0,0} ;
+ fPHOSGeo->RelPosToRelId(mod, locPos->X(), locPos->Z(), relid) ;
+ Int_t xmin=TMath::Max(1,relid[2]-range) ;
+ Int_t xmax=TMath::Min(64,relid[2]+range) ;
+ Int_t zmin=TMath::Max(1,relid[3]-range) ;
+ Int_t zmax=TMath::Min(56,relid[3]+range) ;
+
+ Float_t x=0.,z=0.;
+ for(Int_t ix=xmin;ix<=xmax;ix++){
+ for(Int_t iz=zmin;iz<=zmax;iz++){
+ if(fPHOSBadMap[mod]->GetBinContent(ix,iz)>0){ //Bad channel
+ Int_t relidBC[4]={mod,0,ix,iz} ;
+ fPHOSGeo->RelPosInModule(relidBC,x,z);
+ Double_t dist = TMath::Sqrt((x-locPos->X())*(x-locPos->X()) + (z-locPos->Z())*(z-locPos->Z()));
+ if(dist<minDist) minDist = dist;
+ }
+ }
+ }
+
+}
+