16#include "GaudiKernel/IAIDATupleSvc.h"
17#include "GaudiKernel/IDataProviderSvc.h"
18#include "GaudiKernel/IMessageSvc.h"
19#include "GaudiKernel/INTupleSvc.h"
20#include "GaudiKernel/MsgStream.h"
21#include "GaudiKernel/NTuple.h"
24#include "TDirectory.h"
28#include "TGraphErrors.h"
34#include "MucCalib/MucBoxCal.h"
35#include "MucCalib/MucIdTransform.h"
36#include "MucCalib/MucMark.h"
37#include "MucCalib/MucStripCal.h"
38#include "MucCalib/MucStructConst.h"
45 MucCalibMgr( std::vector<double> jobInfo, std::vector<int> configInfo,
46 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 );
129 double m_layerResults[6][LAYER_MAX];
130 double m_boxResults[6][BOX_MAX];
131 double m_stripResults[6][STRIP_MAX];
139 long m_record[PART_MAX][SEGMENT_MAX][LAYER_MAX][STRIP_INBOX_MAX][5];
149 mark_col m_segDigiCol[PART_MAX][SEGMENT_MAX];
150 vector<mark_col> m_clusterCol;
151 vector<float> m_lineResCol;
152 vector<float> m_quadResCol;
153 vector<float> m_extrResCol;
159 TGraphErrors* m_geLayerEff;
160 TGraphErrors* m_geBoxEff;
161 TGraphErrors* m_geStripEff;
162 TCanvas* m_cv[CALIB_LV_MAX];
166 TH1F* m_hHitMapBarrel_Lay[B_LAY_NUM];
167 TH1F* m_hHitMapEndcap_Lay[2][E_LAY_NUM];
168 TH1F* m_hHitMapBarrel_Seg[B_SEG_NUM];
169 TH1F* m_hHitMapEndcap_Seg[2][E_SEG_NUM];
175 TH1F* m_hTrackDistance;
178 TH1F* m_hTrackPosPhiDiff;
179 TH1F* m_hTrackMomPhiDiff;
181 TH1F* m_hTrackPosThetaDiff;
182 TH1F* m_hTrackMomThetaDiff;
185 TH2F* m_hDimuTracksPosDiff;
186 TH2F* m_hDimuTracksMomDiff;
189 TH2F* m_hPhiCosTheta;
192 TH1F* m_hBarrelResDist[B_LAY_NUM];
193 TH1F* m_hEndcapResDist[E_LAY_NUM];
194 TH1F* m_hBarrelResComp[2];
195 TH1F* m_hEndcapResComp[2];
198 TH2F* m_h2DExpMap[PART_MAX][SEGMENT_MAX][LAYER_MAX];
199 TH2F* m_h2DHitMap[PART_MAX][SEGMENT_MAX][LAYER_MAX];
200 TH2F* m_h2DEffMap[PART_MAX][SEGMENT_MAX][LAYER_MAX];
201 TObjArray* m_histArray;
204 TH1F* m_hBrLayerFire;
205 TH1F* m_hEcLayerFire;
208 TH1F* m_hLayerExpHit;
209 TH1F* m_hLayerEffHit;
210 TH1F* m_hLayerNosHit;
212 TH1F* m_hLayerNosRatio;
223 TH1F* m_hBoxNosRatio;
229 TH1F* m_hStripFireMap[BOX_MAX];
230 TH1F* m_hStripExpHitMap[BOX_MAX];
231 TH1F* m_hStripEffHitMap[BOX_MAX];
232 TH1F* m_hStripNosHitMap[BOX_MAX];
233 TH1F* m_hStripEffMap[BOX_MAX];
234 TH1F* m_hStripNosRatioMap[BOX_MAX];
236 TH1F* m_hStripExpHit;
237 TH1F* m_hStripEffHit;
238 TH1F* m_hStripNosHit;
240 TH1F* m_hStripNosRatio;
246 TH1F* m_hLayerCluster[LAYER_MAX];
247 TH1F* m_hLayerClusterCmp;
248 TH1F* m_hBoxCluster[BOX_MAX];
249 TH1F* m_hBoxClusterCmp;
261 double m_fTotalDAQTime;
262 double m_fTotalJobTime;
263 double m_fCalibLayerNum;
264 double m_fCalibBoxNum;
265 double m_fCalibStripNum;
266 double m_fTotalEvent;
268 double m_fTotalExpHit;
269 double m_fTotalEffHit;
270 double m_fTotalNosHit;
271 double m_fTotalClstNum;
272 double m_fTotalStripArea;
273 double m_fLayerCoverage;
274 double m_fBoxCoverage;
275 double m_fStripCoverage;
280 double m_fLayerEffErr;
281 double m_fLayerNosRatio;
285 double m_fLayerExpHit;
286 double m_fLayerEffHit;
287 double m_fLayerNosHit;
288 double m_fLayerCluster;
289 double m_fLayerTrkNum;
294 double m_fBoxSegment;
298 double m_fBoxNosRatio;
305 double m_fBoxCluster;
311 double m_fStripSegment;
312 double m_fStripLayer;
314 double m_fStripEffErr;
315 double m_fStripNosRatio;
319 double m_fStripExpHit;
320 double m_fStripEffHit;
321 double m_fStripNosHit;
322 double m_fStripTrkNum;
325 NTuple::Tuple* m_eventLogTuple;
326 NTuple::Item<double> m_ntEventId;
327 NTuple::Item<double> m_ntEventTag;
328 NTuple::Item<double> m_ntEsTime;
329 NTuple::Item<double> m_ntDigiNum;
330 NTuple::Item<double> m_ntTrackNum;
331 NTuple::Item<double> m_ntExpHitNum;
332 NTuple::Item<double> m_ntEffHitNum;
333 NTuple::Item<double> m_ntNosHitNum;
334 NTuple::Item<double> m_ntClusterNum;
335 NTuple::Item<double> m_ntEventTime;
337 NTuple::Tuple* m_mdcTrkInfoTuple;
338 NTuple::Item<long> m_charge;
339 NTuple::Item<double> m_mdcpx;
340 NTuple::Item<double> m_mdcpy;
341 NTuple::Item<double> m_mdcpz;
342 NTuple::Item<double> m_mdcpt;
343 NTuple::Item<double> m_mdcpp;
344 NTuple::Item<double> m_mdcphi;
345 NTuple::Item<double> m_mdctheta;
347 NTuple::Tuple* m_trackInfoTuple;
348 NTuple::Item<double> m_ntTrackEvent;
349 NTuple::Item<double> m_ntTrackTag;
350 NTuple::Item<double> m_ntTrackHits;
351 NTuple::Item<double> m_ntTrackSegFly;
352 NTuple::Item<double> m_ntTrackLayFlyA;
353 NTuple::Item<double> m_ntTrackLayFlyB;
354 NTuple::Item<double> m_ntTrackLayFlyC;
355 NTuple::Item<double> m_trkRecMode;
356 NTuple::Item<double> m_chi2;
357 NTuple::Item<double> m_px;
358 NTuple::Item<double> m_py;
359 NTuple::Item<double> m_pz;
360 NTuple::Item<double> m_pt;
361 NTuple::Item<double> m_pp;
362 NTuple::Item<double> m_r;
363 NTuple::Item<double> m_cosTheta;
364 NTuple::Item<double> m_theta;
365 NTuple::Item<double> m_phi;
366 NTuple::Item<double> m_depth;
367 NTuple::Item<double> m_brLastLayer;
368 NTuple::Item<double> m_ecLastLayer;
369 NTuple::Item<double> m_totalHits;
370 NTuple::Item<double> m_totalLayers;
371 NTuple::Item<double> m_maxHitsInLayer;
373 NTuple::Tuple* m_trackDiffTuple;
374 NTuple::Item<double> m_ntDimuTag;
375 NTuple::Item<double> m_ntPosPhiDiff;
376 NTuple::Item<double> m_ntPosThetaDiff;
377 NTuple::Item<double> m_ntMomPhiDiff;
378 NTuple::Item<double> m_ntMomThetaDiff;
380 NTuple::Tuple* m_clusterSizeTuple;
381 NTuple::Item<double> m_ntClusterSize;
383 NTuple::Tuple* m_effWindowTuple;
384 NTuple::Item<double> m_ntEffWindow;
396 NTuple::Tuple* m_resInfoTuple;
397 NTuple::Item<double> m_lineRes;
398 NTuple::Item<double> m_quadRes;
399 NTuple::Item<double> m_extrRes;
400 NTuple::Item<long> m_resPart;
401 NTuple::Item<long> m_resSegment;
402 NTuple::Item<long> m_resLayer;
403 NTuple::Item<long> m_resFired;
404 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()
MucCalibMgr(std::vector< double > jobInfo, std::vector< int > configInfo, std::string outputFile)
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)