16#include "GaudiKernel/IDataProviderSvc.h"
17#include "GaudiKernel/IMessageSvc.h"
18#include "GaudiKernel/IAIDATupleSvc.h"
19#include "GaudiKernel/INTupleSvc.h"
20#include "GaudiKernel/NTuple.h"
21#include "GaudiKernel/MsgStream.h"
24#include "TGraphErrors.h"
32#include "TDirectory.h"
34#include "MucCalibAlg/MucStructConst.h"
35#include "MucCalibAlg/MucBoxCal.h"
36#include "MucCalibAlg/MucStripCal.h"
37#include "MucCalibAlg/MucMark.h"
38#include "MucCalibAlg/MucIdTransform.h"
45 MucCalibMgr( std::vector<double> jobInfo, std::vector<int> configInfo, std::string outputFile );
78 StatusCode
FillDigi(
int part,
int segment,
int layer,
int strip );
79 StatusCode
FillExpHit(
int part,
int segment,
int layer,
int strip );
80 StatusCode
FillEffHit(
int part,
int segment,
int layer,
int strip );
81 StatusCode
FillNosHit(
int part,
int segment,
int layer,
int strip );
82 StatusCode
FillCluster(
int part,
int segment,
int layer,
int size );
121 clock_t m_jobStart, m_jobFinish;
122 clock_t m_evtBegin, m_evtEnd;
126 double m_layerResults[6][LAYER_MAX];
127 double m_boxResults[6][BOX_MAX];
136 long m_record[
PART_MAX][SEGMENT_MAX][LAYER_MAX][STRIP_INBOX_MAX][5];
147 vector< mark_col > m_clusterCol;
148 vector<float> m_lineResCol;
149 vector<float> m_quadResCol;
150 vector<float> m_extrResCol;
156 TGraphErrors* m_geLayerEff;
157 TGraphErrors* m_geBoxEff;
158 TGraphErrors* m_geStripEff;
159 TCanvas* m_cv[CALIB_LV_MAX];
172 TH1F* m_hTrackDistance;
175 TH1F* m_hTrackPosPhiDiff;
176 TH1F* m_hTrackMomPhiDiff;
178 TH1F* m_hTrackPosThetaDiff;
179 TH1F* m_hTrackMomThetaDiff;
182 TH2F* m_hDimuTracksPosDiff;
183 TH2F* m_hDimuTracksMomDiff;
186 TH2F* m_hPhiCosTheta;
191 TH1F* m_hBarrelResComp[2];
192 TH1F* m_hEndcapResComp[2];
195 TH2F* m_h2DExpMap[
PART_MAX][SEGMENT_MAX][LAYER_MAX];
196 TH2F* m_h2DHitMap[
PART_MAX][SEGMENT_MAX][LAYER_MAX];
197 TH2F* m_h2DEffMap[
PART_MAX][SEGMENT_MAX][LAYER_MAX];
198 TObjArray* m_histArray;
202 TH1F* m_hBrLayerFire;
203 TH1F* m_hEcLayerFire;
206 TH1F* m_hLayerExpHit;
207 TH1F* m_hLayerEffHit;
208 TH1F* m_hLayerNosHit;
210 TH1F* m_hLayerNosRatio;
221 TH1F* m_hBoxNosRatio;
227 TH1F* m_hStripFireMap[BOX_MAX];
228 TH1F* m_hStripExpHitMap[BOX_MAX];
229 TH1F* m_hStripEffHitMap[BOX_MAX];
230 TH1F* m_hStripNosHitMap[BOX_MAX];
231 TH1F* m_hStripEffMap[BOX_MAX];
232 TH1F* m_hStripNosRatioMap[BOX_MAX];
234 TH1F* m_hStripExpHit;
235 TH1F* m_hStripEffHit;
236 TH1F* m_hStripNosHit;
238 TH1F* m_hStripNosRatio;
244 TH1F* m_hLayerCluster[LAYER_MAX];
245 TH1F* m_hLayerClusterCmp;
246 TH1F* m_hBoxCluster[BOX_MAX];
247 TH1F* m_hBoxClusterCmp;
259 double m_fTotalDAQTime;
260 double m_fTotalJobTime;
261 double m_fCalibLayerNum;
262 double m_fCalibBoxNum;
263 double m_fCalibStripNum;
264 double m_fTotalEvent;
266 double m_fTotalExpHit;
267 double m_fTotalEffHit;
268 double m_fTotalNosHit;
269 double m_fTotalClstNum;
270 double m_fTotalStripArea;
271 double m_fLayerCoverage;
272 double m_fBoxCoverage;
273 double m_fStripCoverage;
278 double m_fLayerEffErr;
279 double m_fLayerNosRatio;
283 double m_fLayerExpHit;
284 double m_fLayerEffHit;
285 double m_fLayerNosHit;
286 double m_fLayerCluster;
287 double m_fLayerTrkNum;
292 double m_fBoxSegment;
296 double m_fBoxNosRatio;
303 double m_fBoxCluster;
309 double m_fStripSegment;
310 double m_fStripLayer;
312 double m_fStripEffErr;
313 double m_fStripNosRatio;
317 double m_fStripExpHit;
318 double m_fStripEffHit;
319 double m_fStripNosHit;
320 double m_fStripTrkNum;
323 NTuple::Tuple* m_eventLogTuple;
324 NTuple::Item<double> m_ntEventId;
325 NTuple::Item<double> m_ntEventTag;
326 NTuple::Item<double> m_ntEsTime;
327 NTuple::Item<double> m_ntDigiNum;
328 NTuple::Item<double> m_ntTrackNum;
329 NTuple::Item<double> m_ntExpHitNum;
330 NTuple::Item<double> m_ntEffHitNum;
331 NTuple::Item<double> m_ntNosHitNum;
332 NTuple::Item<double> m_ntClusterNum;
333 NTuple::Item<double> m_ntEventTime;
335 NTuple::Tuple* m_mdcTrkInfoTuple;
336 NTuple::Item<long> m_charge;
337 NTuple::Item<double> m_mdcpx;
338 NTuple::Item<double> m_mdcpy;
339 NTuple::Item<double> m_mdcpz;
340 NTuple::Item<double> m_mdcpt;
341 NTuple::Item<double> m_mdcpp;
342 NTuple::Item<double> m_mdcphi;
343 NTuple::Item<double> m_mdctheta;
345 NTuple::Tuple* m_trackInfoTuple;
346 NTuple::Item<double> m_ntTrackEvent;
347 NTuple::Item<double> m_ntTrackTag;
348 NTuple::Item<double> m_ntTrackHits;
349 NTuple::Item<double> m_ntTrackSegFly;
350 NTuple::Item<double> m_ntTrackLayFlyA;
351 NTuple::Item<double> m_ntTrackLayFlyB;
352 NTuple::Item<double> m_ntTrackLayFlyC;
353 NTuple::Item<double> m_trkRecMode;
354 NTuple::Item<double> m_chi2;
355 NTuple::Item<double> m_px;
356 NTuple::Item<double> m_py;
357 NTuple::Item<double> m_pz;
358 NTuple::Item<double> m_pt;
359 NTuple::Item<double> m_pp;
360 NTuple::Item<double> m_r;
361 NTuple::Item<double> m_cosTheta;
362 NTuple::Item<double> m_theta;
363 NTuple::Item<double> m_phi;
364 NTuple::Item<double> m_depth;
365 NTuple::Item<double> m_brLastLayer;
366 NTuple::Item<double> m_ecLastLayer;
367 NTuple::Item<double> m_totalHits;
368 NTuple::Item<double> m_totalLayers;
369 NTuple::Item<double> m_maxHitsInLayer;
371 NTuple::Tuple* m_trackDiffTuple;
372 NTuple::Item<double> m_ntDimuTag;
373 NTuple::Item<double> m_ntPosPhiDiff;
374 NTuple::Item<double> m_ntPosThetaDiff;
375 NTuple::Item<double> m_ntMomPhiDiff;
376 NTuple::Item<double> m_ntMomThetaDiff;
378 NTuple::Tuple* m_clusterSizeTuple;
379 NTuple::Item<double> m_ntClusterSize;
381 NTuple::Tuple* m_effWindowTuple;
382 NTuple::Item<double> m_ntEffWindow;
394 NTuple::Tuple* m_resInfoTuple;
395 NTuple::Item<double> m_lineRes;
396 NTuple::Item<double> m_quadRes;
397 NTuple::Item<double> m_extrRes;
398 NTuple::Item<long> m_resPart;
399 NTuple::Item<long> m_resSegment;
400 NTuple::Item<long> m_resLayer;
401 NTuple::Item<long> m_resFired;
402 NTuple::Item<long> m_resMode;
vector< MucMark * > mark_col
StatusCode ClearHistoLV2()
StatusCode InitResHisto()
StatusCode FillEffHit(int part, int segment, int layer, int strip)
StatusCode InitOnlineHisto()
StatusCode Init2DEffHisto()
StatusCode FillExpHit(int part, int segment, int layer, int strip)
StatusCode ClearResHisto()
StatusCode ClearHistoLV0()
StatusCode ClearClusterHisto()
StatusCode AnalyseCluster()
StatusCode ClearHistoLV1()
StatusCode InitHistoLV1()
StatusCode InitHistoLV2()
StatusCode InitClusterHisto()
IDataProviderSvc * eventSvc
StatusCode FillCluster(int part, int segment, int layer, int size)
StatusCode ClearOnlineHisto()
StatusCode EffAndNoiseLV2()
StatusCode InitHistoLV0()
StatusCode EffAndNoiseLV1()
StatusCode FillNosHit(int part, int segment, int layer, int strip)
StatusCode EffAndNoiseLV0()
StatusCode InitConstTree()
StatusCode ClearConstTree()
StatusCode AnalyseEffAndNoise()
StatusCode Clear2DEffHisto()
StatusCode FillDigi(int part, int segment, int layer, int strip)