9 #include "CLHEP/Units/GlobalSystemOfUnits.h"
10 #include "CLHEP/Units/GlobalPhysicalConstants.h"
20 : hcalConstant_(hcons), hcalsimpar_(hps) {
28 std::stringstream ss1;
29 for (
int it = 0; it <
nBinAtt; it++) {
30 if (it / 10 * 10 == it) {
33 ss1 <<
" " <<
attL[it] * CLHEP::cm;
35 edm::LogVerbatim(
"HFShower") <<
"HFFibre: " << nBinAtt <<
" attL(1/cm): " << ss1.str();
43 std::stringstream ss2;
44 for (
unsigned int it = 0; it <
longFL.size(); it++) {
45 if (it / 10 * 10 == it) {
48 ss2 <<
" " <<
longFL[it] / CLHEP::cm;
52 std::stringstream ss3;
53 for (
unsigned int it = 0; it <
shortFL.size(); it++) {
54 if (it / 10 * 10 == it) {
57 ss3 <<
" " <<
shortFL[it] / CLHEP::cm;
66 std::stringstream sss;
68 if (
i / 10 * 10 ==
i) {
71 sss <<
" " <<
radius[
i] / CLHEP::cm;
86 edm::LogVerbatim(
"HFShower") <<
"HFFibre::attLength for Lambda " << lambda <<
" index " << i <<
" " << j
87 <<
" Att. Length " << att;
93 double zFibre =
zShift(point, depth, fromEndAbs);
94 double time = zFibre /
cFibre;
96 edm::LogVerbatim(
"HFShower") <<
"HFFibre::tShift for point " << point <<
" ( depth = " << depth
97 <<
", traversed length = " << zFibre / CLHEP::cm <<
" cm) = " << time / CLHEP::ns
107 double length = 250 * CLHEP::cm;
108 double hR =
sqrt((point.x()) * (point.x()) + (point.y()) * (point.y()));
111 if (fromEndAbs >= 0) {
114 ieta =
nBinR - i - 1;
119 if (static_cast<int>(
shortFL.size()) > ieta)
122 if (static_cast<int>(
longFL.size()) > ieta)
127 if (fromEndAbs > 0) {
130 double zz = 0.5 *
gpar[1] + point.z();
135 edm::LogVerbatim(
"HFShower") <<
"HFFibre::zShift for point " << point <<
" (R = " << hR / CLHEP::cm
136 <<
" cm, Index = " << ieta <<
", depth = " << depth
137 <<
", Fibre Length = " << length / CLHEP::cm <<
" cm = " << zFibre / CLHEP::cm <<
" cm)";
double tShift(const G4ThreeVector &point, int depth, int fromEndAbs=0)
std::vector< double > gpar
Log< level::Info, true > LogVerbatim
HFFibre(const std::string &name, const HcalDDDSimConstants *hcons, const HcalSimulationParameters *hps, edm::ParameterSet const &p)
const HcalDDDSimConstants * hcalConstant_
std::vector< double > shortFiberLength_
std::vector< double > longFiberLength_
double attLength(double lambda)
const HcalSimulationParameters * hcalsimpar_
double zShift(const G4ThreeVector &point, int depth, int fromEndAbs=0)
std::vector< double > radius
std::vector< int > lambdaLimits_
const std::vector< double > & getRTableHF() const
std::vector< double > shortFL
std::vector< double > attL
const std::vector< double > & getGparHF() const
T getParameter(std::string const &) const
std::vector< double > attenuationLength_
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point
std::vector< double > longFL