-
-Int_t getNStaves(AliITSUSegmentationPix* seg, double tilt, double r0, double minOvl)
-{
- double dphi = (90.-tilt)*TMath::DegToRad();
- double cs = TMath::Cos(dphi);
- double sn = TMath::Sin(dphi);
- double dx = seg->Dx();
- double tL = -dx/2 + seg->GetGuardBot();
- double tU = dx/2 - seg->GetGuardTop();
- //
- double xL = r0 + cs*tL;
- double yL = sn*tL;
- double xU = r0 + cs*tU;
- double yU = sn*tU;
- double phiL = TMath::ATan2(yL,xL);
- double phiU = TMath::ATan2(yU,xU);
- double dphi = TMath::Abs(phiL-phiU);
- if (dphi>TMath::Pi()) dphi = TMath::Abs(dphi-TMath::Pi()*2);
- double span = dphi*r0;
- //
- double ov = -1;
- int nStaveLr = 1 + r0*TMath::Pi()*2/span;
- do { ov = 1.-r0*TMath::Pi()*2/nStaveLr/span; } while ( minOvl>=0 && ov<minOvl && nStaveLr++ );
- printf("Reccommend %2d staves for R=%5.2f, ActiveOvl=%5.2f\% (%6.f micron)\n",nStaveLr,r0,ov*100,ov*span*1e4);
- return nStaveLr;
-}