2 #include "CalibTracker/SiStripCommon/interface/TTREE_FOREACH_ENTRY.hh"
8 TTREE_FOREACH_ENTRY(
tree) {
11 std::vector<unsigned> PLEAF(tsostrackmulti,
tree);
12 std::vector<unsigned> PLEAF(clusterdetid,
tree);
13 std::vector<unsigned> PLEAF(clusterwidth,
tree);
14 std::vector<float> PLEAF(clustervariance,
tree);
15 std::vector<float> PLEAF(tsosdriftx,
tree);
16 std::vector<float> PLEAF(tsosdriftz,
tree);
17 std::vector<float> PLEAF(tsoslocaltheta,
tree);
18 std::vector<float> PLEAF(tsoslocalphi,
tree);
19 std::vector<float> PLEAF(tsosglobalZofunitlocalY,
tree);
21 const unsigned N(clusterdetid.size());
22 std::vector<float> BdotY(
N, 0);
24 std::vector<float> PLEAF(tsosBdotY,
tree);
25 swap(BdotY, tsosBdotY);
27 std::vector<float> localy(
N, 0);
29 std::vector<float> PLEAF(tsoslocaly,
tree);
30 swap(localy, tsoslocaly);
32 std::vector<unsigned> seedstrip(
N, 0);
34 std::vector<unsigned> PLEAF(clusterseedstrip,
tree);
35 swap(seedstrip, clusterseedstrip);
38 for (
unsigned i = 0;
i <
N;
i++) {
40 if (tsostrackmulti[
i] != 1 ||
44 const int sign = tsosglobalZofunitlocalY[
i] < 0 ? -1 : 1;
45 const float tthetaL =
sign * tsosdriftx[
i] / tsosdriftz[
i];
46 const float tthetaT =
sign *
tan(tsoslocaltheta[
i]) *
cos(tsoslocalphi[
i]);
49 granularity(detid, tthetaL, TFE_index, localy[
i], seedstrip[
i] % 128),
65 const float BdotY)
const {
66 book.
fill(tthetaL, gran +
"_reconstruction", 360, -1.0, 1.0);
72 book.
fill(BdotY, gran +
"_field", 101, 1, 5);
73 book.
fill(
width, gran +
"_width", 10, 0, 10);
96 const Long64_t TFE_index,
98 const unsigned apvstrip)
const {
106 gran += (localy < 0 ?
"_yM" :
"_yP") + std::to_string(
abs((
int)(localy /
localYbin_ + (localy < 0 ? -1 : 0))));
116 gran *=
"_sample" + std::to_string(TFE_index %
ensembleSize_);
125 return subdetLabel(detid) +
"_module" + std::to_string(detid());
132 return subdetLabel(detid) +
"_layer" + std::to_string(layer) + (stereo ?
"s" :
"a");