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 "hqavariations.h"

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

//_HADES_CLASS_DESCRIPTION
//////////////////////////////////////////////////////////////////////////////
//
// HQAVariations
//
// Contains TProfile histograms for monitoring the variations of scalar quantities
// over the course of the run, 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(HQAVariations)

HQAVariations::HQAVariations(Int_t intervalSize)
{
   // Constructor; must be called with the interval size since this is needed to
   // book the histograms.

   maxEvents = intervalSize * 500;

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

void HQAVariations::resetPointers()
{
   // Zero all histogram pointers

   //---- Start histograms
   stCal_meanStrip_Var = 0;
   vtCal_meanStrip_Var = 0;

   //---- Rich histograms
   richCal_n_Var = 0;
   richHit_n_Var = 0;

   //---- Mdc histograms
   mdcCal1_time1_m0_Var = 0;
   mdcCal1_time1_m1_Var = 0;
   mdcCal1_time1_m2_Var = 0;
   mdcCal1_time1_m3_Var = 0;

   //---- Tof histograms
   tofHit_n_Var = 0;

   //---- Tofino histograms

   //---- Shower histograms
   shoHit_n_Var = 0;
   shoHitTof_n_Var = 0;

   //---- Pid histograms
   particleCand_n_Var = 0;
   particleCandLep_n_Var = 0;

}

void HQAVariations::activateHist()
{
   // This function removes histograms from the histList TList which
   // are not listed in QAvarhists.h.

   TList *activeList = new TList();

   const Char_t *hists[1000] = {
#include "QAvarhists.h"
   };

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

   // Iterate over histList, remove entries which aren't in activeList
   TIter next(histList);
   while (TH1 *hist = (TH1*) next()) {
      hist->SetXTitle("event number (position in DST file)");
      if (! activeList->Contains(hist->GetName()))
         histList->Remove(hist);
   }
   activeList->Delete();
   delete activeList;
}

void HQAVariations::bookHist()
{
   // Book histograms and define axis titles and options for drawing

   bookHistEvent();
   bookHistStart();
   bookHistRich();
   bookHistMdc();
   bookHistTof();
   bookHistRpc();
   bookHistShower();
   bookHistPid();

   activateHist();
}

void HQAVariations::bookHistEvent()
{
 
   evtHeader_eventSize_Var = new TProfile("evtHeader_eventSize_Var", "evtHeader: event size", 500, 0., maxEvents);
   evtHeader_eventSize_Var->SetYTitle("event size (bytes)");
   histList->Add(evtHeader_eventSize_Var, "variations--");
}

void HQAVariations::bookHistStart()
{

   stCal_meanStrip_Var = new TProfile("stCal_meanStrip_Var", "StCal: mean strip number", 500, 0., maxEvents);
   stCal_meanStrip_Var->SetYTitle("St mean strip number");
   histList->Add(stCal_meanStrip_Var, "variations--");

   vtCal_meanStrip_Var = new TProfile("vtCal_meanStrip_Var", "VtCal: mean strip number", 500, 0., maxEvents);
   vtCal_meanStrip_Var->SetYTitle("Vt mean strip number");
   histList->Add(vtCal_meanStrip_Var, "variations--");




}

void HQAVariations::bookHistRich()
{

   richCal_n_Var = new TProfile("richCal_n_Var", "richCal: fired pads/event", 500, 0., maxEvents);
   richCal_n_Var->SetYTitle("fired pads/event");
   histList->Add(richCal_n_Var, "variations--");

   richHit_n_Var = new TProfile("richHit_n_Var", "richHit: hits/event", 500, 0., maxEvents);
   richHit_n_Var->SetYTitle("hits/event");
   histList->Add(richHit_n_Var, "variations--");
}

void HQAVariations::bookHistMdc()
{

   mdcCal1_time1_m0_Var = new TProfile("mdcCal1_time1_m0_Var", "mdcCal1: Plane I, average time1", 500, 0., maxEvents);
   mdcCal1_time1_m0_Var->SetYTitle("time (ns)");
   histList->Add(mdcCal1_time1_m0_Var, "variations--");

   mdcCal1_time1_m1_Var = new TProfile("mdcCal1_time1_m1_Var", "mdcCal1: Plane II, average time1", 500, 0., maxEvents);
   mdcCal1_time1_m1_Var->SetYTitle("time (ns)");
   histList->Add(mdcCal1_time1_m1_Var, "variations--");

   mdcCal1_time1_m2_Var = new TProfile("mdcCal1_time1_m2_Var", "mdcCal1: Plane III, average time1", 500, 0., maxEvents);
   mdcCal1_time1_m2_Var->SetYTitle("time (ns)");
   histList->Add(mdcCal1_time1_m2_Var, "variations--");

   mdcCal1_time1_m3_Var = new TProfile("mdcCal1_time1_m3_Var", "mdcCal1: Plane IV, average time1", 500, 0., maxEvents);
   mdcCal1_time1_m3_Var->SetYTitle("time (ns)");
   histList->Add(mdcCal1_time1_m3_Var, "variations--");

   mdcCal1_time2m1_m0_Var = new TProfile("mdcCal1_time2m1_m0_Var", "mdcCal1: Plane I, average time above threshold", 500, 0., maxEvents);
   mdcCal1_time2m1_m0_Var->SetYTitle("time (ns)");
   histList->Add(mdcCal1_time2m1_m0_Var, "variations--");

   mdcCal1_time2m1_m1_Var = new TProfile("mdcCal1_time2m1_m1_Var", "mdcCal1: Plane II, average time above threshold", 500, 0., maxEvents);
   mdcCal1_time2m1_m1_Var->SetYTitle("time (ns)");
   histList->Add(mdcCal1_time2m1_m1_Var, "variations--");

   mdcCal1_time2m1_m2_Var = new TProfile("mdcCal1_time2m1_m2_Var", "mdcCal1: Plane III, average time above threshold", 500, 0., maxEvents);
   mdcCal1_time2m1_m2_Var->SetYTitle("time (ns)");
   histList->Add(mdcCal1_time2m1_m2_Var, "variations--");

   mdcCal1_time2m1_m3_Var = new TProfile("mdcCal1_time2m1_m3_Var", "mdcCal1: Plane IV, average time above threshold", 500, 0., maxEvents);
   mdcCal1_time2m1_m3_Var->SetYTitle("time (ns)");
   histList->Add(mdcCal1_time2m1_m3_Var, "variations--");

}

void HQAVariations::bookHistTof()
{

   tofHit_n_Var = new TProfile("tofHit_n_Var", "tofHit: num hits/event", 500, 0., maxEvents);
   tofHit_n_Var->SetYTitle("hits/event");
   histList->Add(tofHit_n_Var, "variations--");
}

void HQAVariations::bookHistRpc()
{

   rpcHit_n_Var = new TProfile("rpcHit_n_Var", "rpcHit: num hits/event", 500, 0., maxEvents);
   rpcHit_n_Var->SetYTitle("hits/event");
   histList->Add(rpcHit_n_Var, "variations--");

}

void HQAVariations::bookHistShower()
{

   shoHit_n_Var = new TProfile("shoHit_n_Var", "showerHit: num hits/event", 500, 0., maxEvents);
   shoHit_n_Var->SetYTitle("hits/event");
   histList->Add(shoHit_n_Var, "variations--");

   shoHitTof_n_Var = new TProfile("shoHitTof_n_Var", "showerHitTof: num hits/event", 500, 0., maxEvents);
   shoHitTof_n_Var->SetYTitle("hits/event");
   histList->Add(shoHitTof_n_Var, "variations--");
}

void HQAVariations::bookHistPid()
{
   particleCand_n_Var = new TProfile("particleCand_n_Var", "particleCand: objects/event", 500, 0., maxEvents);
   particleCand_n_Var->SetYTitle("particleCands/event");
   histList->Add(particleCand_n_Var, "variations--");

   particleCandLep_n_Var = new TProfile("particleCandLep_n_Var", "particleCand: objects with ring/event", 500, 0., maxEvents);
   particleCandLep_n_Var->SetYTitle("particleCand with ring/event");
   histList->Add(particleCandLep_n_Var, "variations--");
}
































 hqavariations.cc:1
 hqavariations.cc:2
 hqavariations.cc:3
 hqavariations.cc:4
 hqavariations.cc:5
 hqavariations.cc:6
 hqavariations.cc:7
 hqavariations.cc:8
 hqavariations.cc:9
 hqavariations.cc:10
 hqavariations.cc:11
 hqavariations.cc:12
 hqavariations.cc:13
 hqavariations.cc:14
 hqavariations.cc:15
 hqavariations.cc:16
 hqavariations.cc:17
 hqavariations.cc:18
 hqavariations.cc:19
 hqavariations.cc:20
 hqavariations.cc:21
 hqavariations.cc:22
 hqavariations.cc:23
 hqavariations.cc:24
 hqavariations.cc:25
 hqavariations.cc:26
 hqavariations.cc:27
 hqavariations.cc:28
 hqavariations.cc:29
 hqavariations.cc:30
 hqavariations.cc:31
 hqavariations.cc:32
 hqavariations.cc:33
 hqavariations.cc:34
 hqavariations.cc:35
 hqavariations.cc:36
 hqavariations.cc:37
 hqavariations.cc:38
 hqavariations.cc:39
 hqavariations.cc:40
 hqavariations.cc:41
 hqavariations.cc:42
 hqavariations.cc:43
 hqavariations.cc:44
 hqavariations.cc:45
 hqavariations.cc:46
 hqavariations.cc:47
 hqavariations.cc:48
 hqavariations.cc:49
 hqavariations.cc:50
 hqavariations.cc:51
 hqavariations.cc:52
 hqavariations.cc:53
 hqavariations.cc:54
 hqavariations.cc:55
 hqavariations.cc:56
 hqavariations.cc:57
 hqavariations.cc:58
 hqavariations.cc:59
 hqavariations.cc:60
 hqavariations.cc:61
 hqavariations.cc:62
 hqavariations.cc:63
 hqavariations.cc:64
 hqavariations.cc:65
 hqavariations.cc:66
 hqavariations.cc:67
 hqavariations.cc:68
 hqavariations.cc:69
 hqavariations.cc:70
 hqavariations.cc:71
 hqavariations.cc:72
 hqavariations.cc:73
 hqavariations.cc:74
 hqavariations.cc:75
 hqavariations.cc:76
 hqavariations.cc:77
 hqavariations.cc:78
 hqavariations.cc:79
 hqavariations.cc:80
 hqavariations.cc:81
 hqavariations.cc:82
 hqavariations.cc:83
 hqavariations.cc:84
 hqavariations.cc:85
 hqavariations.cc:86
 hqavariations.cc:87
 hqavariations.cc:88
 hqavariations.cc:89
 hqavariations.cc:90
 hqavariations.cc:91
 hqavariations.cc:92
 hqavariations.cc:93
 hqavariations.cc:94
 hqavariations.cc:95
 hqavariations.cc:96
 hqavariations.cc:97
 hqavariations.cc:98
 hqavariations.cc:99
 hqavariations.cc:100
 hqavariations.cc:101
 hqavariations.cc:102
 hqavariations.cc:103
 hqavariations.cc:104
 hqavariations.cc:105
 hqavariations.cc:106
 hqavariations.cc:107
 hqavariations.cc:108
 hqavariations.cc:109
 hqavariations.cc:110
 hqavariations.cc:111
 hqavariations.cc:112
 hqavariations.cc:113
 hqavariations.cc:114
 hqavariations.cc:115
 hqavariations.cc:116
 hqavariations.cc:117
 hqavariations.cc:118
 hqavariations.cc:119
 hqavariations.cc:120
 hqavariations.cc:121
 hqavariations.cc:122
 hqavariations.cc:123
 hqavariations.cc:124
 hqavariations.cc:125
 hqavariations.cc:126
 hqavariations.cc:127
 hqavariations.cc:128
 hqavariations.cc:129
 hqavariations.cc:130
 hqavariations.cc:131
 hqavariations.cc:132
 hqavariations.cc:133
 hqavariations.cc:134
 hqavariations.cc:135
 hqavariations.cc:136
 hqavariations.cc:137
 hqavariations.cc:138
 hqavariations.cc:139
 hqavariations.cc:140
 hqavariations.cc:141
 hqavariations.cc:142
 hqavariations.cc:143
 hqavariations.cc:144
 hqavariations.cc:145
 hqavariations.cc:146
 hqavariations.cc:147
 hqavariations.cc:148
 hqavariations.cc:149
 hqavariations.cc:150
 hqavariations.cc:151
 hqavariations.cc:152
 hqavariations.cc:153
 hqavariations.cc:154
 hqavariations.cc:155
 hqavariations.cc:156
 hqavariations.cc:157
 hqavariations.cc:158
 hqavariations.cc:159
 hqavariations.cc:160
 hqavariations.cc:161
 hqavariations.cc:162
 hqavariations.cc:163
 hqavariations.cc:164
 hqavariations.cc:165
 hqavariations.cc:166
 hqavariations.cc:167
 hqavariations.cc:168
 hqavariations.cc:169
 hqavariations.cc:170
 hqavariations.cc:171
 hqavariations.cc:172
 hqavariations.cc:173
 hqavariations.cc:174
 hqavariations.cc:175
 hqavariations.cc:176
 hqavariations.cc:177
 hqavariations.cc:178
 hqavariations.cc:179
 hqavariations.cc:180
 hqavariations.cc:181
 hqavariations.cc:182
 hqavariations.cc:183
 hqavariations.cc:184
 hqavariations.cc:185
 hqavariations.cc:186
 hqavariations.cc:187
 hqavariations.cc:188
 hqavariations.cc:189
 hqavariations.cc:190
 hqavariations.cc:191
 hqavariations.cc:192
 hqavariations.cc:193
 hqavariations.cc:194
 hqavariations.cc:195
 hqavariations.cc:196
 hqavariations.cc:197
 hqavariations.cc:198
 hqavariations.cc:199
 hqavariations.cc:200
 hqavariations.cc:201
 hqavariations.cc:202
 hqavariations.cc:203
 hqavariations.cc:204
 hqavariations.cc:205
 hqavariations.cc:206
 hqavariations.cc:207
 hqavariations.cc:208
 hqavariations.cc:209
 hqavariations.cc:210
 hqavariations.cc:211
 hqavariations.cc:212
 hqavariations.cc:213
 hqavariations.cc:214
 hqavariations.cc:215
 hqavariations.cc:216
 hqavariations.cc:217
 hqavariations.cc:218
 hqavariations.cc:219
 hqavariations.cc:220
 hqavariations.cc:221
 hqavariations.cc:222
 hqavariations.cc:223
 hqavariations.cc:224
 hqavariations.cc:225
 hqavariations.cc:226
 hqavariations.cc:227
 hqavariations.cc:228
 hqavariations.cc:229
 hqavariations.cc:230
 hqavariations.cc:231
 hqavariations.cc:232
 hqavariations.cc:233
 hqavariations.cc:234
 hqavariations.cc:235
 hqavariations.cc:236
 hqavariations.cc:237
 hqavariations.cc:238
 hqavariations.cc:239
 hqavariations.cc:240
 hqavariations.cc:241
 hqavariations.cc:242
 hqavariations.cc:243
 hqavariations.cc:244
 hqavariations.cc:245
 hqavariations.cc:246
 hqavariations.cc:247
 hqavariations.cc:248
 hqavariations.cc:249
 hqavariations.cc:250
 hqavariations.cc:251
 hqavariations.cc:252
 hqavariations.cc:253
 hqavariations.cc:254
 hqavariations.cc:255
 hqavariations.cc:256
 hqavariations.cc:257
 hqavariations.cc:258
 hqavariations.cc:259
 hqavariations.cc:260