46 float ts1, ts2, ts3, thpd, tpre, wd1, wd2, wd3;
49 ts1=8. ; ts2=10. ; ts3=29.3; thpd=4.0; tpre=9.0; wd1=2.0; wd2=0.7; wd3=1.0;
55 ts1=8. ; ts2=10. ; ts3=25.0; thpd=4.0; tpre=9.0; wd1=2.0; wd2=0.7; wd3=1.0;
59 ts1=8. ; ts2=10. ; ts3=29.3; thpd=4.0; tpre=7.0; wd1=2.0; wd2=0.7; wd3=1.0;
64 ts1=8. ; ts2=19. ; ts3=29.3; thpd=4.0; tpre=9.0; wd1=2.0; wd2=0.7; wd3=0.32;
68 ts1=8. ; ts2=10. ; ts3=22.3; thpd=4.0; tpre=7.0; wd1=2.0; wd2=0.7; wd3=1.0;
74 ts1=8. ; ts2=12. ; ts3=31.7; thpd=9.0; tpre=9.0; wd1=2.0; wd2=0.7; wd3=1.0;
78 ts1=8. ; ts2=12. ; ts3=31.7; thpd=9.0; tpre=9.0; wd1=2.0; wd2=0.7; wd3=1.0;
148 float wd1,
float wd2,
float wd3,
Shape &tmphpdShape_)
172 unsigned int nbin = 256;
174 std::vector<float> ntmp(nbin,0.0);
175 std::vector<float> nth(nbin,0.0);
176 std::vector<float> ntp(nbin,0.0);
177 std::vector<float> ntd(nbin,0.0);
184 for(j=0;j<thpd && j<nbin;j++){
185 nth[
j] = 1.0 + ((float)j)/thpd;
189 for(j=0;j<thpd && j<nbin;j++){
195 for(j=0;j<6*tpre && j<nbin;j++){
196 ntp[
j] = ((float)j)*
exp(-((
float)(j*j))/(tpre*tpre));
200 for(j=0;j<6*tpre && j<nbin;j++){
208 unsigned int tmax = 6 * (int)ts3;
211 for(j=0;j<tmax && j<nbin;j++){
212 ntd[
j] = wd1 *
exp(-((
float)j)/ts1) +
213 wd2 *
exp(-((
float)j)/ts2) +
214 wd3 *
exp(-((
float)j)/ts3) ;
218 for(j=0;j<tmax && j<nbin;j++){
222 unsigned int t1,
t2,t3,t4;
223 for(i=0;i<tmax && i<nbin;i++){
228 for(j=0;j<thpd && j<nbin;j++){
230 for(k=0;k<4*tpre && k<nbin;k++){
234 ntmp[ntb] += ntd[
i]*nth[
j]*ntp[
k];
247 for(i=0; i<nbin; i++){
252 for(i=0; i<nbin; i++){
259 unsigned int nbin = 256;
261 std::vector<float> ntmp(nbin,0.0);
263 const float k0=0.7956;
264 const float p2=1.355;
265 const float p4=2.327;
270 for(
unsigned int j = 0;
j < 25 &&
j < nbin; ++
j){
273 float sigma0 = (r0<0) ? p2 : p2*p4;
275 if(r0 < k0) ntmp[
j] =
exp(-0.5*r0*r0);
276 else ntmp[
j] =
exp(0.5*k0*k0-k0*r0);
280 for(
unsigned int j = 0;
j < 25 &&
j < nbin; ++
j){
289 unsigned int nbin = 100;
292 std::vector<float>
nt(nbin,0.0);
295 for (
unsigned int j = 0;
j < nbin; ++
j) {
298 else if ((
j > 31) && (
j <= 96))
299 nt[
j] = 102.1 - 1.12*
j;
301 nt[
j] = 0.0076*
j - 6.4;
302 norm += (nt[
j]>0) ? nt[
j] : 0.;
305 for (
unsigned int j = 0;
j < nbin; ++
j) {
319 ShapeMap::const_iterator shapeMapItr =
theShapes.find(shapeType);
324 return *(shapeMapItr->second);
350 ShapeMap::const_iterator shapeMapItr =
theShapes.find(shapeType);
354 return *(shapeMapItr->second);
379 ShapeMap::const_iterator shapeMapItr =
theShapes.find(shapeType);
383 return *(shapeMapItr->second);
const Shape & getShape(int shapeType) const
const Shape & heShape() const
HcalSubdetector subdet() const
get the subdetector
void setShapeBin(int i, float f)
const Shape & hoShape(bool sipm=false) const
void beginRun(edm::EventSetup const &es)
void setTopo(const HcalTopology *topo) const
const Item * getValues(DetId fId, bool throwOnFail=true) const
const Shape & shapeForReco(const HcalDetId &detId) const
const Shape & shape(const HcalDetId &detId) const
automatically figures out which shape to return
uint32_t rawId() const
get the raw id
auto const T2 &decltype(t1.eta()) t2
static const double tmax[3]
const Shape & defaultShape(const HcalDetId &detId) const
in case of conditions problems
const Shape & hfShape() const
void computeHPDShape(float, float, float, float, float, float, float, float, Shape &)
const HcalRecoParams * theRecoParams
const HcalTopology * theTopology
T const * product() const
const HcalMCParams * theMCParams
unsigned int signalShape() const
const Shape & hbShape() const