41 const float BIG = 99999.;
46 float etaMax = msX0data.
maxEta();
51 for (
int idxbin = 0; idxbin < 2*
theHalfNBins; idxbin++) {
52 float etaValue =
eta(idxbin);
53 float cotTheta = sinh(etaValue);
55 vector<MSLayer>
layers =
layout.detLayers(etaValue,0,iSetup);
56 vector<MSLayer> tmplay =
layout.otherLayers(etaValue,iSetup);
57 layers.insert(layers.end(),tmplay.begin(),tmplay.end());
58 sort(layers.begin(), layers.end());
59 setX0(layers, etaValue, msX0data);
63 vector<MSLayer>::iterator it;
64 for (it = layers.begin(); it != layers.end(); it++) {
67 it->crossing(
line).first);
75 for (
int idxbin = 0; idxbin < 2*
theHalfNBins; idxbin++) {
76 float etaValue =
eta(idxbin);
77 for (
int isign=-1; isign <=1; isign+=2) {
80 vector<MSLayer> candidates =
layout.detLayers( etaValue, z,iSetup);
81 vector<MSLayer>::iterator it;
82 for (it = candidates.begin(); it != candidates.end(); it++) {
83 if (layersAtAngle.
findLayer(*it))
continue;
87 bin--;
if (bin < 0)
break;
92 bin++;
if (bin > 2*theHalfNBins-1)
break;
static void setDataX0(MSLayer &l, const DataX0 &x0Data)
float eta(int idxBin) const
const MSLayersAtAngle & layers(float cotTheta) const
static const DataX0 & getDataX0(const MSLayer &l)
static void setX0(std::vector< MSLayer > &, float eta, const SumX0AtEtaDataProvider &)
const MSLayer * findLayer(const MSLayer &layer) const
std::vector< MSLayersAtAngle > theLayersData