using namespace std; #include #include #include // 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_HTMLFor more information, see the QA home page. 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(); }