# Project CMSSW displayed by LXR

File indexing completed on 2021-02-14 13:26:45

```0001 #ifndef RadialInterval_H
0003
0004 //  Created 1/11/04. F. Beaudette (CERN)
0005 //  This class is used to ease the lateral development with
0006 // different spot fractions in FamosShower.
0007
0008 #include <vector>
0009
0010 class RandomEngineAndDistribution;
0011
0013 public:
0014   /// Standard constructor Rc: mean Radius
0015   RadialInterval(double RC, unsigned nSpots, double energy, const RandomEngineAndDistribution* engine);
0017
0018   /// Add an interval : first argument is the radius, the second is the
0019   /// fraction of spots in this interval R>10 <-> infinity
0022   /// but the normal number of spots has to be set
0023   void compute();
0024   /// Number of intervals
0025   inline unsigned nIntervals() const { return nInter; }
0026   /// Spot energy in a given interval
0027   inline double getSpotEnergy(unsigned i) const {
0028     //    std::cout << " getSpotEnergy " << i << " " << spotE.size() << std::endl;
0029     return spotE[i];
0030   }
0031   /// Number of spots in a given interval
0032   inline unsigned getNumberOfSpots(unsigned i) const {
0033     //    std::cout << " getNumberOfSpots " << i << " " << nspots.size() << std::endl;
0034     return nspots[i];
0035   }
0036   /// Lower limit of the argument in the radius generator
0037   inline double getUmin(unsigned i) const {
0038     //    std::cout << " getUmin " << i << " " << uMin.size() << std::endl;
0039     return uMin[i];
0040   }
0041   /// Upper limit of the argument in the radius generator
0042   inline double getUmax(unsigned i) const {
0043     //    std::cout << " getUmax " << i << " " << uMax.size() << std::endl;
0044     return uMax[i];
0045   }
0046
0047 private:
0049   double currentEnergyFraction;
0050   double currentUlim;
0051   double theR;
0052   unsigned theNumberOfSpots;
0053   double theSpotEnergy;
0054   unsigned nInter;
0055
0056   std::vector<double> uMin;
0057   std::vector<double> uMax;
0058   std::vector<unsigned> nspots;
0059   std::vector<double> spotE;
0060   std::vector<double> dspotsunscaled;
0061   std::vector<double> spotfraction;
0062
0063 private:
0064   // Fraction of the energy in rm Moliere radius