96 vector<std::string> highOccChips_uSide ;
97 vector<std::string> highOccChips_vSide ;
98 vector<std::string> highOccChipsStripNum_uSide ;
99 vector<std::string> highOccChipsStripNum_vSide ;
100 vector<std::string> clusterStrips_uSide ;
101 vector<std::string> clusterStrips_vSide ;
102 vector<std::string> clusterChips_uSide ;
103 vector<int> strips_uSide;
104 vector<int> strips_vSide;
109 if (svdShaperDigit.getSensorID().getLayerNumber() == 3 or svdShaperDigit.getSensorID().getSensorNumber() == 1) {
113 int side = svdShaperDigit.isUStrip();
114 std::string sensorName;
117 double sensorAverage = 0.;
119 int stripID = svdShaperDigit.getCellID();
120 std::string sensorStripNum = sensorName +
"." + std::to_string(stripID);
121 double stripOccupancy =
m_OccupancyCal.getOccupancy(svdShaperDigit.getSensorID(), side, stripID);
125 int adjacentStrip = 0;
126 if (!strips_uSide.empty()) {
127 adjacentStrip = stripID - strips_uSide.back();
129 strips_uSide.push_back(stripID);
130 if (!highOccChips_uSide.empty() && sensorName == highOccChips_uSide.back() && adjacentStrip == 1) {
131 clusterChips_uSide.push_back(sensorName);
132 if (clusterStrips_uSide.empty() || clusterStrips_uSide.back() != sensorStripNum) {
133 clusterStrips_uSide.push_back(highOccChipsStripNum_uSide.back());
135 clusterStrips_uSide.push_back(sensorStripNum);
137 highOccChipsStripNum_uSide.push_back(sensorStripNum);
138 highOccChips_uSide.push_back(sensorName);
142 int adjacentStrip = 0;
143 if (!strips_vSide.empty()) {
144 adjacentStrip = stripID - strips_vSide.back();
146 strips_vSide.push_back(stripID);
147 if (!highOccChips_vSide.empty() && sensorName == highOccChips_vSide.back() && adjacentStrip == 1) {
148 if (clusterStrips_vSide.empty() || clusterStrips_vSide.back() != sensorStripNum) {
149 clusterStrips_vSide.push_back(highOccChipsStripNum_vSide.back());
151 clusterStrips_vSide.push_back(sensorStripNum);
153 highOccChipsStripNum_vSide.push_back(sensorStripNum);
154 highOccChips_vSide.push_back(sensorName);
159 std::sort(clusterChips_uSide.begin(), clusterChips_uSide.end());
160 clusterChips_uSide.erase(unique(clusterChips_uSide.begin(), clusterChips_uSide.end()), clusterChips_uSide.end());
161 int numberOfClusterChips = std::distance(clusterChips_uSide.begin(), std::unique(clusterChips_uSide.begin(),
162 clusterChips_uSide.end()));
167 std::string sensorID = svdShaperDigit.getSensorID();
168 std::string digitID = sensorID +
"." + std::to_string(svdShaperDigit.isUStrip());
169 std::string stripID = digitID +
"." + std::to_string(svdShaperDigit.getCellID());
170 if (std::find(clusterStrips_uSide.begin(), clusterStrips_uSide.end(), stripID) != clusterStrips_uSide.end()) {
171 std::string sensorName;
172 occupancyPDFName(svdShaperDigit.getSensorID(), svdShaperDigit.isUStrip(), sensorName);
174 xTalkStrip->Fill(svdShaperDigit.getCellID(), 1);
176 if (std::find(clusterStrips_vSide.begin(), clusterStrips_vSide.end(), stripID) != clusterStrips_vSide.end()) {
177 std::string sensorName;
178 occupancyPDFName(svdShaperDigit.getSensorID(), svdShaperDigit.isUStrip(), sensorName);
180 xTalkStrip->Fill(svdShaperDigit.getCellID(), 1);