9 #include "CLHEP/Units/GlobalSystemOfUnits.h" 10 #include "CLHEP/Units/GlobalPhysicalConstants.h" 20 : hcalConstant_(hcons), hcalsimpar_(hps) {
24 edm::LogVerbatim(
"HFShower") <<
"HFFibre:: Speed of light in fibre " << cFibre <<
" m/ns";
30 std::stringstream ss1;
31 for (
int it = 0; it <
nBinAtt; it++) {
32 if (it / 10 * 10 == it) {
35 ss1 <<
" " <<
attL[it] * CLHEP::cm;
37 edm::LogVerbatim(
"HFShower") <<
"HFFibre: " << nBinAtt <<
" attL(1/cm): " << ss1.str();
49 std::stringstream ss2;
50 for (
unsigned int it = 0; it <
longFL.size(); it++) {
51 if (it / 10 * 10 == it) {
54 ss2 <<
" " <<
longFL[it] / CLHEP::cm;
60 std::stringstream ss3;
61 for (
unsigned int it = 0; it <
shortFL.size(); it++) {
62 if (it / 10 * 10 == it) {
65 ss3 <<
" " <<
shortFL[it] / CLHEP::cm;
76 std::stringstream sss;
78 if (
i / 10 * 10 ==
i) {
81 sss <<
" " <<
radius[
i] / CLHEP::cm;
97 edm::LogVerbatim(
"HFShower") <<
"HFFibre::attLength for Lambda " << lambda <<
" index " << i <<
" " << j
98 <<
" Att. Length " << att;
104 double zFibre =
zShift(point, depth, fromEndAbs);
107 edm::LogVerbatim(
"HFShower") <<
"HFFibre::tShift for point " << point <<
" ( depth = " << depth
108 <<
", traversed length = " << zFibre / CLHEP::cm <<
" cm) = " << time / CLHEP::ns
117 double hR =
sqrt((point.x()) * (point.x()) + (point.y()) * (point.y()));
119 double length = 250 * CLHEP::cm;
120 if (fromEndAbs < 0) {
121 zFibre = 0.5 *
gpar[1] - point.z();
126 ieta =
nBinR - i - 1;
129 if ((
int)(
shortFL.size()) > ieta)
132 if ((
int)(
longFL.size()) > ieta)
136 if (fromEndAbs > 0) {
139 double zz = 0.5 *
gpar[1] + point.z();
147 edm::LogVerbatim(
"HFShower") <<
"HFFibre::zShift for point " << point <<
" (R = " << hR / CLHEP::cm
148 <<
" cm, Index = " << ieta <<
", depth = " << depth
149 <<
", Fibre Length = " << length / CLHEP::cm <<
" cm = " << zFibre / CLHEP::cm <<
" cm)";
double tShift(const G4ThreeVector &point, int depth, int fromEndAbs=0)
std::vector< double > gpar
T getParameter(std::string const &) const
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
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