34 const float BIG = 99999.;
44 for (
int idxbin = 0; idxbin < 2*
theHalfNBins; idxbin++) {
45 float etaValue =
eta(idxbin);
46 float cotTheta = sinh(etaValue);
48 vector<MSLayer>
layers = layout.detLayers(etaValue,0,iSetup);
49 vector<MSLayer> tmplay = layout.otherLayers(etaValue,iSetup);
50 layers.insert(layers.end(),tmplay.begin(),tmplay.end());
51 sort(layers.begin(), layers.end());
52 setX0(layers, etaValue, msX0data);
56 vector<MSLayer>::iterator it;
57 for (it = layers.begin(); it != layers.end(); it++) {
60 it->crossing(
line).first);
68 for (
int idxbin = 0; idxbin < 2*
theHalfNBins; idxbin++) {
69 float etaValue =
eta(idxbin);
70 for (
int isign=-1; isign <=1; isign+=2) {
73 vector<MSLayer> candidates = layout.detLayers( etaValue, z,iSetup);
74 vector<MSLayer>::iterator it;
75 for (it = candidates.begin(); it != candidates.end(); it++) {
76 if (layersAtAngle.
findLayer(*it))
continue;
80 bin--;
if (bin < 0)
break;
85 bin++;
if (bin > 2*theHalfNBins-1)
break;
float eta(int idxBin) const
const T & max(const T &a, const T &b)
virtual const MSLayersAtAngle & layers(float cotTheta) const
const DataX0 & getDataX0(const MSLayer &l) const
void setX0(std::vector< MSLayer > &, float eta, const SumX0AtEtaDataProvider &) const
const MSLayer * findLayer(const MSLayer &layer) const
void setDataX0(MSLayer &l, DataX0 x0Data) const
std::vector< MSLayersAtAngle > theLayersData