1616
1717// O2 includes
1818#include " TPCBase/CDBInterface.h"
19+ #include " TPCBase/CalDet.h"
20+ #include " TPCBase/CalArray.h"
21+ #include " TPCBase/Painter.h"
1922
2023// QC includes
2124#include " QualityControl/QcInfoLogger.h"
@@ -109,6 +112,8 @@ void IDCs::initialize(Trigger, framework::ServiceRegistryRef)
109112{
110113 mCdbApi .init (mHost );
111114
115+ mIDCZeroScale = std::make_unique<TCanvas>(" c_sides_IDC0_scale" );
116+ mIDCZerOverview = std::make_unique<TCanvas>(" c_sides_IDC0_overview" );
112117 mIDCZeroRadialProf = std::make_unique<TCanvas>(" c_sides_IDC0_radialProfile" );
113118 mIDCZeroStacksA = std::make_unique<TCanvas>(" c_GEMStacks_IDC0_1D_ASide" );
114119 mIDCZeroStacksC = std::make_unique<TCanvas>(" c_GEMStacks_IDC0_1D_CSide" );
@@ -121,6 +126,8 @@ void IDCs::initialize(Trigger, framework::ServiceRegistryRef)
121126 mFourierCoeffsA = std::make_unique<TCanvas>(" c_FourierCoefficients_1D_ASide" );
122127 mFourierCoeffsC = std::make_unique<TCanvas>(" c_FourierCoefficients_1D_CSide" );
123128
129+ getObjectsManager ()->startPublishing (mIDCZeroScale .get ());
130+ getObjectsManager ()->startPublishing (mIDCZerOverview .get ());
124131 getObjectsManager ()->startPublishing (mIDCZeroRadialProf .get ());
125132 getObjectsManager ()->startPublishing (mIDCZeroStacksA .get ());
126133 getObjectsManager ()->startPublishing (mIDCZeroStacksC .get ());
@@ -136,6 +143,8 @@ void IDCs::initialize(Trigger, framework::ServiceRegistryRef)
136143
137144void IDCs::update (Trigger, framework::ServiceRegistryRef)
138145{
146+ mIDCZeroScale .get ()->Clear ();
147+ mIDCZerOverview .get ()->Clear ();
139148 mIDCZeroRadialProf .get ()->Clear ();
140149 mIDCZeroStacksA .get ()->Clear ();
141150 mIDCZeroStacksC .get ()->Clear ();
@@ -163,18 +172,16 @@ void IDCs::update(Trigger, framework::ServiceRegistryRef)
163172 mCCDBHelper .setFourierCoeffs (idcFFTA, Side::A);
164173 mCCDBHelper .setFourierCoeffs (idcFFTC, Side::C);
165174
166- if (idcZeroA) {
175+ if (idcZeroA && idcZeroC) {
176+ // scale IDCZero to the sum of IDCZeros
177+ mCCDBHelper .setIDCZeroScale (true );
178+ mCCDBHelper .drawIDCZeroScale (mIDCZeroScale .get (), true );
167179 mCCDBHelper .drawIDCZeroStackCanvas (mIDCZeroStacksA .get (), Side::A, " IDC0" , mRanges [" IDCZero" ].at (0 ), mRanges [" IDCZero" ].at (1 ), mRanges [" IDCZero" ].at (2 ));
168- }
169-
170- if (idcZeroC) {
171180 mCCDBHelper .drawIDCZeroStackCanvas (mIDCZeroStacksC .get (), Side::C, " IDC0" , mRanges [" IDCZero" ].at (0 ), mRanges [" IDCZero" ].at (1 ), mRanges [" IDCZero" ].at (2 ));
172- }
173-
174- if (idcZeroA && idcZeroC) {
175181 mCCDBHelper .drawIDCZeroRadialProfile (mIDCZeroRadialProf .get (), mRanges [" IDCZero" ].at (0 ), mRanges [" IDCZero" ].at (1 ), mRanges [" IDCZero" ].at (2 ));
176182 }
177-
183+ const auto & calDet = mCCDBHelper .getIDCZeroCalDet ();
184+ o2::tpc::painter::draw (calDet, mRanges [" IDCZeroOveview" ].at (0 ), mRanges [" IDCZeroOveview" ].at (1 ), mRanges [" IDCZeroOveview" ].at (2 ), mIDCZerOverview .get ());
178185 if (idcDeltaA) {
179186 mCCDBHelper .drawIDCZeroStackCanvas (mIDCDeltaStacksA .get (), Side::A, " IDCDelta" , mRanges [" IDCDelta" ].at (0 ), mRanges [" IDCDelta" ].at (1 ), mRanges [" IDCDelta" ].at (2 ));
180187 }
@@ -192,7 +199,7 @@ void IDCs::update(Trigger, framework::ServiceRegistryRef)
192199 }
193200
194201 if (idcFFTC) {
195- mCCDBHelper .drawFourierCoeff (mFourierCoeffsC .get (), Side::C, mRanges [" FourierCoeffs " ].at (0 ), mRanges [" FourierCoeffs " ].at (1 ), mRanges [" FourierCoeffs " ].at (2 ));
202+ mCCDBHelper .drawFourierCoeff (mFourierCoeffsC .get (), Side::C, mRanges [" IDCZeroOveview " ].at (0 ), mRanges [" IDCZeroOveview " ].at (1 ), mRanges [" IDCZeroOveview " ].at (2 ));
196203 }
197204
198205 delete idcZeroA;
@@ -216,6 +223,8 @@ void IDCs::update(Trigger, framework::ServiceRegistryRef)
216223
217224void IDCs::finalize (Trigger, framework::ServiceRegistryRef)
218225{
226+ getObjectsManager ()->stopPublishing (mIDCZeroScale .get ());
227+ getObjectsManager ()->stopPublishing (mIDCZerOverview .get ());
219228 getObjectsManager ()->stopPublishing (mIDCZeroRadialProf .get ());
220229 getObjectsManager ()->stopPublishing (mIDCZeroStacksA .get ());
221230 getObjectsManager ()->stopPublishing (mIDCZeroStacksC .get ());
0 commit comments