MpdTpcDigitizerQAHistograms.cxx 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. //-----------------------------------------------------------
  2. // File and Version Information:
  3. // $Id$
  4. //
  5. // Description:
  6. // Implementation of class TpcMWPCQAHistograms
  7. // see TpcMWPCQAHistograms.h for details
  8. //
  9. // Environment:
  10. // Software developed for the MPC @ NICA
  11. //
  12. // Author List:
  13. // Sergey Merts
  14. //
  15. //
  16. //-----------------------------------------------------------
  17. // Panda Headers ----------------------
  18. // This Class' Header ------------------
  19. #include "MpdTpcDigitizerQAHistograms.h"
  20. MpdTpcDigitizerQAHistograms::MpdTpcDigitizerQAHistograms() :
  21. _hRZ_global(0), _hYZ_local(0),
  22. _hDiffuseXY(0), _hDistortXY(0),
  23. _hX_global(0), _hY_global(0), _hZ_global(0),
  24. _hX_local(0), _hY_local(0), _hZ_local(0), _hXY_local(0), _hXY_global(0),
  25. _hSect_dig(0), _hADC_dig(0),
  26. _hX_dig(0), _hY_dig(0), _hZ_dig(0),
  27. _h3D_dig(0), _h3D_el(0),
  28. _hXT_dig_1(0), _hXT_dig_5(0), _hXT_dig_10(0), _hXT_dig_20(0), _hXT_dig_40(0), _hXT_dig_60(0) {
  29. }
  30. MpdTpcDigitizerQAHistograms::MpdTpcDigitizerQAHistograms(const std::string& suffix) :
  31. _hRZ_global(0), _hYZ_local(0),
  32. _hDiffuseXY(0), _hDistortXY(0),
  33. _hX_global(0), _hY_global(0), _hZ_global(0),
  34. _hX_local(0), _hY_local(0), _hZ_local(0), _hXY_local(0), _hXY_global(0),
  35. _hSect_dig(0), _hADC_dig(0),
  36. _hX_dig(0), _hY_dig(0), _hZ_dig(0),
  37. _h3D_dig(0), _h3D_el(0),
  38. _hXT_dig_1(0), _hXT_dig_5(0), _hXT_dig_10(0), _hXT_dig_20(0), _hXT_dig_40(0), _hXT_dig_60(0) {
  39. }
  40. MpdTpcDigitizerQAHistograms::~MpdTpcDigitizerQAHistograms() {
  41. delete _hRZ_global;
  42. delete _hYZ_local;
  43. delete _hX_dig;
  44. delete _hY_dig;
  45. delete _hZ_dig;
  46. delete _hX_local;
  47. delete _hY_local;
  48. delete _hZ_local;
  49. delete _hXY_local;
  50. delete _hY_global;
  51. delete _hX_global;
  52. delete _hZ_global;
  53. delete _hXY_global;
  54. delete _hSect_dig;
  55. delete _hXY_dig;
  56. delete _h3D_dig;
  57. delete _hADC_dig;
  58. delete _hDiffuseXY;
  59. delete _hDistortXY;
  60. delete _h3D_el;
  61. delete _hXT_dig_1;
  62. delete _hXT_dig_5;
  63. delete _hXT_dig_10;
  64. delete _hXT_dig_20;
  65. delete _hXT_dig_40;
  66. delete _hXT_dig_60;
  67. }
  68. void MpdTpcDigitizerQAHistograms::Initialize() {
  69. UInt_t nTimeBin = 512;
  70. TpcSector* sector = new TpcSector();
  71. UInt_t nSectors = sector->GetNSectors();
  72. UInt_t nRows = sector->GetNumRows();
  73. // UInt_t nInRows = sector->GetNumInnerRows();
  74. UInt_t nPads = sector->GetNumPadsInRow(nRows - 1) * 2;
  75. Float_t zMax = sector->GetLength();
  76. Float_t maxX = sector->GetMaxX();
  77. Float_t maxY = sector->GetSectHeight() + 1.0;
  78. Float_t Rmax = sector->GetRmin() + sector->GetSectHeight();
  79. _h3D_el = CreateHistogram3("3D distribution of electrons in TPC", "X (cm)", "Y (cm)", "Z (cm)", 200, -150, 150, 200, -150, 150, 200, -zMax, zMax);
  80. _hX_local = CreateHistogram1("local X distribution of electrons in TPC", _suffix, "X, cm", 100, -maxX, maxX);
  81. _hY_local = CreateHistogram1("local Y distribution of electrons in TPC", _suffix, "Y, cm", 100, 0.0, maxY);
  82. _hZ_local = CreateHistogram1("local Z distribution of electrons in TPC", _suffix, "Z, cm", 300, 0.0, zMax);
  83. _hXY_local = CreateHistogram2("local XY distribution of electrons in TPC", _suffix, "X, cm", "Y, cm", 500, -maxX, maxX, 500, 0.0, maxY);
  84. _hYZ_local = CreateHistogram2("local ZY distribution of electrons in TPC", _suffix, "Z, cm", "Y, cm", 500, 0.0, zMax, 500, 0.0, maxY);
  85. _hX_global = CreateHistogram1("global X distribution of electrons in TPC", _suffix, "X, cm", 200, -150, 150);
  86. _hY_global = CreateHistogram1("global Y distribution of electrons in TPC", _suffix, "Y, cm", 200, -150, 150);
  87. _hZ_global = CreateHistogram1("global Z distribution of electrons in TPC", _suffix, "Z, cm", 200, -zMax, zMax);
  88. _hXY_global = CreateHistogram2("global XY distribution of electrons in TPC", _suffix, "X, cm", "Y, cm", 800, -150, 150, 800, -150, 150);
  89. _hRZ_global = CreateHistogram2("global ZR distribution of electrons in TPC", _suffix, "Z, cm", "R, cm", 800, -zMax, zMax, 800, -Rmax, Rmax);
  90. _hSect_dig = CreateHistogram1("Sector distribution of TPC digits", _suffix, "number of sector", nSectors, 0, nSectors);
  91. _hADC_dig = CreateHistogram1("Charge distribution of TPC digits", _suffix, "charge", 200, 900, 2000000);
  92. _hX_dig = CreateHistogram1("X distribution of TPC digits", _suffix, "X, pads", nPads, 0, nPads);
  93. _hY_dig = CreateHistogram1("Y distribution of TPC digits", _suffix, "Y, pad rows", nRows, 0, nRows);
  94. _hZ_dig = CreateHistogram1("Z distribution of TPC digits", _suffix, "Z, time bins", nTimeBin, 0, nTimeBin);
  95. _hXY_dig = CreateHistogram2("XY distribution of TPC digits", _suffix, "X, pads", "Y, pad rows", nPads, 0, nPads, nRows, 0, nRows);
  96. _h3D_dig = CreateHistogram3("XYZ distribution of TPC digits", _suffix, "X, pads", "Y, pad rows", "Z, time bins", nPads, 0, nPads, nRows, 0, nRows, nTimeBin, 0, nTimeBin);
  97. _hDiffuseXY = CreateHistogram2("XY diffuse of electrons", _suffix, "X (cm)", "Y (cm)", 400, -2.0, 2.0, 400, -2.0, 2.0);
  98. _hDistortXY = CreateHistogram2("XY distortion of electrons", _suffix, "X (cm)", "Y (cm)", 400, -2.0, 2.0, 400, -2.0, 2.0);
  99. _hXT_dig_1 = CreateHistogram2("XT distribution of TPC digits on PadRow #1", _suffix, "X, pads", "T, time bins", nPads, 0, nPads, nTimeBin, 0, nTimeBin);
  100. _hXT_dig_5 = CreateHistogram2("XT distribution of TPC digits on PadRow #5", _suffix, "X, pads", "T, time bins", nPads, 0, nPads, nTimeBin, 0, nTimeBin);
  101. _hXT_dig_10 = CreateHistogram2("XT distribution of TPC digits on PadRow #10", _suffix, "X, pads", "T, time bins", nPads, 0, nPads, nTimeBin, 0, nTimeBin);
  102. _hXT_dig_20 = CreateHistogram2("XT distribution of TPC digits on PadRow #20", _suffix, "X, pads", "T, time bins", nPads, 0, nPads, nTimeBin, 0, nTimeBin);
  103. _hXT_dig_40 = CreateHistogram2("XT distribution of TPC digits on PadRow #40", _suffix, "X, pads", "T, time bins", nPads, 0, nPads, nTimeBin, 0, nTimeBin);
  104. _hXT_dig_60 = CreateHistogram2("XT distribution of TPC digits on PadRow #60", _suffix, "X, pads", "T, time bins", nPads, 0, nPads, nTimeBin, 0, nTimeBin);
  105. }
  106. void MpdTpcDigitizerQAHistograms::Write() {
  107. _hRZ_global->Write(0, kOverwrite);
  108. _hYZ_local->Write(0, kOverwrite);
  109. _hSect_dig->Write(0, kOverwrite);
  110. _hX_dig->Write(0, kOverwrite);
  111. _hY_dig->Write(0, kOverwrite);
  112. _hZ_dig->Write(0, kOverwrite);
  113. _hX_dig->Write(0, kOverwrite);
  114. _hXY_dig->Write(0, kOverwrite);
  115. _h3D_dig->Write(0, kOverwrite);
  116. _hDiffuseXY->Write(0, kOverwrite);
  117. _hDistortXY->Write(0, kOverwrite);
  118. _hX_local->Write(0, kOverwrite);
  119. _hY_local->Write(0, kOverwrite);
  120. _hXY_global->Write(0, kOverwrite);
  121. _hZ_local->Write(0, kOverwrite);
  122. _hXY_local->Write(0, kOverwrite);
  123. _hX_global->Write(0, kOverwrite);
  124. _hY_global->Write(0, kOverwrite);
  125. _hZ_global->Write(0, kOverwrite);
  126. _hADC_dig->Write(0, kOverwrite);
  127. _h3D_el->Write(0, kOverwrite);
  128. _hXT_dig_1->Write(0, kOverwrite);
  129. _hXT_dig_5->Write(0, kOverwrite);
  130. _hXT_dig_10->Write(0, kOverwrite);
  131. _hXT_dig_20->Write(0, kOverwrite);
  132. _hXT_dig_40->Write(0, kOverwrite);
  133. _hXT_dig_60->Write(0, kOverwrite);
  134. }
  135. ClassImp(MpdTpcDigitizerQAHistograms)