27 |
|
// Loading forest object according to different versions |
28 |
|
TFile file(weightsFile.c_str()); |
29 |
|
|
30 |
< |
if (type == kNoTrkVar || type == kWithTrkVar) { |
30 |
> |
if (type == kNoTrkVar || type == kWithTrkVarV1 || type == kWithTrkVarV2) { |
31 |
|
forestCorrection_eb = (GBRForest*) file.Get("EBCorrection"); |
32 |
|
forestCorrection_ee = (GBRForest*) file.Get("EECorrection"); |
33 |
|
forestUncertainty_eb = (GBRForest*) file.Get("EBUncertainty"); |
372 |
|
return regressionResult; |
373 |
|
} |
374 |
|
|
375 |
< |
double ElectronEnergyRegression::regressionValueWithTrkVarV1( |
376 |
< |
double SCRawEnergy, |
377 |
< |
double scEta, |
378 |
< |
double scPhi, |
379 |
< |
double R9, |
380 |
< |
double etawidth, |
381 |
< |
double phiwidth, |
382 |
< |
double NClusters, |
383 |
< |
double HoE, |
384 |
< |
double rho, |
385 |
< |
double vertices, |
386 |
< |
double EtaSeed, |
387 |
< |
double PhiSeed, |
388 |
< |
double ESeed, |
389 |
< |
double E3x3Seed, |
390 |
< |
double E5x5Seed, |
391 |
< |
double see, |
392 |
< |
double spp, |
393 |
< |
double sep, |
394 |
< |
double EMaxSeed, |
395 |
< |
double E2ndSeed, |
396 |
< |
double ETopSeed, |
397 |
< |
double EBottomSeed, |
398 |
< |
double ELeftSeed, |
399 |
< |
double ERightSeed, |
400 |
< |
double E2x5MaxSeed, |
401 |
< |
double E2x5TopSeed, |
402 |
< |
double E2x5BottomSeed, |
403 |
< |
double E2x5LeftSeed, |
404 |
< |
double E2x5RightSeed, |
405 |
< |
double IEtaSeed, |
406 |
< |
double IPhiSeed, |
407 |
< |
double EtaCrySeed, |
408 |
< |
double PhiCrySeed, |
409 |
< |
double PreShowerOverRaw, |
410 |
< |
double GsfTrackPIn, |
411 |
< |
double fbrem, |
412 |
< |
double Charge, |
413 |
< |
double EoP, |
414 |
< |
double TrackMomentumError, |
415 |
< |
bool printDebug) |
375 |
> |
double ElectronEnergyRegression::regressionValueWithTrkVarV1( std::vector<double> &inputvars, |
376 |
> |
bool printDebug) |
377 |
|
{ |
378 |
|
// Checking if instance has been initialized |
379 |
|
if (fIsInitialized == kFALSE) { |
382 |
|
} |
383 |
|
|
384 |
|
// Checking if fVersionType is correct |
385 |
< |
assert(fVersionType == kWithTrkVar); |
385 |
> |
assert(fVersionType == kWithTrkVarV1); |
386 |
> |
|
387 |
> |
//Check that inputvars vector has the right number of inputs |
388 |
> |
assert(inputvars.size() == 42); |
389 |
|
|
390 |
< |
float *vals = (fabs(scEta) <= 1.479) ? new float[43] : new float[36]; |
390 |
> |
//assign variables from inputvars array to named variables |
391 |
> |
double SCRawEnergy = inputvars[0]; |
392 |
> |
double scEta = inputvars[1]; |
393 |
> |
double scPhi = inputvars[2]; |
394 |
> |
double R9 = inputvars[3]; |
395 |
> |
double etawidth = inputvars[4]; |
396 |
> |
double phiwidth = inputvars[5]; |
397 |
> |
double NClusters = inputvars[6]; |
398 |
> |
double HoE = inputvars[7]; |
399 |
> |
double rho = inputvars[8]; |
400 |
> |
double vertices = inputvars[9]; |
401 |
> |
double EtaSeed = inputvars[10]; |
402 |
> |
double PhiSeed = inputvars[11]; |
403 |
> |
double ESeed = inputvars[12]; |
404 |
> |
double E3x3Seed = inputvars[13]; |
405 |
> |
double E5x5Seed = inputvars[14]; |
406 |
> |
double see = inputvars[15]; |
407 |
> |
double spp = inputvars[16]; |
408 |
> |
double sep = inputvars[17]; |
409 |
> |
double EMaxSeed = inputvars[18]; |
410 |
> |
double E2ndSeed = inputvars[19]; |
411 |
> |
double ETopSeed = inputvars[20]; |
412 |
> |
double EBottomSeed = inputvars[21]; |
413 |
> |
double ELeftSeed = inputvars[22]; |
414 |
> |
double ERightSeed = inputvars[23]; |
415 |
> |
double E2x5MaxSeed = inputvars[24]; |
416 |
> |
double E2x5TopSeed = inputvars[25]; |
417 |
> |
double E2x5BottomSeed = inputvars[26]; |
418 |
> |
double E2x5LeftSeed = inputvars[27]; |
419 |
> |
double E2x5RightSeed = inputvars[28]; |
420 |
> |
double IEtaSeed = inputvars[29]; |
421 |
> |
double IPhiSeed = inputvars[30]; |
422 |
> |
double EtaCrySeed = inputvars[31]; |
423 |
> |
double PhiCrySeed = inputvars[32]; |
424 |
> |
double PreShowerOverRaw = inputvars[33]; |
425 |
> |
int IsEcalDriven = inputvars[34]; |
426 |
> |
double GsfTrackPIn = inputvars[35]; |
427 |
> |
double fbrem = inputvars[36]; |
428 |
> |
double Charge = inputvars[37]; |
429 |
> |
double EoP = inputvars[38]; |
430 |
> |
double TrackMomentumError = inputvars[39]; |
431 |
> |
double EcalEnergyError = inputvars[40]; |
432 |
> |
int Classification = inputvars[41]; |
433 |
> |
|
434 |
> |
float *vals = (fabs(scEta) <= 1.479) ? new float[46] : new float[39]; |
435 |
|
if (fabs(scEta) <= 1.479) { // Barrel |
436 |
|
vals[0] = SCRawEnergy; |
437 |
|
vals[1] = scEta; |
463 |
|
vals[27] = E2x5BottomSeed/ESeed; |
464 |
|
vals[28] = E2x5LeftSeed/ESeed; |
465 |
|
vals[29] = E2x5RightSeed/ESeed; |
466 |
< |
vals[30] = GsfTrackPIn; |
467 |
< |
vals[31] = fbrem; |
468 |
< |
vals[32] = Charge; |
469 |
< |
vals[33] = EoP; |
470 |
< |
vals[34] = TrackMomentumError/GsfTrackPIn; |
471 |
< |
vals[35] = IEtaSeed; |
472 |
< |
vals[36] = IPhiSeed; |
473 |
< |
vals[37] = ((int) IEtaSeed)%5; |
474 |
< |
vals[38] = ((int) IPhiSeed)%2; |
475 |
< |
vals[39] = (abs(IEtaSeed)<=25)*(((int)IEtaSeed)%25) + (abs(IEtaSeed)>25)*(((int) (IEtaSeed-25*abs(IEtaSeed)/IEtaSeed))%20); |
476 |
< |
vals[40] = ((int) IPhiSeed)%20; |
477 |
< |
vals[41] = EtaCrySeed; |
478 |
< |
vals[42] = PhiCrySeed; |
466 |
> |
vals[30] = IsEcalDriven; |
467 |
> |
vals[31] = GsfTrackPIn; |
468 |
> |
vals[32] = fbrem; |
469 |
> |
vals[33] = Charge; |
470 |
> |
vals[34] = EoP; |
471 |
> |
vals[35] = TrackMomentumError/GsfTrackPIn; |
472 |
> |
vals[36] = EcalEnergyError/SCRawEnergy; |
473 |
> |
vals[37] = Classification; |
474 |
> |
vals[38] = IEtaSeed; |
475 |
> |
vals[39] = IPhiSeed; |
476 |
> |
vals[40] = ((int) IEtaSeed)%5; |
477 |
> |
vals[41] = ((int) IPhiSeed)%2; |
478 |
> |
vals[42] = (abs(IEtaSeed)<=25)*(((int)IEtaSeed)%25) + (abs(IEtaSeed)>25)*(((int) (IEtaSeed-25*abs(IEtaSeed)/IEtaSeed))%20); |
479 |
> |
vals[43] = ((int) IPhiSeed)%20; |
480 |
> |
vals[44] = EtaCrySeed; |
481 |
> |
vals[45] = PhiCrySeed; |
482 |
|
} |
483 |
|
|
484 |
|
else { // Endcap |
512 |
|
vals[27] = E2x5BottomSeed/ESeed; |
513 |
|
vals[28] = E2x5LeftSeed/ESeed; |
514 |
|
vals[29] = E2x5RightSeed/ESeed; |
515 |
< |
vals[30] = GsfTrackPIn; |
516 |
< |
vals[31] = fbrem; |
517 |
< |
vals[32] = Charge; |
518 |
< |
vals[33] = EoP; |
519 |
< |
vals[34] = TrackMomentumError/GsfTrackPIn; |
520 |
< |
vals[35] = PreShowerOverRaw; |
515 |
> |
vals[30] = IsEcalDriven; |
516 |
> |
vals[31] = GsfTrackPIn; |
517 |
> |
vals[32] = fbrem; |
518 |
> |
vals[33] = Charge; |
519 |
> |
vals[34] = EoP; |
520 |
> |
vals[35] = TrackMomentumError/GsfTrackPIn; |
521 |
> |
vals[36] = EcalEnergyError/SCRawEnergy; |
522 |
> |
vals[37] = Classification; |
523 |
> |
vals[38] = PreShowerOverRaw; |
524 |
|
} |
525 |
|
|
526 |
|
// Now evaluating the regression |
527 |
|
double regressionResult = 0; |
528 |
|
|
529 |
< |
if (fVersionType == kWithTrkVar) { |
529 |
> |
if (fVersionType == kWithTrkVarV1) { |
530 |
|
if (fabs(scEta) <= 1.479) regressionResult = SCRawEnergy * forestCorrection_eb->GetResponse(vals); |
531 |
|
else regressionResult = (SCRawEnergy*(1+PreShowerOverRaw)) * forestCorrection_ee->GetResponse(vals); |
532 |
|
} |
534 |
|
|
535 |
|
//print debug |
536 |
|
if (printDebug) { |
537 |
< |
if (scEta <= 1.479) { |
537 |
> |
if (fabs(scEta) <= 1.479) { |
538 |
|
std::cout << "Barrel :"; |
539 |
< |
for (uint v=0; v < 43; ++v) std::cout << vals[v] << ", "; |
539 |
> |
for (uint v=0; v < 46; ++v) std::cout << vals[v] << ", "; |
540 |
|
std::cout << "\n"; |
541 |
|
} |
542 |
|
else { |
543 |
|
std::cout << "Endcap :"; |
544 |
< |
for (uint v=0; v < 36; ++v) std::cout << vals[v] << ", "; |
544 |
> |
for (uint v=0; v < 39; ++v) std::cout << vals[v] << ", "; |
545 |
|
std::cout << "\n"; |
546 |
|
} |
547 |
|
std::cout << "SCRawEnergy = " << SCRawEnergy << " : PreShowerOverRaw = " << PreShowerOverRaw << std::endl; |
556 |
|
|
557 |
|
|
558 |
|
|
559 |
< |
double ElectronEnergyRegression::regressionUncertaintyWithTrkVarV1( |
560 |
< |
double SCRawEnergy, |
561 |
< |
double scEta, |
548 |
< |
double scPhi, |
549 |
< |
double R9, |
550 |
< |
double etawidth, |
551 |
< |
double phiwidth, |
552 |
< |
double NClusters, |
553 |
< |
double HoE, |
554 |
< |
double rho, |
555 |
< |
double vertices, |
556 |
< |
double EtaSeed, |
557 |
< |
double PhiSeed, |
558 |
< |
double ESeed, |
559 |
< |
double E3x3Seed, |
560 |
< |
double E5x5Seed, |
561 |
< |
double see, |
562 |
< |
double spp, |
563 |
< |
double sep, |
564 |
< |
double EMaxSeed, |
565 |
< |
double E2ndSeed, |
566 |
< |
double ETopSeed, |
567 |
< |
double EBottomSeed, |
568 |
< |
double ELeftSeed, |
569 |
< |
double ERightSeed, |
570 |
< |
double E2x5MaxSeed, |
571 |
< |
double E2x5TopSeed, |
572 |
< |
double E2x5BottomSeed, |
573 |
< |
double E2x5LeftSeed, |
574 |
< |
double E2x5RightSeed, |
575 |
< |
double IEtaSeed, |
576 |
< |
double IPhiSeed, |
577 |
< |
double EtaCrySeed, |
578 |
< |
double PhiCrySeed, |
579 |
< |
double PreShowerOverRaw, |
580 |
< |
double GsfTrackPIn, |
581 |
< |
double fbrem, |
582 |
< |
double Charge, |
583 |
< |
double EoP, |
584 |
< |
double TrackMomentumError, |
585 |
< |
bool printDebug) |
559 |
> |
|
560 |
> |
double ElectronEnergyRegression::regressionUncertaintyWithTrkVarV1( std::vector<double> &inputvars, |
561 |
> |
bool printDebug) |
562 |
|
{ |
563 |
|
// Checking if instance has been initialized |
564 |
|
if (fIsInitialized == kFALSE) { |
567 |
|
} |
568 |
|
|
569 |
|
// Checking if fVersionType is correct |
570 |
< |
assert(fVersionType == kWithTrkVar); |
570 |
> |
assert(fVersionType == kWithTrkVarV1); |
571 |
> |
|
572 |
> |
// Checking if fVersionType is correct |
573 |
> |
assert(inputvars.size() == 42); |
574 |
|
|
575 |
< |
float *vals = (fabs(scEta) <= 1.479) ? new float[43] : new float[36]; |
575 |
> |
double SCRawEnergy = inputvars[0]; |
576 |
> |
double scEta = inputvars[1]; |
577 |
> |
double scPhi = inputvars[2]; |
578 |
> |
double R9 = inputvars[3]; |
579 |
> |
double etawidth = inputvars[4]; |
580 |
> |
double phiwidth = inputvars[5]; |
581 |
> |
double NClusters = inputvars[6]; |
582 |
> |
double HoE = inputvars[7]; |
583 |
> |
double rho = inputvars[8]; |
584 |
> |
double vertices = inputvars[9]; |
585 |
> |
double EtaSeed = inputvars[10]; |
586 |
> |
double PhiSeed = inputvars[11]; |
587 |
> |
double ESeed = inputvars[12]; |
588 |
> |
double E3x3Seed = inputvars[13]; |
589 |
> |
double E5x5Seed = inputvars[14]; |
590 |
> |
double see = inputvars[15]; |
591 |
> |
double spp = inputvars[16]; |
592 |
> |
double sep = inputvars[17]; |
593 |
> |
double EMaxSeed = inputvars[18]; |
594 |
> |
double E2ndSeed = inputvars[19]; |
595 |
> |
double ETopSeed = inputvars[20]; |
596 |
> |
double EBottomSeed = inputvars[21]; |
597 |
> |
double ELeftSeed = inputvars[22]; |
598 |
> |
double ERightSeed = inputvars[23]; |
599 |
> |
double E2x5MaxSeed = inputvars[24]; |
600 |
> |
double E2x5TopSeed = inputvars[25]; |
601 |
> |
double E2x5BottomSeed = inputvars[26]; |
602 |
> |
double E2x5LeftSeed = inputvars[27]; |
603 |
> |
double E2x5RightSeed = inputvars[28]; |
604 |
> |
double IEtaSeed = inputvars[29]; |
605 |
> |
double IPhiSeed = inputvars[30]; |
606 |
> |
double EtaCrySeed = inputvars[31]; |
607 |
> |
double PhiCrySeed = inputvars[32]; |
608 |
> |
double PreShowerOverRaw = inputvars[33]; |
609 |
> |
int IsEcalDriven = inputvars[34]; |
610 |
> |
double GsfTrackPIn = inputvars[35]; |
611 |
> |
double fbrem = inputvars[36]; |
612 |
> |
double Charge = inputvars[37]; |
613 |
> |
double EoP = inputvars[38]; |
614 |
> |
double TrackMomentumError = inputvars[39]; |
615 |
> |
double EcalEnergyError = inputvars[40]; |
616 |
> |
int Classification = inputvars[41]; |
617 |
> |
|
618 |
> |
|
619 |
> |
float *vals = (fabs(scEta) <= 1.479) ? new float[46] : new float[39]; |
620 |
|
if (fabs(scEta) <= 1.479) { // Barrel |
621 |
|
vals[0] = SCRawEnergy; |
622 |
|
vals[1] = scEta; |
648 |
|
vals[27] = E2x5BottomSeed/ESeed; |
649 |
|
vals[28] = E2x5LeftSeed/ESeed; |
650 |
|
vals[29] = E2x5RightSeed/ESeed; |
651 |
< |
vals[30] = GsfTrackPIn; |
652 |
< |
vals[31] = fbrem; |
653 |
< |
vals[32] = Charge; |
654 |
< |
vals[33] = EoP; |
655 |
< |
vals[34] = TrackMomentumError/GsfTrackPIn; |
656 |
< |
vals[35] = IEtaSeed; |
657 |
< |
vals[36] = IPhiSeed; |
658 |
< |
vals[37] = ((int) IEtaSeed)%5; |
659 |
< |
vals[38] = ((int) IPhiSeed)%2; |
660 |
< |
vals[39] = (abs(IEtaSeed)<=25)*(((int)IEtaSeed)%25) + (abs(IEtaSeed)>25)*(((int) (IEtaSeed-25*abs(IEtaSeed)/IEtaSeed))%20); |
661 |
< |
vals[40] = ((int) IPhiSeed)%20; |
662 |
< |
vals[41] = EtaCrySeed; |
663 |
< |
vals[42] = PhiCrySeed; |
651 |
> |
vals[30] = IsEcalDriven; |
652 |
> |
vals[31] = GsfTrackPIn; |
653 |
> |
vals[32] = fbrem; |
654 |
> |
vals[33] = Charge; |
655 |
> |
vals[34] = EoP; |
656 |
> |
vals[35] = TrackMomentumError/GsfTrackPIn; |
657 |
> |
vals[36] = EcalEnergyError/SCRawEnergy; |
658 |
> |
vals[37] = Classification; |
659 |
> |
vals[38] = IEtaSeed; |
660 |
> |
vals[39] = IPhiSeed; |
661 |
> |
vals[40] = ((int) IEtaSeed)%5; |
662 |
> |
vals[41] = ((int) IPhiSeed)%2; |
663 |
> |
vals[42] = (abs(IEtaSeed)<=25)*(((int)IEtaSeed)%25) + (abs(IEtaSeed)>25)*(((int) (IEtaSeed-25*abs(IEtaSeed)/IEtaSeed))%20); |
664 |
> |
vals[43] = ((int) IPhiSeed)%20; |
665 |
> |
vals[44] = EtaCrySeed; |
666 |
> |
vals[45] = PhiCrySeed; |
667 |
|
} |
668 |
|
|
669 |
|
else { // Endcap |
697 |
|
vals[27] = E2x5BottomSeed/ESeed; |
698 |
|
vals[28] = E2x5LeftSeed/ESeed; |
699 |
|
vals[29] = E2x5RightSeed/ESeed; |
700 |
< |
vals[30] = GsfTrackPIn; |
701 |
< |
vals[31] = fbrem; |
702 |
< |
vals[32] = Charge; |
703 |
< |
vals[33] = EoP; |
704 |
< |
vals[34] = TrackMomentumError/GsfTrackPIn; |
705 |
< |
vals[35] = PreShowerOverRaw; |
700 |
> |
vals[30] = IsEcalDriven; |
701 |
> |
vals[31] = GsfTrackPIn; |
702 |
> |
vals[32] = fbrem; |
703 |
> |
vals[33] = Charge; |
704 |
> |
vals[34] = EoP; |
705 |
> |
vals[35] = TrackMomentumError/GsfTrackPIn; |
706 |
> |
vals[36] = EcalEnergyError/SCRawEnergy; |
707 |
> |
vals[37] = Classification; |
708 |
> |
vals[38] = PreShowerOverRaw; |
709 |
|
} |
710 |
|
|
711 |
|
// Now evaluating the regression |
712 |
|
double regressionResult = 0; |
713 |
|
|
714 |
< |
if (fVersionType == kWithTrkVar) { |
714 |
> |
if (fVersionType == kWithTrkVarV1) { |
715 |
|
if (fabs(scEta) <= 1.479) regressionResult = SCRawEnergy * forestUncertainty_eb->GetResponse(vals); |
716 |
|
else regressionResult = (SCRawEnergy*(1+PreShowerOverRaw)) * forestUncertainty_ee->GetResponse(vals); |
717 |
|
} |
718 |
|
|
719 |
|
//print debug |
720 |
|
if (printDebug) { |
721 |
< |
if (scEta <= 1.479) { |
721 |
> |
if (fabs(scEta) <= 1.479) { |
722 |
|
std::cout << "Barrel :"; |
723 |
< |
for (uint v=0; v < 43; ++v) std::cout << vals[v] << ", "; |
723 |
> |
for (uint v=0; v < 46; ++v) std::cout << vals[v] << ", "; |
724 |
|
std::cout << "\n"; |
725 |
|
} |
726 |
|
else { |
727 |
|
std::cout << "Endcap :"; |
728 |
< |
for (uint v=0; v < 36; ++v) std::cout << vals[v] << ", "; |
728 |
> |
for (uint v=0; v < 39; ++v) std::cout << vals[v] << ", "; |
729 |
|
std::cout << "\n"; |
730 |
|
} |
731 |
|
std::cout << " SCRawEnergy = " << SCRawEnergy << " : PreShowerOverRaw = " << PreShowerOverRaw << std::endl; |
741 |
|
|
742 |
|
|
743 |
|
|
744 |
+ |
|
745 |
+ |
|
746 |
|
double ElectronEnergyRegression::regressionValueWithTrkVarV2( std::vector<double> &inputvars, |
747 |
|
bool printDebug) |
748 |
|
{ |
752 |
|
return 0; |
753 |
|
} |
754 |
|
|
724 |
– |
//Check that inputvars vector has the right number of inputs |
725 |
– |
assert(inputvars.size() == 46); |
726 |
– |
|
755 |
|
// Checking if fVersionType is correct |
756 |
< |
assert(fVersionType == kWithTrkVar); |
756 |
> |
assert(fVersionType == kWithTrkVarV2); |
757 |
|
|
758 |
< |
//assign variables from inputvars array to named variables |
759 |
< |
double SCRawEnergy = inputvars[0]; |
732 |
< |
double scEta = inputvars[1]; |
733 |
< |
double scPhi = inputvars[2]; |
734 |
< |
double R9 = inputvars[3]; |
735 |
< |
double etawidth = inputvars[4]; |
736 |
< |
double phiwidth = inputvars[5]; |
737 |
< |
double NClusters = inputvars[6]; |
738 |
< |
double HoE = inputvars[7]; |
739 |
< |
double rho = inputvars[8]; |
740 |
< |
double vertices = inputvars[9]; |
741 |
< |
double EtaSeed = inputvars[10]; |
742 |
< |
double PhiSeed = inputvars[11]; |
743 |
< |
double ESeed = inputvars[12]; |
744 |
< |
double E3x3Seed = inputvars[13]; |
745 |
< |
double E5x5Seed = inputvars[14]; |
746 |
< |
double see = inputvars[15]; |
747 |
< |
double spp = inputvars[16]; |
748 |
< |
double sep = inputvars[17]; |
749 |
< |
double EMaxSeed = inputvars[18]; |
750 |
< |
double E2ndSeed = inputvars[19]; |
751 |
< |
double ETopSeed = inputvars[20]; |
752 |
< |
double EBottomSeed = inputvars[21]; |
753 |
< |
double ELeftSeed = inputvars[22]; |
754 |
< |
double ERightSeed = inputvars[23]; |
755 |
< |
double E2x5MaxSeed = inputvars[24]; |
756 |
< |
double E2x5TopSeed = inputvars[25]; |
757 |
< |
double E2x5BottomSeed = inputvars[26]; |
758 |
< |
double E2x5LeftSeed = inputvars[27]; |
759 |
< |
double E2x5RightSeed = inputvars[28]; |
760 |
< |
double IEtaSeed = inputvars[29]; |
761 |
< |
double IPhiSeed = inputvars[30]; |
762 |
< |
double EtaCrySeed = inputvars[31]; |
763 |
< |
double PhiCrySeed = inputvars[32]; |
764 |
< |
double PreShowerOverRaw = inputvars[33]; |
765 |
< |
double GsfTrackPIn = inputvars[34]; |
766 |
< |
double fbrem = inputvars[35]; |
767 |
< |
double Charge = inputvars[36]; |
768 |
< |
double EoP = inputvars[37]; |
769 |
< |
double TrackMomentumError = inputvars[38]; |
770 |
< |
double detaIn = inputvars[39]; |
771 |
< |
double dphiIn = inputvars[40]; |
772 |
< |
double detaCalo = inputvars[41]; |
773 |
< |
double dphiCalo = inputvars[42]; |
774 |
< |
double GsfTrackChiSqr = inputvars[43]; |
775 |
< |
double KFTrackNLayers = inputvars[44]; |
776 |
< |
double ElectronEnergyOverPout = inputvars[45]; |
758 |
> |
// Checking if fVersionType is correct |
759 |
> |
assert(inputvars.size() == 49); |
760 |
|
|
761 |
+ |
double SCRawEnergy = inputvars[0]; |
762 |
+ |
double scEta = inputvars[1]; |
763 |
+ |
double scPhi = inputvars[2]; |
764 |
+ |
double R9 = inputvars[3]; |
765 |
+ |
double etawidth = inputvars[4]; |
766 |
+ |
double phiwidth = inputvars[5]; |
767 |
+ |
double NClusters = inputvars[6]; |
768 |
+ |
double HoE = inputvars[7]; |
769 |
+ |
double rho = inputvars[8]; |
770 |
+ |
double vertices = inputvars[9]; |
771 |
+ |
double EtaSeed = inputvars[10]; |
772 |
+ |
double PhiSeed = inputvars[11]; |
773 |
+ |
double ESeed = inputvars[12]; |
774 |
+ |
double E3x3Seed = inputvars[13]; |
775 |
+ |
double E5x5Seed = inputvars[14]; |
776 |
+ |
double see = inputvars[15]; |
777 |
+ |
double spp = inputvars[16]; |
778 |
+ |
double sep = inputvars[17]; |
779 |
+ |
double EMaxSeed = inputvars[18]; |
780 |
+ |
double E2ndSeed = inputvars[19]; |
781 |
+ |
double ETopSeed = inputvars[20]; |
782 |
+ |
double EBottomSeed = inputvars[21]; |
783 |
+ |
double ELeftSeed = inputvars[22]; |
784 |
+ |
double ERightSeed = inputvars[23]; |
785 |
+ |
double E2x5MaxSeed = inputvars[24]; |
786 |
+ |
double E2x5TopSeed = inputvars[25]; |
787 |
+ |
double E2x5BottomSeed = inputvars[26]; |
788 |
+ |
double E2x5LeftSeed = inputvars[27]; |
789 |
+ |
double E2x5RightSeed = inputvars[28]; |
790 |
+ |
double IEtaSeed = inputvars[29]; |
791 |
+ |
double IPhiSeed = inputvars[30]; |
792 |
+ |
double EtaCrySeed = inputvars[31]; |
793 |
+ |
double PhiCrySeed = inputvars[32]; |
794 |
+ |
double PreShowerOverRaw = inputvars[33]; |
795 |
+ |
int IsEcalDriven = inputvars[34]; |
796 |
+ |
double GsfTrackPIn = inputvars[35]; |
797 |
+ |
double fbrem = inputvars[36]; |
798 |
+ |
double Charge = inputvars[37]; |
799 |
+ |
double EoP = inputvars[38]; |
800 |
+ |
double TrackMomentumError = inputvars[39]; |
801 |
+ |
double EcalEnergyError = inputvars[40]; |
802 |
+ |
int Classification = inputvars[41]; |
803 |
+ |
double detaIn = inputvars[42]; |
804 |
+ |
double dphiIn = inputvars[43]; |
805 |
+ |
double detaCalo = inputvars[44]; |
806 |
+ |
double dphiCalo = inputvars[45]; |
807 |
+ |
double GsfTrackChiSqr = inputvars[46]; |
808 |
+ |
double KFTrackNLayers = inputvars[47]; |
809 |
+ |
double ElectronEnergyOverPout = inputvars[48]; |
810 |
|
|
811 |
< |
float *vals = (fabs(scEta) <= 1.479) ? new float[50] : new float[43]; |
811 |
> |
float *vals = (fabs(scEta) <= 1.479) ? new float[53] : new float[46]; |
812 |
|
if (fabs(scEta) <= 1.479) { // Barrel |
813 |
|
vals[0] = SCRawEnergy; |
814 |
|
vals[1] = scEta; |
840 |
|
vals[27] = E2x5BottomSeed/ESeed; |
841 |
|
vals[28] = E2x5LeftSeed/ESeed; |
842 |
|
vals[29] = E2x5RightSeed/ESeed; |
843 |
< |
vals[30] = GsfTrackPIn; |
844 |
< |
vals[31] = fbrem; |
845 |
< |
vals[32] = Charge; |
846 |
< |
vals[33] = EoP; |
847 |
< |
vals[34] = TrackMomentumError/GsfTrackPIn; |
848 |
< |
vals[35] = detaIn; |
849 |
< |
vals[36] = dphiIn; |
850 |
< |
vals[37] = detaCalo; |
851 |
< |
vals[38] = dphiCalo; |
852 |
< |
vals[39] = GsfTrackChiSqr; |
853 |
< |
vals[40] = KFTrackNLayers; |
854 |
< |
vals[41] = ElectronEnergyOverPout; |
855 |
< |
vals[42] = IEtaSeed; |
856 |
< |
vals[43] = IPhiSeed; |
857 |
< |
vals[44] = ((int) IEtaSeed)%5; |
858 |
< |
vals[45] = ((int) IPhiSeed)%2; |
859 |
< |
vals[46] = (abs(IEtaSeed)<=25)*(((int)IEtaSeed)%25) + (abs(IEtaSeed)>25)*(((int) (IEtaSeed-25*abs(IEtaSeed)/IEtaSeed))%20); |
860 |
< |
vals[47] = ((int) IPhiSeed)%20; |
861 |
< |
vals[48] = EtaCrySeed; |
862 |
< |
vals[49] = PhiCrySeed; |
843 |
> |
vals[30] = IsEcalDriven; |
844 |
> |
vals[31] = GsfTrackPIn; |
845 |
> |
vals[32] = fbrem; |
846 |
> |
vals[33] = Charge; |
847 |
> |
vals[34] = EoP; |
848 |
> |
vals[35] = TrackMomentumError/GsfTrackPIn; |
849 |
> |
vals[36] = EcalEnergyError/SCRawEnergy; |
850 |
> |
vals[37] = Classification; |
851 |
> |
vals[38] = detaIn; |
852 |
> |
vals[39] = dphiIn; |
853 |
> |
vals[40] = detaCalo; |
854 |
> |
vals[41] = dphiCalo; |
855 |
> |
vals[42] = GsfTrackChiSqr; |
856 |
> |
vals[43] = KFTrackNLayers; |
857 |
> |
vals[44] = ElectronEnergyOverPout; |
858 |
> |
vals[45] = IEtaSeed; |
859 |
> |
vals[46] = IPhiSeed; |
860 |
> |
vals[47] = ((int) IEtaSeed)%5; |
861 |
> |
vals[48] = ((int) IPhiSeed)%2; |
862 |
> |
vals[49] = (abs(IEtaSeed)<=25)*(((int)IEtaSeed)%25) + (abs(IEtaSeed)>25)*(((int) (IEtaSeed-25*abs(IEtaSeed)/IEtaSeed))%20); |
863 |
> |
vals[50] = ((int) IPhiSeed)%20; |
864 |
> |
vals[51] = EtaCrySeed; |
865 |
> |
vals[52] = PhiCrySeed; |
866 |
|
} |
867 |
|
|
868 |
|
else { // Endcap |
896 |
|
vals[27] = E2x5BottomSeed/ESeed; |
897 |
|
vals[28] = E2x5LeftSeed/ESeed; |
898 |
|
vals[29] = E2x5RightSeed/ESeed; |
899 |
< |
vals[30] = GsfTrackPIn; |
900 |
< |
vals[31] = fbrem; |
901 |
< |
vals[32] = Charge; |
902 |
< |
vals[33] = EoP; |
903 |
< |
vals[34] = TrackMomentumError/GsfTrackPIn; |
904 |
< |
vals[35] = detaIn; |
905 |
< |
vals[36] = dphiIn; |
906 |
< |
vals[37] = detaCalo; |
907 |
< |
vals[38] = dphiCalo; |
908 |
< |
vals[39] = GsfTrackChiSqr; |
909 |
< |
vals[40] = KFTrackNLayers; |
910 |
< |
vals[41] = ElectronEnergyOverPout; |
911 |
< |
vals[42] = PreShowerOverRaw; |
899 |
> |
vals[30] = IsEcalDriven; |
900 |
> |
vals[31] = GsfTrackPIn; |
901 |
> |
vals[32] = fbrem; |
902 |
> |
vals[33] = Charge; |
903 |
> |
vals[34] = EoP; |
904 |
> |
vals[35] = TrackMomentumError/GsfTrackPIn; |
905 |
> |
vals[36] = EcalEnergyError/SCRawEnergy; |
906 |
> |
vals[37] = Classification; |
907 |
> |
vals[38] = detaIn; |
908 |
> |
vals[39] = dphiIn; |
909 |
> |
vals[40] = detaCalo; |
910 |
> |
vals[41] = dphiCalo; |
911 |
> |
vals[42] = GsfTrackChiSqr; |
912 |
> |
vals[43] = KFTrackNLayers; |
913 |
> |
vals[44] = ElectronEnergyOverPout; |
914 |
> |
vals[45] = PreShowerOverRaw; |
915 |
|
} |
916 |
|
|
917 |
|
// Now evaluating the regression |
918 |
|
double regressionResult = 0; |
919 |
|
|
920 |
< |
if (fVersionType == kWithTrkVar) { |
920 |
> |
if (fVersionType == kWithTrkVarV2) { |
921 |
|
if (fabs(scEta) <= 1.479) regressionResult = SCRawEnergy * forestCorrection_eb->GetResponse(vals); |
922 |
|
else regressionResult = (SCRawEnergy*(1+PreShowerOverRaw)) * forestCorrection_ee->GetResponse(vals); |
923 |
|
} |
925 |
|
|
926 |
|
//print debug |
927 |
|
if (printDebug) { |
928 |
< |
if (scEta <= 1.479) { |
928 |
> |
if (fabs(scEta) <= 1.479) { |
929 |
|
std::cout << "Barrel :"; |
930 |
< |
for (uint v=0; v < 50; ++v) std::cout << vals[v] << ", "; |
930 |
> |
for (uint v=0; v < 53; ++v) std::cout << vals[v] << ", "; |
931 |
|
std::cout << "\n"; |
932 |
|
} |
933 |
|
else { |
934 |
|
std::cout << "Endcap :"; |
935 |
< |
for (uint v=0; v < 43; ++v) std::cout << vals[v] << ", "; |
935 |
> |
for (uint v=0; v < 46; ++v) std::cout << vals[v] << ", "; |
936 |
|
std::cout << "\n"; |
937 |
|
} |
938 |
|
std::cout << "SCRawEnergy = " << SCRawEnergy << " : PreShowerOverRaw = " << PreShowerOverRaw << std::endl; |
947 |
|
|
948 |
|
|
949 |
|
|
950 |
+ |
|
951 |
+ |
|
952 |
|
double ElectronEnergyRegression::regressionUncertaintyWithTrkVarV2( std::vector<double> &inputvars, |
953 |
|
bool printDebug) |
954 |
|
{ |
958 |
|
return 0; |
959 |
|
} |
960 |
|
|
961 |
< |
//Check that inputvars vector has the right number of inputs |
962 |
< |
assert(inputvars.size() == 46); |
961 |
> |
// Checking if fVersionType is correct |
962 |
> |
assert(fVersionType == kWithTrkVarV2); |
963 |
|
|
964 |
|
// Checking if fVersionType is correct |
965 |
< |
assert(fVersionType == kWithTrkVar); |
965 |
> |
assert(inputvars.size() == 49); |
966 |
|
|
967 |
< |
//assign variables from inputvars array to named variables |
968 |
< |
double SCRawEnergy = inputvars[0]; |
969 |
< |
double scEta = inputvars[1]; |
970 |
< |
double scPhi = inputvars[2]; |
971 |
< |
double R9 = inputvars[3]; |
972 |
< |
double etawidth = inputvars[4]; |
973 |
< |
double phiwidth = inputvars[5]; |
974 |
< |
double NClusters = inputvars[6]; |
975 |
< |
double HoE = inputvars[7]; |
976 |
< |
double rho = inputvars[8]; |
977 |
< |
double vertices = inputvars[9]; |
978 |
< |
double EtaSeed = inputvars[10]; |
979 |
< |
double PhiSeed = inputvars[11]; |
980 |
< |
double ESeed = inputvars[12]; |
981 |
< |
double E3x3Seed = inputvars[13]; |
982 |
< |
double E5x5Seed = inputvars[14]; |
983 |
< |
double see = inputvars[15]; |
984 |
< |
double spp = inputvars[16]; |
985 |
< |
double sep = inputvars[17]; |
986 |
< |
double EMaxSeed = inputvars[18]; |
987 |
< |
double E2ndSeed = inputvars[19]; |
988 |
< |
double ETopSeed = inputvars[20]; |
989 |
< |
double EBottomSeed = inputvars[21]; |
990 |
< |
double ELeftSeed = inputvars[22]; |
991 |
< |
double ERightSeed = inputvars[23]; |
992 |
< |
double E2x5MaxSeed = inputvars[24]; |
993 |
< |
double E2x5TopSeed = inputvars[25]; |
994 |
< |
double E2x5BottomSeed = inputvars[26]; |
995 |
< |
double E2x5LeftSeed = inputvars[27]; |
996 |
< |
double E2x5RightSeed = inputvars[28]; |
997 |
< |
double IEtaSeed = inputvars[29]; |
998 |
< |
double IPhiSeed = inputvars[30]; |
999 |
< |
double EtaCrySeed = inputvars[31]; |
1000 |
< |
double PhiCrySeed = inputvars[32]; |
1001 |
< |
double PreShowerOverRaw = inputvars[33]; |
1002 |
< |
double GsfTrackPIn = inputvars[34]; |
1003 |
< |
double fbrem = inputvars[35]; |
1004 |
< |
double Charge = inputvars[36]; |
1005 |
< |
double EoP = inputvars[37]; |
1006 |
< |
double TrackMomentumError = inputvars[38]; |
1007 |
< |
double detaIn = inputvars[39]; |
1008 |
< |
double dphiIn = inputvars[40]; |
1009 |
< |
double detaCalo = inputvars[41]; |
1010 |
< |
double dphiCalo = inputvars[42]; |
1011 |
< |
double GsfTrackChiSqr = inputvars[43]; |
1012 |
< |
double KFTrackNLayers = inputvars[44]; |
1013 |
< |
double ElectronEnergyOverPout = inputvars[45]; |
967 |
> |
double SCRawEnergy = inputvars[0]; |
968 |
> |
double scEta = inputvars[1]; |
969 |
> |
double scPhi = inputvars[2]; |
970 |
> |
double R9 = inputvars[3]; |
971 |
> |
double etawidth = inputvars[4]; |
972 |
> |
double phiwidth = inputvars[5]; |
973 |
> |
double NClusters = inputvars[6]; |
974 |
> |
double HoE = inputvars[7]; |
975 |
> |
double rho = inputvars[8]; |
976 |
> |
double vertices = inputvars[9]; |
977 |
> |
double EtaSeed = inputvars[10]; |
978 |
> |
double PhiSeed = inputvars[11]; |
979 |
> |
double ESeed = inputvars[12]; |
980 |
> |
double E3x3Seed = inputvars[13]; |
981 |
> |
double E5x5Seed = inputvars[14]; |
982 |
> |
double see = inputvars[15]; |
983 |
> |
double spp = inputvars[16]; |
984 |
> |
double sep = inputvars[17]; |
985 |
> |
double EMaxSeed = inputvars[18]; |
986 |
> |
double E2ndSeed = inputvars[19]; |
987 |
> |
double ETopSeed = inputvars[20]; |
988 |
> |
double EBottomSeed = inputvars[21]; |
989 |
> |
double ELeftSeed = inputvars[22]; |
990 |
> |
double ERightSeed = inputvars[23]; |
991 |
> |
double E2x5MaxSeed = inputvars[24]; |
992 |
> |
double E2x5TopSeed = inputvars[25]; |
993 |
> |
double E2x5BottomSeed = inputvars[26]; |
994 |
> |
double E2x5LeftSeed = inputvars[27]; |
995 |
> |
double E2x5RightSeed = inputvars[28]; |
996 |
> |
double IEtaSeed = inputvars[29]; |
997 |
> |
double IPhiSeed = inputvars[30]; |
998 |
> |
double EtaCrySeed = inputvars[31]; |
999 |
> |
double PhiCrySeed = inputvars[32]; |
1000 |
> |
double PreShowerOverRaw = inputvars[33]; |
1001 |
> |
int IsEcalDriven = inputvars[34]; |
1002 |
> |
double GsfTrackPIn = inputvars[35]; |
1003 |
> |
double fbrem = inputvars[36]; |
1004 |
> |
double Charge = inputvars[37]; |
1005 |
> |
double EoP = inputvars[38]; |
1006 |
> |
double TrackMomentumError = inputvars[39]; |
1007 |
> |
double EcalEnergyError = inputvars[40]; |
1008 |
> |
int Classification = inputvars[41]; |
1009 |
> |
double detaIn = inputvars[42]; |
1010 |
> |
double dphiIn = inputvars[43]; |
1011 |
> |
double detaCalo = inputvars[44]; |
1012 |
> |
double dphiCalo = inputvars[45]; |
1013 |
> |
double GsfTrackChiSqr = inputvars[46]; |
1014 |
> |
double KFTrackNLayers = inputvars[47]; |
1015 |
> |
double ElectronEnergyOverPout = inputvars[48]; |
1016 |
|
|
1017 |
< |
float *vals = (fabs(scEta) <= 1.479) ? new float[50] : new float[43]; |
1017 |
> |
float *vals = (fabs(scEta) <= 1.479) ? new float[53] : new float[46]; |
1018 |
|
if (fabs(scEta) <= 1.479) { // Barrel |
1019 |
|
vals[0] = SCRawEnergy; |
1020 |
|
vals[1] = scEta; |
1046 |
|
vals[27] = E2x5BottomSeed/ESeed; |
1047 |
|
vals[28] = E2x5LeftSeed/ESeed; |
1048 |
|
vals[29] = E2x5RightSeed/ESeed; |
1049 |
< |
vals[30] = GsfTrackPIn; |
1050 |
< |
vals[31] = fbrem; |
1051 |
< |
vals[32] = Charge; |
1052 |
< |
vals[33] = EoP; |
1053 |
< |
vals[34] = TrackMomentumError/GsfTrackPIn; |
1054 |
< |
vals[35] = detaIn; |
1055 |
< |
vals[36] = dphiIn; |
1056 |
< |
vals[37] = detaCalo; |
1057 |
< |
vals[38] = dphiCalo; |
1058 |
< |
vals[39] = GsfTrackChiSqr; |
1059 |
< |
vals[40] = KFTrackNLayers; |
1060 |
< |
vals[41] = ElectronEnergyOverPout; |
1061 |
< |
vals[42] = IEtaSeed; |
1062 |
< |
vals[43] = IPhiSeed; |
1063 |
< |
vals[44] = ((int) IEtaSeed)%5; |
1064 |
< |
vals[45] = ((int) IPhiSeed)%2; |
1065 |
< |
vals[46] = (abs(IEtaSeed)<=25)*(((int)IEtaSeed)%25) + (abs(IEtaSeed)>25)*(((int) (IEtaSeed-25*abs(IEtaSeed)/IEtaSeed))%20); |
1066 |
< |
vals[47] = ((int) IPhiSeed)%20; |
1067 |
< |
vals[48] = EtaCrySeed; |
1068 |
< |
vals[49] = PhiCrySeed; |
1049 |
> |
vals[30] = IsEcalDriven; |
1050 |
> |
vals[31] = GsfTrackPIn; |
1051 |
> |
vals[32] = fbrem; |
1052 |
> |
vals[33] = Charge; |
1053 |
> |
vals[34] = EoP; |
1054 |
> |
vals[35] = TrackMomentumError/GsfTrackPIn; |
1055 |
> |
vals[36] = EcalEnergyError/SCRawEnergy; |
1056 |
> |
vals[37] = Classification; |
1057 |
> |
vals[38] = detaIn; |
1058 |
> |
vals[39] = dphiIn; |
1059 |
> |
vals[40] = detaCalo; |
1060 |
> |
vals[41] = dphiCalo; |
1061 |
> |
vals[42] = GsfTrackChiSqr; |
1062 |
> |
vals[43] = KFTrackNLayers; |
1063 |
> |
vals[44] = ElectronEnergyOverPout; |
1064 |
> |
vals[45] = IEtaSeed; |
1065 |
> |
vals[46] = IPhiSeed; |
1066 |
> |
vals[47] = ((int) IEtaSeed)%5; |
1067 |
> |
vals[48] = ((int) IPhiSeed)%2; |
1068 |
> |
vals[49] = (abs(IEtaSeed)<=25)*(((int)IEtaSeed)%25) + (abs(IEtaSeed)>25)*(((int) (IEtaSeed-25*abs(IEtaSeed)/IEtaSeed))%20); |
1069 |
> |
vals[50] = ((int) IPhiSeed)%20; |
1070 |
> |
vals[51] = EtaCrySeed; |
1071 |
> |
vals[52] = PhiCrySeed; |
1072 |
|
} |
1073 |
|
|
1074 |
|
else { // Endcap |
1102 |
|
vals[27] = E2x5BottomSeed/ESeed; |
1103 |
|
vals[28] = E2x5LeftSeed/ESeed; |
1104 |
|
vals[29] = E2x5RightSeed/ESeed; |
1105 |
< |
vals[30] = GsfTrackPIn; |
1106 |
< |
vals[31] = fbrem; |
1107 |
< |
vals[32] = Charge; |
1108 |
< |
vals[33] = EoP; |
1109 |
< |
vals[34] = TrackMomentumError/GsfTrackPIn; |
1110 |
< |
vals[35] = detaIn; |
1111 |
< |
vals[36] = dphiIn; |
1112 |
< |
vals[37] = detaCalo; |
1113 |
< |
vals[38] = dphiCalo; |
1114 |
< |
vals[39] = GsfTrackChiSqr; |
1115 |
< |
vals[40] = KFTrackNLayers; |
1116 |
< |
vals[41] = ElectronEnergyOverPout; |
1117 |
< |
vals[42] = PreShowerOverRaw; |
1105 |
> |
vals[30] = IsEcalDriven; |
1106 |
> |
vals[31] = GsfTrackPIn; |
1107 |
> |
vals[32] = fbrem; |
1108 |
> |
vals[33] = Charge; |
1109 |
> |
vals[34] = EoP; |
1110 |
> |
vals[35] = TrackMomentumError/GsfTrackPIn; |
1111 |
> |
vals[36] = EcalEnergyError/SCRawEnergy; |
1112 |
> |
vals[37] = Classification; |
1113 |
> |
vals[38] = detaIn; |
1114 |
> |
vals[39] = dphiIn; |
1115 |
> |
vals[40] = detaCalo; |
1116 |
> |
vals[41] = dphiCalo; |
1117 |
> |
vals[42] = GsfTrackChiSqr; |
1118 |
> |
vals[43] = KFTrackNLayers; |
1119 |
> |
vals[44] = ElectronEnergyOverPout; |
1120 |
> |
vals[45] = PreShowerOverRaw; |
1121 |
|
} |
1122 |
|
|
1123 |
|
// Now evaluating the regression |
1124 |
|
double regressionResult = 0; |
1125 |
|
|
1126 |
< |
if (fVersionType == kWithTrkVar) { |
1126 |
> |
if (fVersionType == kWithTrkVarV2) { |
1127 |
|
if (fabs(scEta) <= 1.479) regressionResult = SCRawEnergy * forestUncertainty_eb->GetResponse(vals); |
1128 |
|
else regressionResult = (SCRawEnergy*(1+PreShowerOverRaw)) * forestUncertainty_ee->GetResponse(vals); |
1129 |
|
} |
1130 |
|
|
1131 |
|
//print debug |
1132 |
|
if (printDebug) { |
1133 |
< |
if (scEta <= 1.479) { |
1133 |
> |
if (fabs(scEta) <= 1.479) { |
1134 |
|
std::cout << "Barrel :"; |
1135 |
< |
for (uint v=0; v < 50; ++v) std::cout << vals[v] << ", "; |
1135 |
> |
for (uint v=0; v < 53; ++v) std::cout << vals[v] << ", "; |
1136 |
|
std::cout << "\n"; |
1137 |
|
} |
1138 |
|
else { |
1139 |
|
std::cout << "Endcap :"; |
1140 |
< |
for (uint v=0; v < 43; ++v) std::cout << vals[v] << ", "; |
1140 |
> |
for (uint v=0; v < 46; ++v) std::cout << vals[v] << ", "; |
1141 |
|
std::cout << "\n"; |
1142 |
|
} |
1143 |
|
std::cout << "SCRawEnergy = " << SCRawEnergy << " : PreShowerOverRaw = " << PreShowerOverRaw << std::endl; |