ROOT logo
using namespace std;
#include <iostream>
#include <iomanip>
#include <math.h>
// Root includes
#include "TObjString.h"
#include "TProfile.h"
#include "TList.h"
// Hydra includes
#include "hqascalers.h"

//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-//
//*-- Author : Dan Magestro (magestro@gsi.de)
//*-- Modified : 24/01/2002
//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-//

//_HADES_CLASS_DESCRIPTION
//////////////////////////////////////////////////////////////////////////////
//
// HQAScalers
//
// Contains HQAScaler and HQAScaler6 objects for monitoring scalar quantities,
// used by HQAMaker.
//
// BEGIN_HTML<b><font color="maroon">For more information, see the <a href="http://www-hades.gsi.de/computing/qa/">QA home page</a>.</font></b> END_HTML
//
//////////////////////////////////////////////////////////////////////////////

ClassImp(HQAScalers)
ClassImp(HQAScaler)
ClassImp(HQAScaler6)

HQAScalers::HQAScalers()
{

   scalerList = new TList();
   resetPointers();
}

void HQAScalers::resetPointers()
{
   ;
// Zero all histogram pointers

   //---- Rich scalers
   richCal_n = 0;     //! richCal: pads/event
   richHit_n = 0;     //! richHit: hits/event

   //---- Mdc scalers
   mdcCal1_n_m0 = 0;  //! mdcCal1: Plane I, avg. mult.
   mdcCal1_n_m1 = 0;  //! mdcCal1: Plane II, avg. mult.
   mdcCal1_n_m2 = 0;  //! mdcCal1: Plane III, avg. mult.
   mdcCal1_n_m3 = 0;  //! mdcCal1: Plane IV, avg. mult.

   //---- Tof scalers
   tofHit_n = 0;      //! tofHit: multiplicity/event

   //---- Tofino scalers

   //---- Shower scalers
   shoHit_n = 0;      //! showerHit: multiplicity/event
   shoHitTof_n = 0;   //! showerHit: multiplicity/event

   //---- Kick scalers
   kickTrack_n = 0;   //! kickTrack: tracks/event

   //---- Trigger scalers
   trigRich_n    = 0;      //! trigRich       : RichIPU   hits/event
   trigTof_n     = 0;      //! trigTof        : TofIPU    hits/event
   trigShower_n  = 0;      //! trigShower     : ShowerIPU hits/event
   trigTlepton_n = 0;      //! trigTlepton    : MU Leptons from Tof hits    / event
   trigSlepton_n = 0;      //! trigSlepton    : MU Leptons from Shower hits / event


}

void HQAScalers::activateScalers()
{
// This function removes scalers from the scalerList TList which
// are not listed in QAscalers.h.

   TList *activeList = new TList();

   const Char_t *scalers[1000] = {
#include "QAscalers.h"
   };

   // Convert Char_t to TList of TObjStrings
   for (Int_t i = 0; scalers[i] != 0; i++)
      activeList->Add(new TObjString(scalers[i]));

   // Iterate over histList, remove entries which aren't in activeList
   TIter next(scalerList);
   while (TNamed *scal = (TNamed*) next()) {
      if (! activeList->Contains(scal->GetName()))
         scalerList->Remove(scal);
   }
   activeList->Delete();
   delete activeList;
}

