42 float ts1, ts2, ts3, thpd, tpre, wd1, wd2, wd3;
45 ts1=8. ; ts2=10. ; ts3=29.3; thpd=4.0; tpre=9.0; wd1=2.0; wd2=0.7; wd3=1.0;
51 ts1=8. ; ts2=10. ; ts3=25.0; thpd=4.0; tpre=9.0; wd1=2.0; wd2=0.7; wd3=1.0;
55 ts1=8. ; ts2=10. ; ts3=29.3; thpd=4.0; tpre=7.0; wd1=2.0; wd2=0.7; wd3=1.0;
60 ts1=8. ; ts2=19. ; ts3=29.3; thpd=4.0; tpre=9.0; wd1=2.0; wd2=0.7; wd3=0.32;
64 ts1=8. ; ts2=10. ; ts3=22.3; thpd=4.0; tpre=7.0; wd1=2.0; wd2=0.7; wd3=1.0;
70 ts1=8. ; ts2=12. ; ts3=31.7; thpd=9.0; tpre=9.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;
134 float wd1,
float wd2,
float wd3,
Shape &tmphpdShape_)
158 unsigned int nbin = 256;
160 std::vector<float> ntmp(nbin,0.0);
161 std::vector<float> nth(nbin,0.0);
162 std::vector<float> ntp(nbin,0.0);
163 std::vector<float> ntd(nbin,0.0);
170 for(j=0;j<thpd && j<nbin;j++){
171 nth[
j] = 1.0 + ((float)j)/thpd;
175 for(j=0;j<thpd && j<nbin;j++){
181 for(j=0;j<6*tpre && j<nbin;j++){
182 ntp[
j] = ((float)j)*
exp(-((
float)(j*j))/(tpre*tpre));
186 for(j=0;j<6*tpre && j<nbin;j++){
194 unsigned int tmax = 6 * (int)ts3;
197 for(j=0;j<tmax && j<nbin;j++){
198 ntd[
j] = wd1 *
exp(-((
float)j)/ts1) +
199 wd2 *
exp(-((
float)j)/ts2) +
200 wd3 *
exp(-((
float)j)/ts3) ;
204 for(j=0;j<tmax && j<nbin;j++){
208 unsigned int t1,t2,t3,t4;
209 for(i=0;i<tmax && i<nbin;i++){
214 for(j=0;j<thpd && j<nbin;j++){
216 for(k=0;k<4*tpre && k<nbin;k++){
220 ntmp[ntb] += ntd[
i]*nth[
j]*ntp[
k];
233 for(i=0; i<nbin; i++){
238 for(i=0; i<nbin; i++){
245 unsigned int nbin = 256;
247 std::vector<float> ntmp(nbin,0.0);
249 const float k0=0.7956;
250 const float p2=1.355;
251 const float p4=2.327;
256 for(
unsigned int j = 0;
j < 25 &&
j < nbin; ++
j){
259 float sigma0 = (r0<0) ? p2 : p2*p4;
261 if(r0 < k0) ntmp[
j] =
exp(-0.5*r0*r0);
262 else ntmp[
j] =
exp(0.5*k0*k0-k0*r0);
266 for(
unsigned int j = 0;
j < 25 &&
j < nbin; ++
j){
275 unsigned int nbin = 512;
277 std::vector<float>
nt(nbin,0.0);
280 for (
unsigned int j = 0;
j < nbin; ++
j) {
283 else if ((
j > 31) && (
j <= 96))
284 nt[
j] = 102.1 - 1.12*
j;
286 nt[
j] = 0.0076*
j - 6.4;
287 norm += (nt[
j]>0) ? nt[
j] : 0.;
290 for (
unsigned int j = 0;
j < nbin; ++
j) {
304 ShapeMap::const_iterator shapeMapItr =
theShapes.find(shapeType);
309 return *(shapeMapItr->second);
333 ShapeMap::const_iterator shapeMapItr =
theShapes.find(shapeType);
337 return *(shapeMapItr->second);
361 ShapeMap::const_iterator shapeMapItr =
theShapes.find(shapeType);
365 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)
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
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
T const * product() const
const HcalMCParams * theMCParams
unsigned int signalShape() const
const Shape & hbShape() const
const Item * getValues(DetId fId) const