@@ -58,19 +58,19 @@ class DrawGridlines : public quality_control::postprocessing::PostProcessingInte
5858 // EMCAL
5959 for (int iside = 0 ; iside <= 48 ; iside += 24 ) {
6060 auto smline = new TLine (static_cast <double >(iside) - 0.5 , -0.5 , static_cast <double >(iside) - 0.5 , 63.5 );
61- smline->SetLineWidth (6 );
61+ smline->SetLineWidth (2 );
6262
6363 histo->GetListOfFunctions ()->Add (smline);
6464 }
6565 for (int iphi = 0 ; iphi < 60 ; iphi += 12 ) {
6666 auto smline = new TLine (-0.5 , static_cast <double >(iphi) - 0.5 , 47.5 , static_cast <double >(iphi) - 0.5 );
67- smline->SetLineWidth (6 );
67+ smline->SetLineWidth (2 );
6868
6969 histo->GetListOfFunctions ()->Add (smline);
7070 }
7171 for (auto iphi = 60 ; iphi <= 64 ; iphi += 4 ) {
7272 auto smline = new TLine (-0.5 , static_cast <double >(iphi) - 0.5 , 47.5 , static_cast <double >(iphi) - 0.5 );
73- smline->SetLineWidth (6 );
73+ smline->SetLineWidth (2 );
7474
7575 histo->GetListOfFunctions ()->Add (smline);
7676 }
@@ -81,26 +81,26 @@ class DrawGridlines : public quality_control::postprocessing::PostProcessingInte
8181 for (int isepeta = 0 ; isepeta < 2 ; isepeta++) {
8282 int etaoffset = sideoffset + isepeta * 16 ;
8383 auto smline = new TLine (static_cast <double >(etaoffset) - 0.5 , 63.5 , static_cast <double >(etaoffset) - 0.5 , 99.5 );
84- smline->SetLineWidth (6 );
84+ smline->SetLineWidth (2 );
8585
8686 histo->GetListOfFunctions ()->Add (smline);
8787 }
8888 for (auto iphi = 76 ; iphi <= 88 ; iphi += 12 ) {
8989 auto smline = new TLine (static_cast <double >(sideoffset) - 0.5 , static_cast <double >(iphi) - 0.5 , static_cast <double >(sideoffset + 16 ) - 0.5 , static_cast <double >(iphi) - 0.5 );
90- smline->SetLineWidth (6 );
90+ smline->SetLineWidth (2 );
9191
9292 histo->GetListOfFunctions ()->Add (smline);
9393 }
9494 }
9595 for (auto iphi = 100 ; iphi <= 104 ; iphi += 4 ) {
9696 auto smline = new TLine (-0.5 , static_cast <double >(iphi) - 0.5 , 47.5 , static_cast <int >(iphi) - 0.5 );
97- smline->SetLineWidth (6 );
97+ smline->SetLineWidth (2 );
9898
9999 histo->GetListOfFunctions ()->Add (smline);
100100 }
101101 for (auto ieta = 0 ; ieta <= 48 ; ieta += 24 ) {
102102 auto smline = new TLine (static_cast <double >(ieta) - 0.5 , 99.5 , static_cast <double >(ieta) - 0.5 , 103.5 );
103- smline->SetLineWidth (6 );
103+ smline->SetLineWidth (2 );
104104
105105 histo->GetListOfFunctions ()->Add (smline);
106106 }
@@ -112,13 +112,31 @@ class DrawGridlines : public quality_control::postprocessing::PostProcessingInte
112112 if (histo == nullptr ) {
113113 return ;
114114 }
115+
116+ // check if the gridlines are already drawn by looking for a line at the first SM boundary
117+ auto * funcs = histo->GetListOfFunctions ();
118+ if (!funcs) {
119+ return ;
120+ }
121+
122+ // Remove previously added grid lines
123+ TIter it (funcs);
124+ TObject* obj = nullptr ;
125+ while ((obj = it ())) {
126+ if (obj->InheritsFrom (TLine::Class ())) {
127+ ILOG (Debug, Support) << " Removing existing grid line from histogram " << histo->GetName () << ENDM;
128+ funcs->Remove (obj);
129+ delete obj;
130+ }
131+ }
132+
115133 // EMCAL
116134 for (int side = 0 ; side < 2 ; side++) {
117135 int sideoffset = 24 * side;
118136 for (int itru = 0 ; itru < 2 ; itru++) {
119137 int truoffset = sideoffset + (itru + 1 ) * 8 ;
120138 auto truline = new TLine (static_cast <int >(truoffset) - 0.5 , -0.5 , static_cast <int >(truoffset) - 0.5 , 59.5 );
121- truline->SetLineWidth (3 );
139+ truline->SetLineWidth (2 );
122140
123141 histo->GetListOfFunctions ()->Add (truline);
124142 }
@@ -128,7 +146,7 @@ class DrawGridlines : public quality_control::postprocessing::PostProcessingInte
128146 for (int side = 0 ; side < 2 ; side++) {
129147 int sideoffset = (side == 0 ) ? 0 : 32 ;
130148 auto truseparator = new TLine (static_cast <double >(sideoffset + 8 ) - 0.5 , 63.5 , static_cast <double >(sideoffset + 8 ) - 0.5 , 99.5 );
131- truseparator->SetLineWidth (3 );
149+ truseparator->SetLineWidth (2 );
132150
133151 histo->GetListOfFunctions ()->Add (truseparator);
134152 }
@@ -140,22 +158,40 @@ class DrawGridlines : public quality_control::postprocessing::PostProcessingInte
140158 if (histo == nullptr ) {
141159 return ;
142160 }
161+
162+ // check if the gridlines are already drawn by looking for a line at the first SM boundary
163+ auto * funcs = histo->GetListOfFunctions ();
164+ if (!funcs) {
165+ return ;
166+ }
167+
168+ // Remove previously added grid lines
169+ TIter it (funcs);
170+ TObject* obj = nullptr ;
171+ while ((obj = it ())) {
172+ if (obj->InheritsFrom (TLine::Class ())) {
173+ ILOG (Debug, Support) << " Removing existing grid line from histogram " << histo->GetName () << ENDM;
174+ funcs->Remove (obj);
175+ delete obj;
176+ }
177+ }
178+
143179 // EMCAL
144180 for (int iside = 0 ; iside <= 96 ; iside += 48 ) {
145181 auto smline = new TLine (static_cast <double >(iside) - 0.5 , -0.5 , static_cast <double >(iside) - 0.5 , 127.5 );
146- smline->SetLineWidth (6 );
182+ smline->SetLineWidth (2 );
147183
148184 histo->GetListOfFunctions ()->Add (smline);
149185 }
150186 for (int iphi = 0 ; iphi < 120 ; iphi += 24 ) {
151187 auto smline = new TLine (-0.5 , static_cast <double >(iphi) - 0.5 , 95.5 , static_cast <double >(iphi) - 0.5 );
152- smline->SetLineWidth (6 );
188+ smline->SetLineWidth (2 );
153189
154190 histo->GetListOfFunctions ()->Add (smline);
155191 }
156192 for (auto iphi = 120 ; iphi <= 128 ; iphi += 8 ) {
157193 auto smline = new TLine (-0.5 , static_cast <double >(iphi) - 0.5 , 95.5 , static_cast <double >(iphi) - 0.5 );
158- smline->SetLineWidth (6 );
194+ smline->SetLineWidth (2 );
159195
160196 histo->GetListOfFunctions ()->Add (smline);
161197 }
@@ -166,26 +202,26 @@ class DrawGridlines : public quality_control::postprocessing::PostProcessingInte
166202 for (int isepeta = 0 ; isepeta < 2 ; isepeta++) {
167203 int etaoffset = sideoffset + isepeta * 32 ;
168204 auto smline = new TLine (static_cast <double >(etaoffset) - 0.5 , 127.5 , static_cast <double >(etaoffset) - 0.5 , 199.5 );
169- smline->SetLineWidth (6 );
205+ smline->SetLineWidth (2 );
170206
171207 histo->GetListOfFunctions ()->Add (smline);
172208 }
173209 for (auto iphi = 152 ; iphi <= 176 ; iphi += 24 ) {
174210 auto smline = new TLine (static_cast <double >(sideoffset) - 0.5 , static_cast <double >(iphi) - 0.5 , static_cast <double >(sideoffset + 32 ) - 0.5 , static_cast <double >(iphi) - 0.5 );
175- smline->SetLineWidth (6 );
211+ smline->SetLineWidth (2 );
176212
177213 histo->GetListOfFunctions ()->Add (smline);
178214 }
179215 }
180216 for (auto iphi = 200 ; iphi <= 208 ; iphi += 8 ) {
181217 auto smline = new TLine (-0.5 , static_cast <double >(iphi) - 0.5 , 95.5 , static_cast <int >(iphi) - 0.5 );
182- smline->SetLineWidth (6 );
218+ smline->SetLineWidth (2 );
183219
184220 histo->GetListOfFunctions ()->Add (smline);
185221 }
186222 for (auto ieta = 0 ; ieta <= 96 ; ieta += 48 ) {
187223 auto smline = new TLine (static_cast <double >(ieta) - 0.5 , 199.5 , static_cast <double >(ieta) - 0.5 , 207.5 );
188- smline->SetLineWidth (6 );
224+ smline->SetLineWidth (2 );
189225
190226 histo->GetListOfFunctions ()->Add (smline);
191227 }
@@ -197,6 +233,24 @@ class DrawGridlines : public quality_control::postprocessing::PostProcessingInte
197233 if (histo == nullptr ) {
198234 return ;
199235 }
236+
237+ // check if the gridlines are already drawn by looking for a line at the first SM boundary
238+ auto * funcs = histo->GetListOfFunctions ();
239+ if (!funcs) {
240+ return ;
241+ }
242+
243+ // Remove previously added grid lines
244+ TIter it (funcs);
245+ TObject* obj = nullptr ;
246+ while ((obj = it ())) {
247+ if (obj->InheritsFrom (TLine::Class ())) {
248+ ILOG (Debug, Support) << " Removing existing grid line from histogram " << histo->GetName () << ENDM;
249+ funcs->Remove (obj);
250+ delete obj;
251+ }
252+ }
253+
200254 // EMCAL
201255 for (int iphi = 1 ; iphi < 64 ; iphi++) {
202256 auto fastorLine = new TLine (-0.5 , static_cast <double >(iphi) - 0.5 , 47.5 , static_cast <double >(iphi) - 0.5 );
0 commit comments