void HQAScalers::bookScalers()
{
// Book scalers and add to TList of active scalers

   //---- Rich scalers
   richCal_n = new HQAScaler6("richCal_n", "richCal: pads/event");
   scalerList->Add(richCal_n, "rich--sectorwise");

   richHit_n = new HQAScaler6("richHit_n", "richHit: hits/event (*1000)");
   scalerList->Add(richHit_n, "rich--sectorwise");

   //---- Mdc scalers
   mdcCal1_n_m0 = new HQAScaler6("mdcCal1_n_m0", "mdcCal1: Plane I, avg. mult.");
   scalerList->Add(mdcCal1_n_m0, "mdc--sectorwise");

   mdcCal1_n_m1 = new HQAScaler6("mdcCal1_n_m1", "mdcCal1: Plane II, avg. mult.");
   scalerList->Add(mdcCal1_n_m1, "mdc--sectorwise");

   mdcCal1_n_m2 = new HQAScaler6("mdcCal1_n_m2", "mdcCal1: Plane III, avg. mult.");
   scalerList->Add(mdcCal1_n_m2, "mdc--sectorwise");

   mdcCal1_n_m3 = new HQAScaler6("mdcCal1_n_m3", "mdcCal1: Plane IV, avg. mult.");
   scalerList->Add(mdcCal1_n_m3, "mdc--sectorwise");

   //---- Tof scalers
   tofHit_n = new HQAScaler6("tofHit_n", "tofHit: multiplicity/event");
   scalerList->Add(tofHit_n, "tof--sectorwise");

   //---- Shower scalers
   shoHit_n = new HQAScaler6("shoHit_n", "showerHit: multiplicity/event");
   scalerList->Add(shoHit_n, "shower--sectorwise");

   shoHitTof_n = new HQAScaler6("shoHitTof_n", "showerHitTof: multiplicity/event");
   scalerList->Add(shoHitTof_n, "shower--sectorwise");

   //---- Kick scalers
   kickTrack_n = new HQAScaler6("kickTrack_n", "kickTrack: tracks/event");
   scalerList->Add(kickTrack_n, "kick--sectorwise");

   //---- Trigger Scalers
   trigRich_n = new HQAScaler6("trigRich_n", "RichIPU: hits/event");
   //scalerList->Add(trigRich_n,"richipu--sectorwise");
   scalerList->Add(trigRich_n, "trigger--sectorwise");

   trigTof_n = new HQAScaler6("trigTof_n", "TofIPU: hits/event");
   //scalerList->Add(trigTof_n,"tofipu--sectorwise");
   scalerList->Add(trigTof_n, "trigger--sectorwise");

   trigShower_n = new HQAScaler6("trigShower_n", "ShowerIPU: hits/event");
   //scalerList->Add(trigShower_n,"showeripu--sectorwise");
   scalerList->Add(trigShower_n, "trigger--sectorwise");

   trigTlepton_n = new HQAScaler6("trigTlepton_n", "MU Leptonen(Tof): hits/event");
   //scalerList->Add(trigTlepton_n,"mu_tlepton--sectorwise");
   scalerList->Add(trigTlepton_n, "trigger--sectorwise");

   trigSlepton_n = new HQAScaler6("trigSlepton_n", "MU Leptonen(Shower): hits/event");
   //scalerList->Add(trigSlepton_n,"mu_slepton--sectorwise");
   scalerList->Add(trigSlepton_n, "trigger--sectorwise");

   //-- TEMPORARY End of Trigger scalers -----

   activateScalers();
}





 hqascalers.cc:1
 hqascalers.cc:2
 hqascalers.cc:3
 hqascalers.cc:4
 hqascalers.cc:5
 hqascalers.cc:6
 hqascalers.cc:7
 hqascalers.cc:8
 hqascalers.cc:9
 hqascalers.cc:10
 hqascalers.cc:11
 hqascalers.cc:12
 hqascalers.cc:13
 hqascalers.cc:14
 hqascalers.cc:15
 hqascalers.cc:16
 hqascalers.cc:17
 hqascalers.cc:18
 hqascalers.cc:19
 hqascalers.cc:20
 hqascalers.cc:21
 hqascalers.cc:22
 hqascalers.cc:23
 hqascalers.cc:24
 hqascalers.cc:25
 hqascalers.cc:26
 hqascalers.cc:27
 hqascalers.cc:28
 hqascalers.cc:29
 hqascalers.cc:30
 hqascalers.cc:31
 hqascalers.cc:32
 hqascalers.cc:33
 hqascalers.cc:34
 hqascalers.cc:35
 hqascalers.cc:36
 hqascalers.cc:37
 hqascalers.cc:38
 hqascalers.cc:39
 hqascalers.cc:40
 hqascalers.cc:41
 hqascalers.cc:42
 hqascalers.cc:43
 hqascalers.cc:44
 hqascalers.cc:45
 hqascalers.cc:46
 hqascalers.cc:47
 hqascalers.cc:48
 hqascalers.cc:49
 hqascalers.cc:50
 hqascalers.cc:51
 hqascalers.cc:52
 hqascalers.cc:53
 hqascalers.cc:54
 hqascalers.cc:55
 hqascalers.cc:56
 hqascalers.cc:57
 hqascalers.cc:58
 hqascalers.cc:59
 hqascalers.cc:60
 hqascalers.cc:61
 hqascalers.cc:62
 hqascalers.cc:63
 hqascalers.cc:64
 hqascalers.cc:65
 hqascalers.cc:66
 hqascalers.cc:67
 hqascalers.cc:68
 hqascalers.cc:69
 hqascalers.cc:70
 hqascalers.cc:71
 hqascalers.cc:72
 hqascalers.cc:73
 hqascalers.cc:74
 hqascalers.cc:75
 hqascalers.cc:76
 hqascalers.cc:77
 hqascalers.cc:78
 hqascalers.cc:79
 hqascalers.cc:80
 hqascalers.cc:81
 hqascalers.cc:82
 hqascalers.cc:83
 hqascalers.cc:84
 hqascalers.cc:85
 hqascalers.cc:86
 hqascalers.cc:87
 hqascalers.cc:88
 hqascalers.cc:89
 hqascalers.cc:90
 hqascalers.cc:91
 hqascalers.cc:92
 hqascalers.cc:93
 hqascalers.cc:94
 hqascalers.cc:95
 hqascalers.cc:96
 hqascalers.cc:97
 hqascalers.cc:98
 hqascalers.cc:99
 hqascalers.cc:100
 hqascalers.cc:101
 hqascalers.cc:102
 hqascalers.cc:103
 hqascalers.cc:104
 hqascalers.cc:105
 hqascalers.cc:106
 hqascalers.cc:107
 hqascalers.cc:108
 hqascalers.cc:109
 hqascalers.cc:110
 hqascalers.cc:111
 hqascalers.cc:112
 hqascalers.cc:113
 hqascalers.cc:114
 hqascalers.cc:115
 hqascalers.cc:116
 hqascalers.cc:117
 hqascalers.cc:118
 hqascalers.cc:119
 hqascalers.cc:120
 hqascalers.cc:121
 hqascalers.cc:122
 hqascalers.cc:123
 hqascalers.cc:124
 hqascalers.cc:125
 hqascalers.cc:126
 hqascalers.cc:127
 hqascalers.cc:128
 hqascalers.cc:129
 hqascalers.cc:130
 hqascalers.cc:131
 hqascalers.cc:132
 hqascalers.cc:133
 hqascalers.cc:134
 hqascalers.cc:135
 hqascalers.cc:136
 hqascalers.cc:137
 hqascalers.cc:138
 hqascalers.cc:139
 hqascalers.cc:140
 hqascalers.cc:141
 hqascalers.cc:142
 hqascalers.cc:143
 hqascalers.cc:144
 hqascalers.cc:145
 hqascalers.cc:146
 hqascalers.cc:147
 hqascalers.cc:148
 hqascalers.cc:149
 hqascalers.cc:150
 hqascalers.cc:151
 hqascalers.cc:152
 hqascalers.cc:153
 hqascalers.cc:154
 hqascalers.cc:155
 hqascalers.cc:156
 hqascalers.cc:157
 hqascalers.cc:158
 hqascalers.cc:159
 hqascalers.cc:160
 hqascalers.cc:161
 hqascalers.cc:162
 hqascalers.cc:163
 hqascalers.cc:164
 hqascalers.cc:165
 hqascalers.cc:166
 hqascalers.cc:167
 hqascalers.cc:168
 hqascalers.cc:169
 hqascalers.cc:170