13 #include "CLHEP/Units/GlobalSystemOfUnits.h" 14 #include "CLHEP/Units/GlobalPhysicalConstants.h" 26 edm::LogInfo(
"HFShower") <<
"HFFibre:: Speed of light in fibre " << cFibre
41 std::stringstream ss1;
42 for (
int it=0; it<
nBinAtt; it++) {
43 if(it/10*10 == it) { ss1 <<
"\n"; }
44 ss1 <<
" " <<
attL[it]*cm;
46 edm::LogInfo(
"HFShower") <<
"HFFibre: " << nBinAtt <<
" attL(1/cm): " << ss1.str();
51 lambLim[0] =
static_cast<int>(nvec[0]);
52 lambLim[1] =
static_cast<int>(nvec[1]);
59 std::stringstream ss2;
60 for (
int it=0; it<nb; it++) {
61 if(it/10*10 == it) { ss2 <<
"\n"; }
62 ss2 <<
" " <<
longFL[it]/cm;
64 edm::LogInfo(
"HFShower") <<
"HFFibre: " << nb <<
" Long Fibre Length(cm):" << ss2.str();
67 std::stringstream ss3;
68 for (
int it=0; it<nb; it++) {
69 if(it/10*10 == it) { ss3 <<
"\n"; }
72 edm::LogInfo(
"HFShower") <<
"HFFibre: " << nb <<
" Short Fibre Length(cm):" << ss3.str();
75 <<
" view for " << attribute <<
" matching " 78 <<
"cannot match " << attribute <<
" to " << name <<
"\n";
89 std::stringstream sss;
91 if(
i/10*10 ==
i) { sss <<
"\n"; }
94 edm::LogInfo(
"HFShower") <<
"HFFibre: " <<
radius.size() <<
" rTable(cm):" << sss.str();
106 double att =
attL[j];
108 edm::LogInfo(
"HFShower") <<
"HFFibre::attLength for Lambda " << lambda
109 <<
" index " << i <<
" " << j <<
" Att. Length " 117 double zFibre =
zShift(point, depth, fromEndAbs);
120 edm::LogInfo(
"HFShower") <<
"HFFibre::tShift for point " << point
121 <<
" ( depth = " << depth <<
", traversed length = " 122 << zFibre/cm <<
" cm) = " << time/ns <<
" ns";
130 double hR =
sqrt((point.x())*(point.x())+(point.y())*(point.y()));
132 double length = 250*cm;
133 if (fromEndAbs < 0) {
134 zFibre = 0.5*
gpar[1] - point.z();
145 if (fromEndAbs > 0) {
148 double zz = 0.5*
gpar[1] + point.z();
151 if (depth == 2) zFibre +=
gpar[0];
155 edm::LogInfo(
"HFShower") <<
"HFFibre::zShift for point " << point
156 <<
" (R = " << hR/cm <<
" cm, Index = " << ieta
157 <<
", depth = " << depth <<
", Fibre Length = " 158 << length/cm <<
" cm = " << zFibre/cm
169 LogDebug(
"HFShower") <<
"HFFibre:getDDDArray called for " << str
170 <<
" with nMin " << nmin;
177 const std::vector<double> & fvec = value.
doubles();
178 int nval = fvec.size();
181 edm::LogError(
"HFShower") <<
"HFFibre : # of " << str <<
" bins " 182 << nval <<
" < " << nmin <<
" ==> illegal";
184 <<
"nval < nmin for array " << str <<
"\n";
187 if (nval < 1 && nmin != 0) {
188 edm::LogError(
"HFShower") <<
"HFFibre : # of " << str <<
" bins " 189 << nval <<
" < 1 ==> illegal (nmin=" 192 <<
"nval < 1 for array " << str <<
"\n";
201 <<
"cannot get array " << str <<
"\n";
203 std::vector<double> fvec;
double tShift(const G4ThreeVector &point, int depth, int fromEndAbs=0)
std::vector< double > gpar
T getParameter(std::string const &) const
std::vector< double > getDDDArray(const std::string &, const DDsvalues_type &, int &)
const std::vector< double > & doubles() const
a reference to the double-valued values stored in the given instance of DDValue
void initRun(const HcalDDDSimConstants *)
double attLength(double lambda)
double zShift(const G4ThreeVector &point, int depth, int fromEndAbs=0)
std::vector< double > radius
Compact representation of the geometrical detector hierarchy.
bool DDfetch(const DDsvalues_type *, DDValue &)
helper for retrieving DDValues from DDsvalues_type *.
HFFibre(const std::string &name, const DDCompactView &cpv, edm::ParameterSet const &p)
const std::vector< double > & getRTableHF() const
std::vector< std::pair< unsigned int, DDValue > > DDsvalues_type
std::maps an index to a DDValue. The index corresponds to the index assigned to the name of the std::...
std::vector< double > shortFL
std::vector< double > attL
const std::vector< double > & getGparHF() const
DDsvalues_type mergedSpecifics() const
bool firstChild()
set the current node to the first child ...
*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