ATLAS Offline Software
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
TileRawChannelMonTool Class Reference

Class for TileCal monitoring at channel level. More...

#include <TileRawChannelMonTool.h>

Inheritance diagram for TileRawChannelMonTool:
Collaboration diagram for TileRawChannelMonTool:

Classes

struct  Data
 

Public Types

enum  TileFragStatus {
  ALL_OK =0, CRC_ERR =1, ALL_FF =0x10, ALL_00 =0x20,
  NO_FRAG =0x40, NO_ROB =0x80
}
 
enum  Interval_t {
  file = 0, eventsBlock, lumiBlock, lowStat,
  medStat, higStat, run, fill,
  all
}
 An enumeration describing how detailed a particular monitoring object is. More...
 
enum  MgmtAttr_t { ATTRIB_MANAGED = 0, ATTRIB_UNMANAGED = 1, ATTRIB_X_VS_LB = 2 }
 An enumeration describing how the class handles the histogram. More...
 

Public Member Functions

 TileRawChannelMonTool (const std::string &type, const std::string &name, const IInterface *parent)
 
virtual ~TileRawChannelMonTool ()
 
virtual StatusCode initialize () override
 
virtual StatusCode bookHists () override
 Calls bookHists( true, true, true ) and initializes lumiBlock and run numbers. More...
 
virtual StatusCode fillHists () override
 Calls fillHists( bool, bool, bool ); if an eventBlock,lumiBlock, or run has turned over, calls procHists( bool, bool, bool ) and bookHists( bool, bool, bool ). More...
 
virtual StatusCode finalHists () override
 Calls procHists( true, true, true ). More...
 
virtual StatusCode checkHists (bool fromFinalize) override
 This implementation does nothing; equivalent functionality may be provided by procHists(...) with appropriate arguments. More...
 
void bookHists (int ros, int drawer)
 
void drawHists (int ros, int drawer, const std::string &moduleName)
 
void ratioErrorBar (TH1S *hist, double &xmin, double &xmax, double mean)
 
void rangeErrorBar (double &xmin, double &max, double mean)
 
void bookDsp (int ros, int drawer)
 
StatusCode fillDsp (std::map< int, std::vector< double > > &efitMap, std::map< int, std::vector< double > > &tfitMap)
 
StatusCode finalDsp (int ros, int drawer)
 
void drawDsp (int ros, int drawer, const std::string &moduleName)
 
void drawOptFilt (int ros, int drawer, const std::string &moduleName)
 
TF1 * GetTimeFitFunc (TH2S *hist2d)
 Time Slope parameters for CIS runs. More...
 
void LaserFancyPlotting (int ros, int drawer, int maxgain, const std::string &moduleName)
 
virtual StatusCode regHist (TH1 *h, const std::string &system, Interval_t interval, MgmtAttr_t histo_mgmt=ATTRIB_MANAGED, const std::string &chain="", const std::string &merge="")
 Registers a TH1 (including TH2, TH3, and TProfile) to be included in the output stream using logical parameters that describe the histogram. More...
 
virtual StatusCode regHist (TH1 *h, const MonGroup &group)
 Registers a TH1 (including TH2, TH3, and TProfile) to be included in the output stream using logical parameters that describe the histogram. More...
 
virtual StatusCode regGraph (TGraph *g, const std::string &system, Interval_t interval, MgmtAttr_t histo_mgmt=ATTRIB_MANAGED, const std::string &chain="", const std::string &merge="")
 Registers a TGraph to be included in the output stream using logical parameters that describe the graph. More...
 
virtual StatusCode regGraph (TGraph *g, const MonGroup &group)
 Registers a TGraph to be included in the output stream using logical parameters that describe the graph. More...
 
virtual StreamNameFcnstreamNameFunction ()
 Returns the function object that converts logical paramters into a physical stream name. More...
 
virtual StatusCode bookHistograms ()
 An inheriting class should either override this function or bookHists(). More...
 
virtual StatusCode bookHistogramsRecurrent ()
 An inheriting class should either override this function, bookHists() or bookHistograms(). More...
 
virtual StatusCode fillHistograms ()
 An inheriting class should either override this function or fillHists(). More...
 
virtual StatusCode procHistograms ()
 An inheriting class should either override this function or finalHists(). More...
 
virtual void setMonManager (AthenaMonManager *manager)
 Takes a pointer to a managing object to get information from it when needed. More...
 
virtual StatusCode getHist (TH1 *&h, const std::string &hName, const std::string &system, Interval_t interval)
 Returns a TH1 via the pointer passed as the first argument. More...
 
virtual StatusCode getHist (TH1 *&h, const std::string &hName, const MonGroup &group)
 Returns a TH1 via the pointer passed as the first argument. More...
 
virtual StatusCode getHist (TH2 *&h, const std::string &hName, const std::string &system, Interval_t interval)
 Returns a TH2 via the pointer passed as the first argument. More...
 
virtual StatusCode getHist (TH2 *&h, const std::string &hName, const MonGroup &group)
 Returns a TH2 via the pointer passed as the first argument. More...
 
virtual StatusCode regEfficiency (TEfficiency *e, const MonGroup &group)
 Registers a TEfficiency to be included in the output stream using logical parameters that describe the plot. More...
 
virtual StatusCode regTree (TTree *t, const std::string &system, Interval_t interval, MgmtAttr_t histo_mgmt=ATTRIB_MANAGED, const std::string &chain="", const std::string &merge="")
 Registers a TTree to be included in the output stream using logical parameters that describe it. More...
 
virtual StatusCode regTree (TTree *t, const MonGroup &group)
 Registers a TTree to be included in the output stream using logical parameters that describe it. More...
 
virtual StatusCode writeAndDelete (TH1 *h, const MonGroup &group)
 Write out histogram and delete it. More...
 
virtual StatusCode deregHist (TH1 *h)
 De-registers a TH1 from the THistSvc, but does NOT delete the object. More...
 
virtual StatusCode deregGraph (TGraph *g)
 De-registers a TGraph from the THistSvc, but does NOT delete the object. More...
 
virtual StatusCode deregObject (const std::string &objName, const std::string &system, Interval_t interval)
 De-registers a TObject from the THistSvc, but does NOT delete the object. More...
 
virtual StatusCode deregObject (const std::string &objName, const MonGroup &group)
 De-registers a TObject from the THistSvc, but does NOT delete the object. More...
 
virtual StatusCode setupOutputStreams (std::vector< std::string > Mapping=std::vector< std::string >())
 This implementation does nothing—streams in this class should be managed by the AthenaMonManager. More...
 
virtual StatusCode runStat ()
 This implementation does nothing; equivalent functionality may be provided by procHists( true, true, true ). More...
 
virtual bool preSelector ()
 
virtual float lbAverageInteractionsPerCrossing (const EventContext &ctx=Gaudi::Hive::currentContext()) const
 Average mu, i.e. More...
 
virtual float lbInteractionsPerCrossing (const EventContext &ctx=Gaudi::Hive::currentContext()) const
 Instantaneous number of interactions, i.e. More...
 
virtual float lbAverageLuminosity (const EventContext &ctx=Gaudi::Hive::currentContext()) const
 Average luminosity (in ub-1 s-1 => 10^30 cm-2 s-1) More...
 
virtual float lbLuminosityPerBCID (const EventContext &ctx=Gaudi::Hive::currentContext()) const
 Instantaneous luminosity. More...
 
virtual double lbDuration (const EventContext &ctx=Gaudi::Hive::currentContext()) const
 Luminosity block time (in seconds) More...
 
virtual float lbAverageLivefraction (const EventContext &ctx=Gaudi::Hive::currentContext()) const
 Average luminosity livefraction. More...
 
virtual float livefractionPerBCID (const EventContext &ctx=Gaudi::Hive::currentContext()) const
 Livefraction per bunch crossing ID. More...
 
virtual double lbLumiWeight (const EventContext &ctx=Gaudi::Hive::currentContext()) const
 Average Integrated Luminosity Live Fraction. More...
 
 MMTB_DEPRECATED (newLowStatInterval)
 
 MMTB_DEPRECATED (newMedStatInterval)
 
 MMTB_DEPRECATED (newHigStatInterval)
 
 MMTB_DEPRECATED (newLowStat)
 
 MMTB_DEPRECATED (newLumiBlock)
 
 MMTB_DEPRECATED (newRun)
 
 MMTB_DEPRECATED (newEventsBlock)
 
 MMTB_DEPRECATED (endOfEventsBlock)
 
 MMTB_DEPRECATED (endOfLowStat)
 
 MMTB_DEPRECATED (endOfLumiBlock)
 
 MMTB_DEPRECATED (endOfRun)
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Static Public Member Functions

static std::string intervalEnumToString (Interval_t interval)
 Converts a LevelOfDetail_t to a string of the same name. More...
 
static Interval_t intervalStringToEnum (const std::string &str)
 Converts a string to the corresponding Interval_t. More...
 
static const InterfaceID & interfaceID ()
 

Protected Types

typedef std::map< std::string, OutputMetadata * > MDMap_t
 

Protected Member Functions

TH1D * book1D (const std::string &nam, const std::string &tit, int nx, double xmin, double xmax)
 Implicit version of book1D. More...
 
TH1D * book1D (const std::string &dir, const std::string &nam, const std::string &tit, int nx, double xmin, double xmax, Interval_t interval=run, MgmtAttr_t attribute=ATTRIB_MANAGED, const std::string &trigChain="", const std::string &mergeAlgo="")
 
TH2D * book2D (const std::string &nam, const std::string &tit, int nx, double xmin, double xmax, int ny, double ymin, double ymax)
 Implicit version of book2D. More...
 
TH2D * book2D (const std::string &dir, const std::string &nam, const std::string &tit, int nx, double xmin, double xmax, int ny, double ymin, double ymax, Interval_t interval=run, MgmtAttr_t attribute=ATTRIB_MANAGED, const std::string &trigChain="", const std::string &mergeAlgo="")
 
TH1F * book1F (const std::string &dir, const std::string &nam, const std::string &tit, int nx, double xmin, double xmax, Interval_t interval=run, MgmtAttr_t attribute=ATTRIB_MANAGED, const std::string &trigChain="", const std::string &mergeAlgo="")
 
TH1I * book1I (const std::string &dir, const std::string &nam, const std::string &tit, int nx, double xmin, double xmax, Interval_t interval=run, MgmtAttr_t attribute=ATTRIB_MANAGED, const std::string &trigChain="", const std::string &mergeAlgo="")
 
TH1S * book1S (const std::string &dir, const std::string &nam, const std::string &tit, int nx, double xmin, double xmax, Interval_t interval=run, MgmtAttr_t attribute=ATTRIB_MANAGED, const std::string &trigChain="", const std::string &mergeAlgo="")
 
TH1S * book1Sx (const std::string &dir, const std::string &nam, const std::string &tit, int nx, const Double_t *xlgbins, Interval_t interval=run, MgmtAttr_t attribute=ATTRIB_MANAGED, const std::string &trigChain="", const std::string &mergeAlgo="")
 
TH1C * book1C (const std::string &dir, const std::string &nam, const std::string &tit, int nx, double xmin, double xmax, Interval_t interval=run, MgmtAttr_t attribute=ATTRIB_MANAGED, const std::string &trigChain="", const std::string &mergeAlgo="")
 
TH2F * book2F (const std::string &dir, const std::string &nam, const std::string &tit, int nx, double xmin, double xmax, int ny, double ymin, double ymax, Interval_t interval=run, MgmtAttr_t attribute=ATTRIB_MANAGED, const std::string &trigChain="", const std::string &mergeAlgo="")
 
TH2F * book2F (const std::string &dir, const std::string &nam, const std::string &tit, int nx, double xmin, double xmax, int ny, const double *ybins, Interval_t interval=run, MgmtAttr_t attribute=ATTRIB_MANAGED, const std::string &trigChain="", const std::string &mergeAlgo="")
 
TH2I * book2I (const std::string &dir, const std::string &nam, const std::string &tit, int nx, double xmin, double xmax, int ny, double ymin, double ymax, Interval_t interval=run, MgmtAttr_t attribute=ATTRIB_MANAGED, const std::string &trigChain="", const std::string &mergeAlgo="")
 
TH2S * book2S (const std::string &dir, const std::string &nam, const std::string &tit, int nx, double xmin, double xmax, int ny, double ymin, double ymax, Interval_t interval=run, MgmtAttr_t attribute=ATTRIB_MANAGED, const std::string &trigChain="", const std::string &mergeAlgo="")
 
TH2C * book2C (const std::string &dir, const std::string &nam, const std::string &tit, int nx, double xmin, double xmax, int ny, double ymin, double ymax, Interval_t interval=run, MgmtAttr_t attribute=ATTRIB_MANAGED, const std::string &trigChain="", const std::string &mergeAlgo="")
 
TProfile * bookProfile (const std::string &dir, const std::string &nam, const std::string &tit, int nx, double xmin, double xmax, Interval_t interval=run, MgmtAttr_t attribute=ATTRIB_MANAGED, const std::string &trigChain="", const std::string &mergeAlgo="")
 
TProfile * bookProfile (const std::string &dir, const std::string &nam, const std::string &tit, int nx, double xmin, double xmax, double ymin, double ymax, Interval_t interval=run, MgmtAttr_t attribute=ATTRIB_MANAGED, const std::string &trigChain="", const std::string &mergeAlgo="")
 
TProfile * bookProfile (const std::string &dir, const std::string &nam, const std::string &tit, int nx, const float *xbins, Interval_t interval=run, MgmtAttr_t attribute=ATTRIB_MANAGED, const std::string &trigChain="", const std::string &mergeAlgo="")
 
TProfile2D * bookProfile2D (const std::string &dir, const std::string &nam, const std::string &tit, int nx, double xmin, double xmax, int ny, double ymin, double ymax, double zmin, double zmax, Interval_t interval=run, MgmtAttr_t attribute=ATTRIB_MANAGED, const std::string &trigChain="", const std::string &mergeAlgo="")
 
TGraph * bookGraph (const std::string &dir, const std::string &nam, const std::string &tit, int N, float *X, float *Y)
 
TGraphErrors * bookGraphErrors (const std::string &dir, const std::string &nam, const std::string &tit, int N, float *X, float *Y, float *X_errors, float *Y_errors)
 
TGraphAsymmErrors * bookGraphAsymmErrors (const std::string &dir, const std::string &nam, const std::string &tit, int N, float *X, float *Y, float *X_errors1, float *X_errors2, float *Y_errors1, float *Y_errors2)
 
TMultiGraph * bookMultiGraph (const std::string &dir, const std::string &nam, const std::string &tit)
 
StatusCode removeTObj (TObject *obj)
 
template<typename T >
void regHist (const std::string &subDir, T *hist, Interval_t interval=run, MgmtAttr_t attribute=ATTRIB_MANAGED, const std::string &trigChain="", const std::string &mergeAlgo="")
 
virtual StatusCode regHist (TH1 *h, const std::string &system, Interval_t interval, MgmtAttr_t histo_mgmt=ATTRIB_MANAGED, const std::string &chain="", const std::string &merge="")
 Registers a TH1 (including TH2, TH3, and TProfile) to be included in the output stream using logical parameters that describe the histogram. More...
 
virtual StatusCode regHist (TH1 *h, const MonGroup &group)
 Registers a TH1 (including TH2, TH3, and TProfile) to be included in the output stream using logical parameters that describe the histogram. More...
 
template<typename T >
void regGraph (const std::string &subDir, T *graph, Interval_t interval=run, MgmtAttr_t attribute=ATTRIB_MANAGED, const std::string &trigChain="", const std::string &mergeAlgo="")
 
virtual StatusCode regGraph (TGraph *g, const std::string &system, Interval_t interval, MgmtAttr_t histo_mgmt=ATTRIB_MANAGED, const std::string &chain="", const std::string &merge="")
 Registers a TGraph to be included in the output stream using logical parameters that describe the graph. More...
 
virtual StatusCode regGraph (TGraph *g, const MonGroup &group)
 Registers a TGraph to be included in the output stream using logical parameters that describe the graph. More...
 
std::string getCellName (unsigned int ros, unsigned int channel)
 
std::string getTMDBCellName (unsigned int ros, unsigned int channel)
 
bool isDisconnected (int ros, int drawer, int ch)
 
StatusCode regManagedHistograms (std::vector< MgmtParams< TH1 > > &templateHistograms)
 
StatusCode regManagedGraphs (std::vector< MgmtParams< TGraph > > &templateGraphs)
 
StatusCode regManagedTrees (std::vector< MgmtParams< TTree > > &templateTrees)
 
StatusCode regManagedEfficiencies (std::vector< MgmtParams< TEfficiency > > &templateEfficiencies)
 
StatusCode parseList (const std::string &, std::vector< std::string > &)
 
void updateTriggersForGroups (std::vector< std::string > &)
 
StatusCode registerMetadata (const std::string &streamName, const std::string &hName, const MonGroup &group)
 
StatusCode THistSvc_deReg_fixTGraph (TFile *file, TGraph *theGraph, std::string &directoryName)
 Fixes THistSvc->deReg(obj) when obj is TGraph instance. More...
 
unsigned int get_nEvents () const
 
long get_procNEventsProp () const
 
virtual bool trigChainsArePassed (std::vector< std::string > &)
 
virtual StreamNameFcngetNewStreamNameFcn () const
 
bool newLowStatIntervalFlag () const
 Flag functions allowing clients to determine when to book new and process old histograms; values are updated by fillHists() based on counting lumiBlocks, and are correctly set when fillHistograms(), bookHistograms() and procHistograms() are called. More...
 
bool newMedStatIntervalFlag () const
 
bool newHigStatIntervalFlag () const
 
bool newLowStatFlag () const
 
bool newLumiBlockFlag () const
 
bool newRunFlag () const
 
bool newEventsBlockFlag () const
 
bool endOfEventsBlockFlag () const
 
bool endOfLowStatFlag () const
 
bool endOfLumiBlockFlag () const
 
bool endOfRunFlag () const
 
void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
 
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed. More...
 

Protected Attributes

const TileIDm_tileID {}
 
const TileHWIDm_tileHWID {}
 
const TileTBIDm_tileTBID {}
 
const TileCablingServicem_cabling {}
 
bool m_savePng {}
 
bool m_savePs {}
 
bool m_saveSvg {}
 
std::vector< int > m_fragIDsToIgnoreDMUerrors
 
std::vector< int > m_fragIDsDemonstrators
 
std::string m_EBcellName [48]
 
std::string m_LBcellName [48]
 
std::string m_TMDB_LB_cell_names [8] = {"D0", "D1L", "D1R", "D2R", "D2L", "D3L", "D3R", ""}
 
std::string m_TMDB_EB_cell_names [4] = {"D5L", "D5R", "D6L", "D6R"}
 
int m_chMapLB [48]
 
int m_chMapEB [48]
 
int m_chMapEBsp [48]
 
std::map< Interval_t, std::vector< MgmtParams< TH1 > > > m_templateHistograms
 
std::map< Interval_t, std::vector< MgmtParams< TGraph > > > m_templateGraphs
 
std::map< Interval_t, std::vector< MgmtParams< TTree > > > m_templateTrees
 
std::map< Interval_t, std::vector< MgmtParams< TEfficiency > > > m_templateEfficiencies
 
std::vector< std::string > m_vTrigChainNames
 
std::vector< std::string > m_vTrigGroupNames
 
MDMap_t m_metadataMap
 
AthenaMonManagerm_manager
 
std::string m_managerNameProp
 
std::string m_fileKey
 
std::string m_dataTypeStr
 
std::string m_environmentStr
 
unsigned int m_detailLevel
 
AthenaMonManager::DataType_t m_dataType
 
AthenaMonManager::Environment_t m_environment
 
StreamNameFcnm_streamNameFcn
 
ServiceHandle< ITHistSvc > m_THistSvc
 
PublicToolHandle< Trig::ITrigDecisionToolm_trigDecTool {this, "TrigDecisionTool",""}
 
PublicToolHandle< ITriggerTranslatorToolm_trigTranslator {this,"TriggerTranslatorTool",""}
 
ToolHandleArray< IDQFilterToolm_DQFilterTools {this,"FilterTools",{}}
 
long m_procNEventsProp
 
std::string m_path
 
long m_preScaleProp
 
std::string m_triggerChainProp
 
std::string m_triggerGroupProp
 
bool m_useTrigger
 
unsigned int m_lastLumiBlock
 
unsigned int m_lastRun
 
int m_lastLowStatInterval
 
int m_lastMedStatInterval
 
int m_lastHigStatInterval
 
unsigned int m_nEvents
 
unsigned int m_nEventsIgnoreTrigger
 
unsigned int m_nLumiBlocks
 
bool m_haveClearedLastEventBlock
 

Private Types

enum  RunType {
  Unknown = 0, PhysRun = 1, LasRun = 2, LedRun = 3,
  PedRun = 4, CisRun = 8, MonoRun = 9, CisRamp = 10
}
 
enum  DspPlot {
  Edsp = 0, Tdsp = 1, chi2dsp = 2, Edsp_fit = 3,
  Tdsp_fit = 4
}
 
enum  sumDspPlot { sumEdsp_fit = 0, sumTdsp_fit = 1, sumEdsp = 2, NsumDsp = 3 }
 
typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

void bookSummaryHistograms (int ros, int drawer)
 
StatusCode fillSummaryHistograms ()
 
void resetSummaryHistograms ()
 
bool checkDmuHeader (std::vector< uint32_t > *headerVec, int dmu)
 The following three functions are implemented to filter data corruption, copied from TileDigitsMonTool.h. More...
 
bool checkDmuHeaderFormat (uint32_t header)
 Function to check that the DMU header format is correct bit_31 of the DMU header must be 1 and bit_17 of the DMU header must be 0 Return true in the case of error. More...
 
bool checkDmuHeaderParity (uint32_t header)
 Function to check that the DMU header parity is correct Parity of the DMU header should be odd Return true in case of error. More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

bool m_bookAll {}
 
bool m_book2D {}
 
bool m_overlaphists {}
 
int m_runType {}
 
std::string m_contName
 
std::string m_contNameDSP
 
std::string m_contNameOF
 
double m_DownLimit {}
 
double m_UpLimit {}
 
double m_lo_IntegralLimit {}
 
double m_med_IntegralLimit {}
 
double m_hi_IntegralLimit {}
 
bool m_useratioerror {}
 
bool m_plotDsp {}
 
bool m_storeGraph {}
 
std::map< int, std::vector< double > > m_efitMap
 
std::map< int, std::vector< double > > m_tfitMap
 
ToolHandle< TileCondToolEmscalem_tileToolEmscale
 
double m_efitThresh {}
 
bool m_corrup [5][64][2][16] ={}
 
const uint32_t * m_cispar
 
bool m_bigain {}
 
int m_nEventsTileMon {}
 
std::unique_ptr< Datam_data
 
TileRawChannelUnit::UNIT m_calibUnit {}
 
int m_summaryUpdateFrequency {}
 
bool m_resetAfterSummaryUpdate {}
 
bool m_doLaserSummaryVsPMT {}
 
bool m_drawHists {}
 
float m_minAmpForCorrectedTime {}
 
std::string m_infoName {}
 
const TileInfom_tileInfo {}
 
bool m_is12bit {}
 
SG::ReadHandleKey< TileDQstatusm_DQstatusKey
 
int m_intCalibUnit {}
 
double m_dac2Charge [3] ={}
 
bool m_newLowStatInterval
 
bool m_newMedStatInterval
 
bool m_newHigStatInterval
 
bool m_newLowStat
 
bool m_newLumiBlock
 
bool m_newRun
 
bool m_newEventsBlock
 
bool m_endOfEventsBlock
 
bool m_endOfLowStat
 
bool m_endOfLumiBlock
 
bool m_endOfRun
 
SG::ReadCondHandleKey< LuminosityCondDatam_lumiDataKey {this,"LuminosityCondDataKey","LuminosityCondData","SG Key of LuminosityCondData object"}
 
SG::ReadCondHandleKey< LBDurationCondDatam_lbDurationDataKey {this,"LBDurationCondDataKey","LBDurationCondData","SG Key of LBDurationCondData object"}
 
SG::ReadCondHandleKey< TrigLiveFractionCondDatam_trigLiveFractionDataKey {this,"TrigLiveFractionCondDataKey","TrigLiveFractionCondData","SG Key of TrigLiveFractionCondData object"}
 
bool m_bookHistogramsInitial
 
bool m_useLumi
 
float m_defaultLBDuration
 
std::set< Interval_tm_supportedIntervalsForRebooking
 
Impm_d
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

Class for TileCal monitoring at channel level.

Definition at line 34 of file TileRawChannelMonTool.h.

Member Typedef Documentation

◆ MDMap_t

typedef std::map<std::string,OutputMetadata*> ManagedMonitorToolBase::MDMap_t
protectedinherited

Definition at line 826 of file ManagedMonitorToolBase.h.

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Member Enumeration Documentation

◆ DspPlot

Enumerator
Edsp 
Tdsp 
chi2dsp 
Edsp_fit 
Tdsp_fit 

Definition at line 133 of file TileRawChannelMonTool.h.

133  {
134  Edsp = 0, Tdsp = 1, chi2dsp = 2, Edsp_fit = 3, Tdsp_fit = 4
135  };

◆ Interval_t

An enumeration describing how detailed a particular monitoring object is.

summary: used to summarize the state of the system

runstat: same as summary

shift: used to flag potential problems

expert: essential for diagnosing problems identified by shift-level objects

debug: useful for standalone debugging, but not for routine monitoring; not essential for diagnosing problems during normal running

transient: too detailed to ever be written; always summarized by the user by means of another object An enumeration describing the interval over which a particular monitoring object is filled (i.e., interval over which the method Fill(...) is called). This information may be stored with the monitoring object if an application is only able to partially fill the object (i.e., a job sees only part of a run or fill). This information may be ignored in some running Environments. The 'fill' interval corresponds to a fill of the LHC. The 'all' interval corresponds to all available data. The 'lumiBlock' and 'fill' intervals are only valid for the 'collisions' DataType_t.

Enumerator
file 
eventsBlock 
lumiBlock 
lowStat 
medStat 
higStat 
run 
fill 
all 

Definition at line 113 of file ManagedMonitorToolBase.h.

113  { file = 0, eventsBlock, lumiBlock,
115  run, fill, all };

◆ MgmtAttr_t

An enumeration describing how the class handles the histogram.

attrib_unmanaged: histograms with this attribute will not be rebooked automatically and must be managed by the user code.

attrib_x_is_lb: indicates that the x-axis of the histogram is the luminosity block number and that the histogram should be rebooked as necessary if the current LB exceeds the range.

Enumerator
ATTRIB_MANAGED 
ATTRIB_UNMANAGED 
ATTRIB_X_VS_LB 

Definition at line 130 of file ManagedMonitorToolBase.h.

◆ RunType

Enumerator
Unknown 
PhysRun 
LasRun 
LedRun 
PedRun 
CisRun 
MonoRun 
CisRamp 

Definition at line 123 of file TileRawChannelMonTool.h.

123  {
124  Unknown = 0, PhysRun = 1, // expect monogain
125  LasRun = 2, // expect monogain
126  LedRun = 3, // expect monogain
127  PedRun = 4, // expect bigain
128  CisRun = 8, // expect bigain
129  MonoRun = 9, // expect monogain
130  CisRamp = 10 // expect monogain
131  };

◆ sumDspPlot

Enumerator
sumEdsp_fit 
sumTdsp_fit 
sumEdsp 
NsumDsp 

Definition at line 137 of file TileRawChannelMonTool.h.

137  {
138  sumEdsp_fit = 0, sumTdsp_fit = 1, sumEdsp = 2, NsumDsp = 3
139  };

◆ TileFragStatus

Enumerator
ALL_OK 
CRC_ERR 
ALL_FF 
ALL_00 
NO_FRAG 
NO_ROB 

Definition at line 62 of file TilePaterMonTool.h.

62 {ALL_OK=0, CRC_ERR=1, ALL_FF=0x10, ALL_00=0x20, NO_FRAG=0x40, NO_ROB=0x80};

Constructor & Destructor Documentation

◆ TileRawChannelMonTool()

TileRawChannelMonTool::TileRawChannelMonTool ( const std::string &  type,
const std::string &  name,
const IInterface *  parent 
)

Definition at line 44 of file TileRawChannelMonTool.cxx.

46  , m_tileToolEmscale("TileCondToolEmscale")
47  , m_cispar(0)
48  , m_nEventsTileMon(0)
50  , m_drawHists(true)
51  , m_tileInfo(0)
52 
53 /*---------------------------------------------------------*/
54 {
55  declareInterface<IMonitorToolBase>(this);
56 
57  declareProperty("bookAllDrawers", m_bookAll = false);
58  declareProperty("overlaphists", m_overlaphists = false);
59  declareProperty("book2D", m_book2D = true);
60 
61  // run type 1 - phys, 2 - las, 4 - ped, 8 - cis
62  declareProperty("runType", m_runType = 0);
63  declareProperty("bigain", m_bigain = true);
64  declareProperty("TileRawChannelContainer", m_contName = "TileRawChannelOpt2"); //SG RC Container
65  declareProperty("TileRawChannelContainerDSP", m_contNameDSP = "TileRawChannelCnt"); //SG DSP RC Cell Container
66 
67  declareProperty("AmpQ_down_Limit", m_DownLimit = 0.7);
68  declareProperty("AmpQ_up_Limit", m_UpLimit = 1.3);
69  declareProperty("AmpQ_loIntegralLimit", m_lo_IntegralLimit = 0.005);
70  declareProperty("AmpQ_medIntegralLimit", m_med_IntegralLimit = 0.010);
71  declareProperty("AmpQ_hiIntegralLimit", m_hi_IntegralLimit = 0.015);
72  declareProperty("RatioErrorBar", m_useratioerror = true);
73  declareProperty("PlotDSP", m_plotDsp = false);
74  declareProperty("StoreGraph", m_storeGraph = true);
75  m_path = "/Tile/RawChannel"; //ROOT file directory
76  declareProperty("EfitThresh", m_efitThresh = 0.30); //threshold in pC for DSP check
77  declareProperty("TileCondToolEmscale", m_tileToolEmscale);
78  declareProperty("SummaryUpdateFrequency", m_summaryUpdateFrequency = 0);
79  declareProperty("ResetAfterSummaryUpdate", m_resetAfterSummaryUpdate = false);
80  declareProperty("DoLaserSummaryVsPMT", m_doLaserSummaryVsPMT = false);
81  declareProperty("MinAmpForCorrectedTime", m_minAmpForCorrectedTime = 0.5);
82  declareProperty("TileInfoName", m_infoName = "TileInfo");
83  declareProperty("TileDQstatus", m_DQstatusKey = "TileDQstatus");
85 }

◆ ~TileRawChannelMonTool()

TileRawChannelMonTool::~TileRawChannelMonTool ( )
virtual

Definition at line 88 of file TileRawChannelMonTool.cxx.

90 {
91 }

Member Function Documentation

◆ book1C()

TH1C * TilePaterMonTool::book1C ( const std::string &  dir,
const std::string &  nam,
const std::string &  tit,
int  nx,
double  xmin,
double  xmax,
Interval_t  interval = run,
MgmtAttr_t  attribute = ATTRIB_MANAGED,
const std::string &  trigChain = "",
const std::string &  mergeAlgo = "" 
)
protectedinherited

Definition at line 181 of file TilePaterMonTool.cxx.

185 {
186 
187  TH1C* hist = new TH1C(TString(nam), TString(tit), nx, xmin, xmax);
188  regHist(subdir, hist, interval, attribute, trigChain, mergeAlgo);
189  return hist;
190 }

◆ book1D() [1/2]

TH1D * TilePaterMonTool::book1D ( const std::string &  dir,
const std::string &  nam,
const std::string &  tit,
int  nx,
double  xmin,
double  xmax,
Interval_t  interval = run,
MgmtAttr_t  attribute = ATTRIB_MANAGED,
const std::string &  trigChain = "",
const std::string &  mergeAlgo = "" 
)
protectedinherited

Definition at line 159 of file TilePaterMonTool.cxx.

163 {
164 
165  TH1D* hist = new TH1D(TString(nam), TString(tit), nx, xmin, xmax);
166  regHist(subdir, hist, interval, attribute, trigChain, mergeAlgo);
167  return hist;
168 }

◆ book1D() [2/2]

TH1D* TilePaterMonTool::book1D ( const std::string &  nam,
const std::string &  tit,
int  nx,
double  xmin,
double  xmax 
)
inlineprotectedinherited

Implicit version of book1D.

Definition at line 66 of file TilePaterMonTool.h.

68  {
69  return book1D(m_path, nam, tit, nx, xmin, xmax);
70  }

◆ book1F()

TH1F * TilePaterMonTool::book1F ( const std::string &  dir,
const std::string &  nam,
const std::string &  tit,
int  nx,
double  xmin,
double  xmax,
Interval_t  interval = run,
MgmtAttr_t  attribute = ATTRIB_MANAGED,
const std::string &  trigChain = "",
const std::string &  mergeAlgo = "" 
)
protectedinherited

Definition at line 170 of file TilePaterMonTool.cxx.

174 {
175 
176  TH1F* hist = new TH1F(TString(nam), TString(tit), nx, xmin, xmax);
177  regHist(subdir, hist, interval, attribute, trigChain, mergeAlgo);
178  return hist;
179 }

◆ book1I()

TH1I * TilePaterMonTool::book1I ( const std::string &  dir,
const std::string &  nam,
const std::string &  tit,
int  nx,
double  xmin,
double  xmax,
Interval_t  interval = run,
MgmtAttr_t  attribute = ATTRIB_MANAGED,
const std::string &  trigChain = "",
const std::string &  mergeAlgo = "" 
)
protectedinherited

Definition at line 214 of file TilePaterMonTool.cxx.

218 {
219 
220  TH1I* hist = new TH1I(TString(nam), TString(tit), nx, xmin, xmax);
221  regHist(subdir, hist, interval, attribute, trigChain, mergeAlgo);
222  return hist;
223 }

◆ book1S()

TH1S * TilePaterMonTool::book1S ( const std::string &  dir,
const std::string &  nam,
const std::string &  tit,
int  nx,
double  xmin,
double  xmax,
Interval_t  interval = run,
MgmtAttr_t  attribute = ATTRIB_MANAGED,
const std::string &  trigChain = "",
const std::string &  mergeAlgo = "" 
)
protectedinherited

Definition at line 192 of file TilePaterMonTool.cxx.

196 {
197 
198  TH1S* hist = new TH1S(TString(nam), TString(tit), nx, xmin, xmax);
199  regHist(subdir, hist, interval, attribute, trigChain, mergeAlgo);
200  return hist;
201 }

◆ book1Sx()

TH1S * TilePaterMonTool::book1Sx ( const std::string &  dir,
const std::string &  nam,
const std::string &  tit,
int  nx,
const Double_t *  xlgbins,
Interval_t  interval = run,
MgmtAttr_t  attribute = ATTRIB_MANAGED,
const std::string &  trigChain = "",
const std::string &  mergeAlgo = "" 
)
protectedinherited

Definition at line 203 of file TilePaterMonTool.cxx.

207 {
208 
209  TH1S* hist = new TH1S(TString(nam), TString(tit), nx, xlgbins);
210  regHist(subdir, hist, interval, attribute, trigChain, mergeAlgo);
211  return hist;
212 }

◆ book2C()

TH2C * TilePaterMonTool::book2C ( const std::string &  dir,
const std::string &  nam,
const std::string &  tit,
int  nx,
double  xmin,
double  xmax,
int  ny,
double  ymin,
double  ymax,
Interval_t  interval = run,
MgmtAttr_t  attribute = ATTRIB_MANAGED,
const std::string &  trigChain = "",
const std::string &  mergeAlgo = "" 
)
protectedinherited

Definition at line 285 of file TilePaterMonTool.cxx.

290 {
291  TH2C* hist = new TH2C(TString(nam), TString(tit), nx, xmin, xmax, ny, ymin, ymax);
292  regHist(subdir, hist, interval, attribute, trigChain, mergeAlgo);
293  return hist;
294 }

◆ book2D() [1/2]

TH2D * TilePaterMonTool::book2D ( const std::string &  dir,
const std::string &  nam,
const std::string &  tit,
int  nx,
double  xmin,
double  xmax,
int  ny,
double  ymin,
double  ymax,
Interval_t  interval = run,
MgmtAttr_t  attribute = ATTRIB_MANAGED,
const std::string &  trigChain = "",
const std::string &  mergeAlgo = "" 
)
protectedinherited

Definition at line 228 of file TilePaterMonTool.cxx.

233 {
234  TH2D* hist = new TH2D(TString(nam), TString(tit), nx, xmin, xmax, ny, ymin, ymax);
235  regHist(subdir, hist, interval, attribute, trigChain, mergeAlgo);
236  return hist;
237 }

◆ book2D() [2/2]

TH2D* TilePaterMonTool::book2D ( const std::string &  nam,
const std::string &  tit,
int  nx,
double  xmin,
double  xmax,
int  ny,
double  ymin,
double  ymax 
)
inlineprotectedinherited

Implicit version of book2D.

Definition at line 73 of file TilePaterMonTool.h.

76  {
77  return book2D(m_path, nam, tit, nx, xmin, xmax, ny, ymin, ymax);
78  }

◆ book2F() [1/2]

TH2F * TilePaterMonTool::book2F ( const std::string &  dir,
const std::string &  nam,
const std::string &  tit,
int  nx,
double  xmin,
double  xmax,
int  ny,
const double *  ybins,
Interval_t  interval = run,
MgmtAttr_t  attribute = ATTRIB_MANAGED,
const std::string &  trigChain = "",
const std::string &  mergeAlgo = "" 
)
protectedinherited

Definition at line 250 of file TilePaterMonTool.cxx.

255 {
256  TH2F* hist = new TH2F(TString(nam), TString(tit), nx, xmin, xmax, ny, ybins);
257  regHist(subdir, hist, interval, attribute, trigChain, mergeAlgo);
258  return hist;
259 }

◆ book2F() [2/2]

TH2F * TilePaterMonTool::book2F ( const std::string &  dir,
const std::string &  nam,
const std::string &  tit,
int  nx,
double  xmin,
double  xmax,
int  ny,
double  ymin,
double  ymax,
Interval_t  interval = run,
MgmtAttr_t  attribute = ATTRIB_MANAGED,
const std::string &  trigChain = "",
const std::string &  mergeAlgo = "" 
)
protectedinherited

Definition at line 239 of file TilePaterMonTool.cxx.

244 {
245  TH2F* hist = new TH2F(TString(nam), TString(tit), nx, xmin, xmax, ny, ymin, ymax);
246  regHist(subdir, hist, interval, attribute, trigChain, mergeAlgo);
247  return hist;
248 }

◆ book2I()

TH2I * TilePaterMonTool::book2I ( const std::string &  dir,
const std::string &  nam,
const std::string &  tit,
int  nx,
double  xmin,
double  xmax,
int  ny,
double  ymin,
double  ymax,
Interval_t  interval = run,
MgmtAttr_t  attribute = ATTRIB_MANAGED,
const std::string &  trigChain = "",
const std::string &  mergeAlgo = "" 
)
protectedinherited

Definition at line 262 of file TilePaterMonTool.cxx.

267 {
268  TH2I* hist = new TH2I(TString(nam), TString(tit), nx, xmin, xmax, ny, ymin, ymax);
269  regHist(subdir, hist, interval, attribute, trigChain, mergeAlgo);
270  return hist;
271 }

◆ book2S()

TH2S * TilePaterMonTool::book2S ( const std::string &  dir,
const std::string &  nam,
const std::string &  tit,
int  nx,
double  xmin,
double  xmax,
int  ny,
double  ymin,
double  ymax,
Interval_t  interval = run,
MgmtAttr_t  attribute = ATTRIB_MANAGED,
const std::string &  trigChain = "",
const std::string &  mergeAlgo = "" 
)
protectedinherited

Definition at line 274 of file TilePaterMonTool.cxx.

279 {
280  TH2S *hist = new TH2S(TString(nam), TString(tit), nx, xmin, xmax, ny, ymin, ymax);
281  regHist(subdir, hist, interval, attribute, trigChain, mergeAlgo);
282  return hist;
283 }

◆ bookDsp()

void TileRawChannelMonTool::bookDsp ( int  ros,
int  drawer 
)

Definition at line 365 of file TileRawChannelMonTool.cxx.

367 {
368  const std::array<std::string, 6> gain{ "_lo", "_hi", "", " low gain", " high gain", "" };
369 
370 
371  std::ostringstream sStr;
372 
373  std::string moduleName = TileCalibUtils::getDrawerString(ros, drawer);
374  std::string subDir = moduleName;
375  std::string histName, histTitle;
376 
377  ATH_MSG_DEBUG("in bookDSP() for module " << moduleName);
378 
379  // for bigain run book 2 histograms per channel
380  // for monogain run book just one histogram per channel
381  int mingain = (m_bigain) ? 0 : 2;
382  int maxgain = (m_bigain) ? 2 : 3;
383 
384  for (int gn = mingain; gn < maxgain; ++gn) {
385  std::string finalsubDir = "Summary";
386  sStr.str("");
387  sStr << moduleName << gain[gn] << "_summary_chi2_amp";
388  std::string finalhistName = sStr.str();
389 
390  sStr.str("");
391  if (gn+3 >= std::ssize(gain)) throw std::out_of_range("Index out of range in TileRawChannelMonTool::bookDsp");
392  sStr << moduleName << gain[3 + gn] << " Summary chi2 versus amp";
393  std::string finalhistTitle = sStr.str();
394 
395  switch (gn) {
396  case 0: // low gain
397  m_data->m_finalHistDsp2[ros][drawer][gn].push_back(book2F(finalsubDir, finalhistName, finalhistTitle, 200, -45.1, 855.1, 16, 0., 16.));
398  break;
399  case 1: // high gain
400  m_data->m_finalHistDsp2[ros][drawer][gn].push_back(book2F(finalsubDir, finalhistName, finalhistTitle, 150, -7.0, 12.0, 16, 0., 16.));
401  break;
402  default: // single gain mode
403  if (m_runType == PhysRun) {
404  m_data->m_finalHistDsp2[ros][drawer][gn & 1].push_back(book2F(subDir, finalhistName, finalhistTitle, 150, -7.005, 7.005, 16, 0., 16.));
405 
406  } else {
407  m_data->m_finalHistDsp2[ros][drawer][gn & 1].push_back(book2F(subDir, finalhistName, finalhistTitle, 200, -45.1, 855.1, 16, 0., 16.));
408  }
409  }
410 
411  }
412 
413  for (int ch = 0; ch < 48; ++ch) {
414 
415  // int pmt=m_cabling->channel2hole(ros,ch); // 1:48, negative for non-connected channels
416  // int pmt0 = ((pmt > 0)? pmt-1 : pmt+1); // 0:47, negaitve for non-connected channels
417  sStr.str("");
418  // sStr << std::setfill('0') << std::setw(2) << (abs(pmt)-1) << std::setfill(' ');
419  sStr << std::setfill('0') << std::setw(2) << ch << std::setfill(' ');
420  std::string sCh = sStr.str(); // 00:47, always positive
421 
422  for (int gn = mingain; gn < maxgain; ++gn) {
423 
424  sStr.str("");
425  sStr << moduleName << "_ch_" << sCh << gain[gn] << "_dsp_amp";
426  histName = sStr.str();
427 
428  sStr.str("");
429  if (gn+3 >= std::ssize(gain)) throw std::out_of_range("Index out of range in TileRawChannelMonTool::bookDsp");
430  sStr << moduleName << " CH " << ch << gain[3 + gn] << " Dsp Amp";
431  histTitle = sStr.str();
432 
433  switch (gn) {
434  case 0: // low gain
435  m_data->m_histDsp1[ros][drawer][ch][gn].push_back(book1F(subDir, histName, histTitle, 491, -50.5, 1049.34));
436  break;
437  case 1: // high gain
438  m_data->m_histDsp1[ros][drawer][ch][gn].push_back(book1F(subDir, histName, histTitle, 413, -1.01, 15.51));
439  break;
440  default: // single gain mode
441  if (m_runType == PhysRun) {
442  m_data->m_histDsp1[ros][drawer][ch][gn & 1].push_back(book1F(subDir, histName, histTitle, 100, -0.55, 20.05));
443  } else {
444  m_data->m_histDsp1[ros][drawer][ch][gn & 1].push_back(book1F(subDir, histName, histTitle, 200, -0.5, 800.5));
445  }
446  }
447 
448  sStr.str("");
449  sStr << moduleName << "_ch_" << sCh << gain[gn] << "_dsp_time";
450  histName = sStr.str();
451 
452  sStr.str("");
453  sStr << moduleName << " CH " << ch << gain[3 + gn] << " Dsp Time";
454  histTitle = sStr.str();
455 
456  m_data->m_histDsp1[ros][drawer][ch][gn & 1].push_back(book1F(subDir, histName, histTitle, 101, -100.5, 100.5));
457 
458  sStr.str("");
459  sStr << moduleName << "_ch_" << sCh << gain[gn] << "_dsp_chi2";
460  histName = sStr.str();
461 
462  sStr.str("");
463  sStr << moduleName << " CH " << ch << gain[3 + gn] << " Dsp Chi2";
464  histTitle = sStr.str();
465 
466  m_data->m_histDsp1[ros][drawer][ch][gn & 1].push_back(book1F(subDir, histName, histTitle, 16, -0.5, 15.5));
467 
468  sStr.str("");
469  sStr << moduleName << "_ch_" << sCh << gain[gn] << "_dsp-fit_amp_diff";
470  histName = sStr.str();
471 
472  sStr.str("");
473  sStr << moduleName << " CH " << ch << gain[3 + gn] << " Dsp-OF Amp difference";
474  histTitle = sStr.str();
475 
476  auto ix = (gn < 2) ? gn : (gn & 1);
477  m_data->m_histDsp1[ros][drawer][ch][ix].push_back(book1F(subDir, histName, histTitle, 404, -1.01, 1.01));
478 
479  sStr.str("");
480  sStr << moduleName << "_ch_" << sCh << gain[gn] << "_dsp-fit_time_diff";
481  histName = sStr.str();
482 
483  sStr.str("");
484  sStr << moduleName << " CH " << ch << gain[3 + gn] << " Dsp-OF Time diff";
485  histTitle = sStr.str();
486 
487  m_data->m_histDsp1[ros][drawer][ch][gn & 1].push_back(book1F(subDir, histName, histTitle, 101, -2.02, 2.02));
488 
489  sStr.str("");
490  sStr << moduleName << "_ch_" << sCh << gain[gn] << "_chi2_amp";
491  histName = sStr.str();
492 
493  sStr.str("");
494  sStr << moduleName << " CH " << ch << gain[3 + gn] << " Dsp Chi2 versus Amp";
495  histTitle = sStr.str();
496 
497  switch (gn) {
498  case 0: // low gain
499  m_data->m_histDsp2[ros][drawer][ch][gn].push_back(book2F(subDir, histName, histTitle, 200, -45.1, 855.1, 16, 0., 16.));
500  break;
501  case 1: // high gain
502  m_data->m_histDsp2[ros][drawer][ch][gn].push_back(book2F(subDir, histName, histTitle, 150, -7.0, 12.0, 16, 0., 16.));
503  break;
504  default: // single gain mode
505  if (m_runType == PhysRun) {
506  m_data->m_histDsp2[ros][drawer][ch][gn & 1].push_back(book2F(subDir, histName, histTitle, 150, -7.005, 7.005, 16, 0., 16.));
507  } else {
508  m_data->m_histDsp2[ros][drawer][ch][gn & 1].push_back(book2F(subDir, histName, histTitle, 200, -45.1, 855.1, 16, 0., 16.));
509  }
510  }
511 
512  } //end for over gains
513  } // end for over chans
514 }

◆ bookGraph()

TGraph * TilePaterMonTool::bookGraph ( const std::string &  dir,
const std::string &  nam,
const std::string &  tit,
int  N,
float *  X,
float *  Y 
)
protectedinherited

Definition at line 389 of file TilePaterMonTool.cxx.

389  {
390 
391  TGraph1 *hist = new TGraph1(N, X, Y);
392  hist->SetName(TString(nam));
393  hist->SetTitle(TString(tit));
394 
395  regGraph(subdir, hist);
396 
397  return (TGraph*) hist;
398 }

◆ bookGraphAsymmErrors()

TGraphAsymmErrors * TilePaterMonTool::bookGraphAsymmErrors ( const std::string &  dir,
const std::string &  nam,
const std::string &  tit,
int  N,
float *  X,
float *  Y,
float *  X_errors1,
float *  X_errors2,
float *  Y_errors1,
float *  Y_errors2 
)
protectedinherited

Definition at line 476 of file TilePaterMonTool.cxx.

479 {
480 
481  TGraphAsymmErrors *hist = new TGraphAsymmErrors(N, X, Y, X_errors1, X_errors2, Y_errors1, Y_errors2);
482  hist->SetName(TString(nam));
483  hist->SetTitle(TString(tit));
484 
485  regGraph(subdir, hist);
486  return (TGraphAsymmErrors*) hist;
487 }

◆ bookGraphErrors()

TGraphErrors * TilePaterMonTool::bookGraphErrors ( const std::string &  dir,
const std::string &  nam,
const std::string &  tit,
int  N,
float *  X,
float *  Y,
float *  X_errors,
float *  Y_errors 
)
protectedinherited

Definition at line 419 of file TilePaterMonTool.cxx.

419  {
420 
421  TGraphErrors *hist = new TGraphErrors(N, X, Y, X_errors, Y_errors);
422  hist->SetName(TString(nam));
423  hist->SetTitle(TString(tit));
424 
425  regGraph(subdir, hist);
426  return (TGraphErrors *) hist;
427 }

◆ bookHistograms()

StatusCode ManagedMonitorToolBase::bookHistograms ( )
virtualinherited

◆ bookHistogramsRecurrent()

StatusCode ManagedMonitorToolBase::bookHistogramsRecurrent ( )
virtualinherited

An inheriting class should either override this function, bookHists() or bookHistograms().

Reimplemented in MdtVsTgcRawDataValAlg, MdtVsRpcRawDataValAlg, and ManagedMonitorToolTest.

Definition at line 1286 of file ManagedMonitorToolBase.cxx.

1288 {
1289  if( m_newEventsBlock ) { }
1290  if( m_newLumiBlock ) { }
1291  if( m_newRun ) { }
1292 
1293  return StatusCode::SUCCESS;
1294 }

◆ bookHists() [1/2]

StatusCode TileRawChannelMonTool::bookHists ( )
overridevirtual

Calls bookHists( true, true, true ) and initializes lumiBlock and run numbers.

Reimplemented from ManagedMonitorToolBase.

Definition at line 124 of file TileRawChannelMonTool.cxx.

126 {
127 
128  if (msgLvl(MSG::DEBUG)) {
129  msg(MSG::DEBUG) << "in bookHists()" << endmsg;
130  msg(MSG::DEBUG) << "Using base path " << m_path << endmsg;
131  }
132 
133  if (m_intCalibUnit>=0 && m_intCalibUnit<=3) {
135  }
137  if (m_runType == PhysRun) {
139  } else {
141  }
142  }
143 
144  if (m_bookAll) {
145  for (int ros = 1; ros < 5; ++ros) {
146  for (int drawer = 0; drawer < 64; ++drawer) {
147  bookHists(ros, drawer);
148 
149  if (m_plotDsp) bookDsp(ros, drawer);
150 
151  }
152  }
153  }
154 
155  /* float X_axis[48];
156  float X_errors[48];
157  for (int i = 0; i < 48; i++) {
158  X_axis[i] = i+0.5;
159  X_errors[i] = 0.;
160  }
161 
162  TGraph* test = new TGraph(48,X_axis,X_errors);
163  test->SetNameTitle("LFTESTLBC01","LFTESTLBC01");
164  m_rootsvc->regGraph("/HIST1/Tile/RawChannel/Summary/LFTESTBC01", test);
165 
166  TGraph* test2 = new TGraph(48,X_axis,X_errors);
167  test2->SetNameTitle("LFTESTLBC02","LFTESTLBC02");
168  m_rootsvc->regGraph("/HIST1/Tile/RawChannel/Summary/LFTESTBC02", test2);
169  */
170 
171  //SetBookStatus(true);
172 
173 
174  return StatusCode::SUCCESS;
175 }

◆ bookHists() [2/2]

void TileRawChannelMonTool::bookHists ( int  ros,
int  drawer 
)

Definition at line 179 of file TileRawChannelMonTool.cxx.

181 {
182  const std::array<std::string, 6> gain{ "_lo", "_hi", "", " low gain", " high gain", "" };
183 
184  std::ostringstream sStr;
185  std::string moduleName = TileCalibUtils::getDrawerString(ros, drawer);
186  std::string subDir = moduleName;
187  std::string histName, histTitle;
188 
189  ATH_MSG_DEBUG("in bookHists() for module " << moduleName);
190 
191  // for bigain run book 2 histograms per channel
192  // for monogain run book just one histogram per channel
193  int mingain = (m_bigain) ? 0 : 2;
194  int maxgain = (m_bigain) ? 2 : 3;
195 
196  for (int ch = 0; ch < 48; ++ch) {
197 
198  // int pmt=m_cabling->channel2hole(ros,ch); // 1:48, negative for non-connected channels
199  // int pmt0 = ((pmt > 0)? pmt-1 : pmt+1); // 0:47, negaitve for non-connected channels
200  sStr.str("");
201  sStr << std::setfill('0') << std::setw(2) << ch << std::setfill(' ');
202  // sStr << std::setfill('0') << std::setw(2) << (abs(pmt)-1) << std::setfill(' ');
203  std::string sCh = sStr.str(); // 00:47, always positive
204 
205  for (int gn = mingain; gn < maxgain; ++gn) {
206 
207  if ((m_runType == CisRun) || (m_runType == CisRamp)) {
208 
209  std::string HistName[4] = { "_amp_ratio_100", "_amp_ratio_5", "_time_100", "_time_5" };
210  std::string HistTitle[4] = { " amp to charge ratio for 100 pF", " amp to charge ratio for 5 pF", " time for 100 pF", " time for 5 pF" };
211 
212  for (int type = 0; type < 4; type++) {
213  sStr.str("");
214  sStr << moduleName << "_ch_" << sCh << gain[gn] << HistName[type];
215  histName = sStr.str();
216 
217  sStr.str("");
218  if (gn+3 >= std::ssize(gain)) throw std::out_of_range("Index out of range in TileRawChannelMonTool::bookHists");
219  sStr << moduleName << " CH " << ch << gain[3 + gn] << HistTitle[type];
220  histTitle = sStr.str();
221 
222  if (type < 2)
223  m_data->m_hist1[ros][drawer][ch][gn & 1].push_back(book1S(subDir, histName, histTitle, 101, -0.01, 2.01));
224  else
225  m_data->m_hist1[ros][drawer][ch][gn & 1].push_back(book1S(subDir, histName, histTitle, 101, -101.0, 101.0));
226  }
227 
228  if (m_book2D) {
229  std::string Hist2DName[4] = { "_amp_vs_q_100", "_amp_vs_q_5", "_time_vs_time_100", "_time_vs_time_5" };
230  std::string Hist2DTitle[4] = { " amp vs charge 100 pF", " amp vs charge 5 pF", " time vs time 100 pF", " time vs time 5 pF" };
231  float factor_charge = m_is12bit ? 2. : 1.;
232  float factor_adc = m_is12bit ? 4. : 1.;
233  // Below, static_cast<float> is used to avoid warnings from -Wnarrowing
234  float LowX_low2D[4] = { -4., -0.5, -0.25, -0.25 };
235  float HighX_low2D[4] = { 804., 50.5, 25.25, 25.25 };
236  float LowX_hi2D[4] = { static_cast<float>(-0.0625 * factor_charge), static_cast<float>(-0.0625 * factor_charge), -0.25, -0.25 };
237  float HighX_hi2D[4] = { static_cast<float>(12.5625 * factor_charge), static_cast<float>(12.5625 * factor_charge), 25.25, 25.25 };
238  float LowY_low2D[4] = { -25., -5.3125, -64.0, -64.0 };
239  float HighY_low2D[4] = { 1025., 60.3125, 32.0, 32.0 };
240  float LowY_hi2D[4] = { static_cast<float>(-25. * factor_adc), static_cast<float>(-25. * factor_adc), -64.0, -64.0 };
241  float HighY_hi2D[4] = { static_cast<float>(1025. * factor_adc), static_cast<float>(1025. * factor_adc), 32.0, 32.0 };
242  float LowY_hi2D_pC[4] = { static_cast<float>(-.391 * factor_adc), static_cast<float>(-.391 * factor_adc), -64.0, -64.0 };
243  float HighY_hi2D_pC[4] = { static_cast<float>(16.02 * factor_adc), static_cast<float>(16.02 * factor_adc), 32.0, 32.0 };
244 
245  for (int type = 0; type < 4; type++) {
246 
247  sStr.str("");
248  sStr << moduleName << "_ch_" << sCh << gain[gn] << Hist2DName[type];
249  histName = sStr.str();
250 
251  sStr.str("");
252  if (gn+3 >= std::ssize(gain)) throw std::out_of_range("Index out of range in TileRawChannelMonTool::bookHists");
253  sStr << moduleName << " CH " << ch << gain[3 + gn] << Hist2DTitle[type];
254  histTitle = sStr.str();
255 
256  switch (gn) {
257  case 0: // low gain
258  m_data->m_hist2[ros][drawer][ch][gn & 1].push_back(
259  book2S(subDir, histName, histTitle, 51, LowX_low2D[type], HighX_low2D[type], 160, LowY_low2D[type], HighY_low2D[type]));
260  break;
261  case 1: // high gain
263  m_data->m_hist2[ros][drawer][ch][gn & 1].push_back(
264  book2S(subDir, histName, histTitle, 51, LowX_hi2D[type], HighX_hi2D[type], 160, LowY_hi2D_pC[type], HighY_hi2D_pC[type]));
265  else
266  m_data->m_hist2[ros][drawer][ch][gn & 1].push_back(
267  book2S(subDir, histName, histTitle, 51, LowX_hi2D[type], HighX_hi2D[type], 160, LowY_hi2D[type], HighY_hi2D[type]));
268  break;
269  default: // single gain mode
271  m_data->m_hist2[ros][drawer][ch][gn & 1].push_back(
272  book2S(subDir, histName, histTitle, 51, LowX_hi2D[type], HighX_hi2D[type], 160, LowY_hi2D_pC[type], HighY_hi2D_pC[type]));
273  else
274  m_data->m_hist2[ros][drawer][ch][gn & 1].push_back(
275  book2S(subDir, histName, histTitle, 51, LowX_hi2D[type], HighX_hi2D[type], 160, LowY_hi2D[type], HighY_hi2D[type]));
276  }
277  } //loop over type hist
278  } // if(book2D)
279 
280  } else { // not CIS run
281 
282  sStr.str("");
283  sStr << moduleName << "_ch_" << sCh << gain[gn] << "_amp";
284  histName = sStr.str();
285 
286  sStr.str("");
287  if (gn+3 >= std::ssize(gain)) throw std::out_of_range("Index out of range in TileRawChannelMonTool::bookHists");
288  sStr << moduleName << " CH " << ch << gain[3 + gn] << " amp";
289  histTitle = sStr.str();
290 
291  if (m_runType == PedRun) {
292  switch (gn) {
293  case 0: // low gain
294  m_data->m_hist1[ros][drawer][ch][gn].push_back(book1S(subDir, histName, histTitle, 101, -10.1, 10.1));
295  break;
296  case 1: // high gain
297  m_data->m_hist1[ros][drawer][ch][gn].push_back(book1S(subDir, histName, histTitle, 101, -0.404, 0.404));
298  break;
299  default: // single gain mode
300  m_data->m_hist1[ros][drawer][ch][gn & 1].push_back(book1S(subDir, histName, histTitle, 101, -10.1, 10.1));
301  }
302  } else {
303  switch (gn) {
304  case 0: // low gain
305  if (m_overlaphists) {
306  const Int_t nlg1 = 49;
307  const Int_t nlg2 = 500;
308  const Int_t nlg3 = 1027;
309  Double_t xlgbin[nlg1 + nlg2 + nlg3 + 1];
310  for(Int_t i = 0; i <= nlg1; ++i)
311  xlgbin[i] = -50.5+1.0*i;
312  for(Int_t i = 1; i <= nlg2; ++i)
313  xlgbin[i + nlg1] = -1.5 + 0.05 * i;
314  for(Int_t i = 1; i <= nlg3; ++i)
315  xlgbin[i + nlg1 + nlg2] = 23.5 + 1.0 * i;
316  m_data->m_hist1[ros][drawer][ch][gn].push_back(book1Sx(subDir, histName, histTitle, nlg1 + nlg2 + nlg3, xlgbin));
317  } else {
318  m_data->m_hist1[ros][drawer][ch][gn].push_back(book1S(subDir, histName, histTitle, 1101, -50.5, 1050.5));
319  }
320  break;
321  case 1: // high gain
322  if (m_overlaphists)
323  m_data->m_hist1[ros][drawer][ch][gn].push_back(book1S(subDir, histName, histTitle, 500, -1.5, 23.5));
324  else
325  m_data->m_hist1[ros][drawer][ch][gn].push_back(book1S(subDir, histName, histTitle, 826, -1.01, 15.51));
326  break;
327  default: // single gain mode
328  if (m_runType == PhysRun) {
329  m_data->m_hist1[ros][drawer][ch][gn & 1].push_back(book1S(subDir, histName, histTitle, 206, -0.55, 20.05));
330  } else {
331  m_data->m_hist1[ros][drawer][ch][gn & 1].push_back(book1S(subDir, histName, histTitle, 801, -0.5, 800.5));
332  }
333  }
334  }
335 
336  sStr.str("");
337  sStr << moduleName << "_ch_" << sCh << gain[gn] << "_time";
338  histName = sStr.str();
339 
340  sStr.str("");
341  if (gn+3 >= std::ssize(gain)) throw std::out_of_range("Index out of range in TileRawChannelMonTool::bookHists");
342  sStr << moduleName << " CH " << ch << gain[3 + gn] << " time";
343  histTitle = sStr.str();
344 
345  m_data->m_hist1[ros][drawer][ch][gn & 1].push_back(book1S(subDir, histName, histTitle, 201, -100.5, 100.5));
346  //Lukas
347  sStr.str("");
348  sStr << moduleName << "_ch_" << sCh << gain[gn] << "_time_corr";
349  histName = sStr.str();
350 
351  sStr.str("");
352  sStr << moduleName << " CH " << ch << gain[3 + gn] << " time_corr";
353  histTitle = sStr.str();
354 
355  m_data->m_hist1[ros][drawer][ch][gn & 1].push_back(book1S(subDir, histName, histTitle, 201, -100.5, 100.5));
356  //Lukas
357  }
358  }
359  }
360 
362 }

◆ bookMultiGraph()

TMultiGraph * TilePaterMonTool::bookMultiGraph ( const std::string &  dir,
const std::string &  nam,
const std::string &  tit 
)
protectedinherited

Definition at line 508 of file TilePaterMonTool.cxx.

508  {
509 
510  TMultiGraph1* hist = new TMultiGraph1();
511  hist->SetName(TString(nam));
512  hist->SetTitle(TString(tit));
513 
514  regGraph(subdir, (TGraph*) hist);
515  return (TMultiGraph*) hist;
516 }

◆ bookProfile() [1/3]

TProfile * TilePaterMonTool::bookProfile ( const std::string &  dir,
const std::string &  nam,
const std::string &  tit,
int  nx,
const float *  xbins,
Interval_t  interval = run,
MgmtAttr_t  attribute = ATTRIB_MANAGED,
const std::string &  trigChain = "",
const std::string &  mergeAlgo = "" 
)
protectedinherited

Definition at line 317 of file TilePaterMonTool.cxx.

321 {
322  TProfile* hist = new TProfile(TString(nam), TString(tit), nx, xbins);
323  regHist(subdir, hist, interval, attribute, trigChain, mergeAlgo);
324  return hist;
325 }

◆ bookProfile() [2/3]

TProfile * TilePaterMonTool::bookProfile ( const std::string &  dir,
const std::string &  nam,
const std::string &  tit,
int  nx,
double  xmin,
double  xmax,
double  ymin,
double  ymax,
Interval_t  interval = run,
MgmtAttr_t  attribute = ATTRIB_MANAGED,
const std::string &  trigChain = "",
const std::string &  mergeAlgo = "" 
)
protectedinherited

Definition at line 306 of file TilePaterMonTool.cxx.

311 {
312  TProfile* hist = new TProfile(TString(nam), TString(tit), nx, xmin, xmax, ymin, ymax);
313  regHist(subdir, hist, interval, attribute, trigChain, mergeAlgo);
314  return hist;
315 }

◆ bookProfile() [3/3]

TProfile * TilePaterMonTool::bookProfile ( const std::string &  dir,
const std::string &  nam,
const std::string &  tit,
int  nx,
double  xmin,
double  xmax,
Interval_t  interval = run,
MgmtAttr_t  attribute = ATTRIB_MANAGED,
const std::string &  trigChain = "",
const std::string &  mergeAlgo = "" 
)
protectedinherited

Definition at line 296 of file TilePaterMonTool.cxx.

300 {
301  TProfile* hist = new TProfile(TString(nam), TString(tit), nx, xmin, xmax);
302  regHist(subdir, hist, interval, attribute, trigChain, mergeAlgo);
303  return hist;
304 }

◆ bookProfile2D()

TProfile2D * TilePaterMonTool::bookProfile2D ( const std::string &  dir,
const std::string &  nam,
const std::string &  tit,
int  nx,
double  xmin,
double  xmax,
int  ny,
double  ymin,
double  ymax,
double  zmin,
double  zmax,
Interval_t  interval = run,
MgmtAttr_t  attribute = ATTRIB_MANAGED,
const std::string &  trigChain = "",
const std::string &  mergeAlgo = "" 
)
protectedinherited

Definition at line 327 of file TilePaterMonTool.cxx.

333 {
334 
335  TProfile2D* hist = new TProfile2D(TString(nam), TString(tit), nx, xmin, xmax, ny, ymin, ymax, zmin, zmax);
336  regHist(subdir, hist, interval, attribute, trigChain, mergeAlgo);
337  return hist;
338 }

◆ bookSummaryHistograms()

void TileRawChannelMonTool::bookSummaryHistograms ( int  ros,
int  drawer 
)
private

Definition at line 908 of file TileRawChannelMonTool.cxx.

910 {
911 
912 
913  const std::array<std::string, 6> gain = { "_lo", "_hi", "", " low gain", " high gain", "" };
914 
915  // for bigain run book 2 histograms per channel
916  // for monogain run book just one histogram per channel
917  int mingain = (m_bigain) ? 0 : 2;
918  int maxgain = (m_bigain) ? 2 : 3;
919 
920  std::ostringstream sStr;
921 
922  if ((m_runType == CisRun) || (m_runType == CisRamp)) {
923 
924  const char *HistName[6] = { "_tslope", "_toffset", "_qratio", " Time slope", " Time offset", " Amp/Q ratio" };
925  const char *CapName[4] = { "_100", "_5", " 100 pF", " 5 pF" };
926 
927 
928  std::string moduleName = TileCalibUtils::getDrawerString(ros, drawer);
929  std::string subDir = "Summary";
930  std::string histName, histTitle;
931 
932  for (int gn = mingain; gn < maxgain; ++gn) {
933  int adc = gn & 1;
934  for (int cap = 0; cap < 2; ++cap) {
935  for (int type = 0; type < 3; ++type) {
936 
937  sStr.str("");
938  sStr << moduleName << gain[gn] << HistName[type] << CapName[cap];
939  histName = sStr.str();
940  sStr.str("");
941  if (gn+3 >= std::ssize(gain)) throw std::out_of_range("Index out of range in TileRawChannelMonTool::bookSummaryHistograms");
942  sStr << moduleName << gain[3 + gn] << HistName[3 + type] << CapName[2 + cap];
943  histTitle = sStr.str();
944  m_data->m_finalHist1[ros][drawer][adc][cap].push_back(book1F(subDir, histName, histTitle, 48, 0, 48));
945  }
946  } //end of loop over capacitors
947  } //end of loop over gn
948 
949  } else { // not CisRun
950  const char *HistName[10] = { "_amp", "_rms", "_sigma", "_time", "_time_corr", " Amplitude", " RMS of amplitude", " Sigma amp from Gaussian fit",
951  " Average time and RMS", " Average time corr. and RMS" };
952  //Lukas
953 
954  std::string moduleName = TileCalibUtils::getDrawerString(ros, drawer);
955  std::string subDir = "Summary";
956  std::string histName, histTitle;
957 
958  for (int gn = mingain; gn < maxgain; ++gn) {
959 
960  int adc = gn & 1;
961 
962  //for (int type = 0; type < 4; ++type) {
963  for (int type = 0; type < 5; ++type) { //Lukas
964 
965  sStr.str("");
966  sStr << moduleName << gain[gn] << HistName[type];
967  histName = sStr.str();
968  sStr.str("");
969  if (gn+3 >= std::ssize(gain)) throw std::out_of_range("Index out of range in TileRawChannelMonTool::bookSummaryHistograms");
970  sStr << moduleName << gain[3 + gn] << HistName[5 + type]; //Lukas
971  histTitle = sStr.str();
972  m_data->m_finalHist1[ros][drawer][adc][0].push_back(book1F(subDir, histName, histTitle, 48, 0.0, 48.0));
973 
974  std::string hTitle(histTitle);
975 
977 
978  hTitle += " (Even PMTs)";
979  m_data->m_summaryPmts[ros][drawer][adc][0].push_back(book1F(subDir + "/pmt", histName + "_pmt_even", hTitle, 49, -0.5, 48.5));
980  m_data->m_summaryPmts[ros][drawer][adc][0].back()->SetMarkerStyle(22);
981  m_data->m_summaryPmts[ros][drawer][adc][0].back()->SetMarkerColor(2);
982  m_data->m_summaryPmts[ros][drawer][adc][0].back()->SetMarkerSize(0.75);
983 
984  hTitle = histTitle;
985  hTitle += " (Odd PMTs)";
986  m_data->m_summaryPmts[ros][drawer][adc][1].push_back(book1F(subDir + "/pmt", histName + "_pmt_odd", hTitle, 49, -0.5, 48.5));
987  m_data->m_summaryPmts[ros][drawer][adc][1].back()->SetMarkerStyle(23);
988  m_data->m_summaryPmts[ros][drawer][adc][1].back()->SetMarkerColor(4);
989  m_data->m_summaryPmts[ros][drawer][adc][1].back()->SetMarkerSize(0.75);
990 
991  if (ros < 3 && m_data->m_summaryPmts[0][drawer][adc][0].size() < (unsigned int)(type + 1)) {
992 
993  histName.replace(histName.begin(), histName.begin() + 3, "LB");
994  histTitle.replace(histTitle.begin(), histTitle.begin() + 3, "LB");
995  hTitle = histTitle;
996 
997  hTitle += " (LBA even PMTs + LBC odd PMTs: negative)";
998  m_data->m_summaryPmts[0][drawer][adc][0].push_back(book1F(subDir + "/pmt", histName + "_pmt_LBA-even_LBC-odd", hTitle, 97, -48.5, 48.5));
999  m_data->m_summaryPmts[0][drawer][adc][0].back()->SetMarkerStyle(22);
1000  m_data->m_summaryPmts[0][drawer][adc][0].back()->SetMarkerColor(2);
1001  m_data->m_summaryPmts[0][drawer][adc][0].back()->SetMarkerSize(0.75);
1002 
1003  hTitle = histTitle;
1004  hTitle += " (LBA odd PMTs + LBC even PMTs: negative)";
1005  m_data->m_summaryPmts[0][drawer][adc][1].push_back(book1F(subDir + "/pmt", histName + "_pmt_LBA-odd_LBC-even", hTitle, 97, -48.5, 48.5));
1006  m_data->m_summaryPmts[0][drawer][adc][1].back()->SetMarkerStyle(23);
1007  m_data->m_summaryPmts[0][drawer][adc][1].back()->SetMarkerColor(4);
1008  m_data->m_summaryPmts[0][drawer][adc][1].back()->SetMarkerSize(0.75);
1009  }
1010  }
1011  }
1012 
1013  } //end of loop over gn
1014  }
1015 
1016 }

◆ checkDmuHeader()

bool TileRawChannelMonTool::checkDmuHeader ( std::vector< uint32_t > *  headerVec,
int  dmu 
)
private

The following three functions are implemented to filter data corruption, copied from TileDigitsMonTool.h.

Function to check for data corruption. Modified from TileDigitsMonTool implementation

Definition at line 1950 of file TileRawChannelMonTool.cxx.

1952 {
1953  bool err = false;
1954 
1955  if (checkDmuHeaderFormat((*headerVec)[dmu])) {
1956  err = true;
1957 
1958  }
1959  if (checkDmuHeaderParity((*headerVec)[dmu])) {
1960  err = true;
1961 
1962  }
1963  if (((*headerVec)[dmu] >> 25) & 0x1) {
1964  //Memory Parity Error
1965  err = true;
1966 
1967  }
1968  if (((*headerVec)[dmu] >> 24) & 0x1) {
1969  //Single Strobe Error
1970  err = true;
1971 
1972  }
1973  if (((*headerVec)[dmu] >> 23) & 0x1) {
1974  //Double Strobe Error
1975  err = true;
1976 
1977  }
1978 
1979  return err;
1980 }

◆ checkDmuHeaderFormat()

bool TileRawChannelMonTool::checkDmuHeaderFormat ( uint32_t  header)
inlineprivate

Function to check that the DMU header format is correct bit_31 of the DMU header must be 1 and bit_17 of the DMU header must be 0 Return true in the case of error.

Definition at line 103 of file TileRawChannelMonTool.h.

103  {
104  if (((header >> 31 & 0x1) == 1) && ((header >> 17 & 0x1) == 0))
105  return false; //no error
106  else
107  return true; //error
108  };

◆ checkDmuHeaderParity()

bool TileRawChannelMonTool::checkDmuHeaderParity ( uint32_t  header)
inlineprivate

Function to check that the DMU header parity is correct Parity of the DMU header should be odd Return true in case of error.

Definition at line 113 of file TileRawChannelMonTool.h.

113  {
114  uint32_t parity(0);
115  for (int i = 0; i < 32; ++i)
116  parity += ((header >> i) & 0x1);
117 
118  if ((parity % 2) == 1) return false; //no error
119  else return true; //error
120 
121  };

◆ checkHists()

StatusCode TileRawChannelMonTool::checkHists ( bool  calledFromFinalize)
overridevirtual

This implementation does nothing; equivalent functionality may be provided by procHists(...) with appropriate arguments.

Reimplemented from ManagedMonitorToolBase.

Definition at line 1427 of file TileRawChannelMonTool.cxx.

1429 {
1430 
1431  ATH_MSG_INFO("in checkHists()");
1432 
1433  return StatusCode::SUCCESS;
1434 }

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyArrayType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKeyArray>

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleBase>

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleBase. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 245 of file AthCommonDataStore.h.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleKey. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 221 of file AthCommonDataStore.h.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This is the generic version, for types that do not derive from SG::VarHandleKey. It just forwards to the base class version of declareProperty.

Definition at line 333 of file AthCommonDataStore.h.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This dispatches to either the generic declareProperty or the one for VarHandle/Key/KeyArray.

Definition at line 352 of file AthCommonDataStore.h.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T > &  t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

◆ deregGraph()

StatusCode ManagedMonitorToolBase::deregGraph ( TGraph *  g)
virtualinherited

De-registers a TGraph from the THistSvc, but does NOT delete the object.

Definition at line 1625 of file ManagedMonitorToolBase.cxx.

1627 {
1628  return m_THistSvc->deReg( g );
1629 }

◆ deregHist()

StatusCode ManagedMonitorToolBase::deregHist ( TH1 *  h)
virtualinherited

De-registers a TH1 from the THistSvc, but does NOT delete the object.

Definition at line 1617 of file ManagedMonitorToolBase.cxx.

1619 {
1620  return m_THistSvc->deReg( h );
1621 }

◆ deregObject() [1/2]

StatusCode ManagedMonitorToolBase::deregObject ( const std::string &  objName,
const MonGroup group 
)
virtualinherited

De-registers a TObject from the THistSvc, but does NOT delete the object.

(NB: LightWeight histograms are not even registered until readout).

Definition at line 1643 of file ManagedMonitorToolBase.cxx.

1645 {
1646  std::string streamName = streamNameFunction()->getStreamName( this, group, objName );
1647  return m_THistSvc->deReg( streamName );
1648 }

◆ deregObject() [2/2]

StatusCode ManagedMonitorToolBase::deregObject ( const std::string &  objName,
const std::string &  system,
Interval_t  interval 
)
virtualinherited

De-registers a TObject from the THistSvc, but does NOT delete the object.

(NB: LightWeight histograms are not even registered until readout).

Definition at line 1633 of file ManagedMonitorToolBase.cxx.

1636 {
1637  MonGroup group( this, system, interval );
1638  return deregObject( objName, group );
1639 }

◆ detStore()

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

95 { return m_detStore; }

◆ drawDsp()

void TileRawChannelMonTool::drawDsp ( int  ros,
int  drawer,
const std::string &  moduleName 
)

Definition at line 1717 of file TileRawChannelMonTool.cxx.

1719 {
1720  MsgStream log(msgSvc(), name());
1721  int maxgain = (m_bigain) ? 2 : 1;
1722  double ms = (m_bigain) ? 0.75 : 1.0; // marker size
1723  bool do_plots = m_savePng || m_savePs || m_saveSvg;
1724 
1725  TCanvas * Can = NULL; // for -Wmaybe-uninitialized
1726  if (do_plots) {
1727  Can = new TCanvas("dsp_amp", "dsp_amp", 402 * maxgain, 588);
1728  Can->Divide(maxgain, 3);
1729  gStyle->SetOptStat(0);
1730  gStyle->SetTitleFontSize(0.1);
1731  }
1732 
1733  TLine line(0., 0., 48., 0.); //Draw a green line to guide the sight
1734  line.SetLineColor(3);
1735 
1736  double maxy[6] = { 0.05, 0.05, 0.5, 0.5, 10.0, 10.0 };
1737  double miny[6] = { -0.05, -0.05, -0.5, -0.5, -0.05, -0.05 };
1738  double norm[2] = { 1., 1 };
1739  for (int adc = 0; adc < maxgain; ++adc) {
1740 
1741  double maxEdsp = m_data->m_finalHistDsp1[ros][drawer][adc][sumEdsp_fit]->GetMaximum();
1742  double minEdsp = m_data->m_finalHistDsp1[ros][drawer][adc][sumEdsp_fit]->GetMinimum();
1743  double maxTdsp = m_data->m_finalHistDsp1[ros][drawer][adc][sumTdsp_fit]->GetMaximum();
1744  double minTdsp = m_data->m_finalHistDsp1[ros][drawer][adc][sumTdsp_fit]->GetMinimum();
1745  double maxchidsp = m_data->m_finalHistDsp2[ros][drawer][adc][0]->GetMaximum();
1746  double minchidsp = m_data->m_finalHistDsp2[ros][drawer][adc][0]->GetMinimum();
1747 
1748  TVirtualPad * pad;
1749  if (do_plots) {
1750  pad = Can->cd(adc + 1);
1751  pad->SetTopMargin(0.15);
1752  pad->SetGridx();
1753  }
1754 
1755  if (maxEdsp < 0.9 * maxy[adc]) m_data->m_finalHistDsp1[ros][drawer][adc][sumEdsp_fit]->SetMaximum(maxy[adc]);
1756  if (minEdsp > miny[adc] + 0.1 * TMath::Abs(miny[adc])) m_data->m_finalHistDsp1[ros][drawer][adc][sumEdsp_fit]->SetMinimum(miny[adc]);
1757 
1758  m_data->m_finalHistDsp1[ros][drawer][adc][sumEdsp_fit]->SetMarkerStyle(21);
1759  m_data->m_finalHistDsp1[ros][drawer][adc][sumEdsp_fit]->SetMarkerSize(ms);
1760  m_data->m_finalHistDsp1[ros][drawer][adc][sumEdsp_fit]->SetLabelSize(0.08, "X");
1761  m_data->m_finalHistDsp1[ros][drawer][adc][sumEdsp_fit]->SetLabelSize(0.08, "Y");
1762  if (do_plots) m_data->m_finalHistDsp1[ros][drawer][adc][sumEdsp_fit]->Draw("");
1763 
1764  //Now we add the 1d histogram on the y-axis
1765  if (m_data->m_hBarDsp1[ros][drawer][adc][sumEdsp_fit]->GetMaximum() > 0.1) { //normalize the scale to get into the frame
1766  norm[sumEdsp_fit] = 47. / m_data->m_hBarDsp1[ros][drawer][adc][sumEdsp_fit]->GetMaximum();
1767  }
1768  m_data->m_hBarDsp1[ros][drawer][adc][sumEdsp_fit]->Scale(norm[sumEdsp_fit]);
1769  //hbardsp1[ros][drawer][adc][sumEdsp_fit]->SetFillStyle(3350);
1770  m_data->m_hBarDsp1[ros][drawer][adc][sumEdsp_fit]->SetFillColor(38);
1771  if (do_plots) {
1772  m_data->m_hBarDsp1[ros][drawer][adc][sumEdsp_fit]->Draw("hbar,same");
1773 
1774  m_data->m_finalHistDsp1[ros][drawer][adc][sumEdsp_fit]->Draw("E0,same");
1775 
1776  line.Draw();
1777 
1778  pad = Can->cd(maxgain + adc + 1);
1779  pad->SetTopMargin(0.15);
1780  pad->SetGridx();
1781  }
1782 
1783  if (maxTdsp < 0.9 * maxy[2 + adc]) m_data->m_finalHistDsp1[ros][drawer][adc][sumTdsp_fit]->SetMaximum(maxy[2 + adc]);
1784  if (minTdsp > miny[2 + adc] + 0.1 * TMath::Abs(miny[2 + adc])) m_data->m_finalHistDsp1[ros][drawer][adc][sumTdsp_fit]->SetMinimum(miny[2 + adc]);
1785 
1786  m_data->m_finalHistDsp1[ros][drawer][adc][sumTdsp_fit]->SetMarkerStyle(21);
1787  m_data->m_finalHistDsp1[ros][drawer][adc][sumTdsp_fit]->SetMarkerSize(ms);
1788  m_data->m_finalHistDsp1[ros][drawer][adc][sumTdsp_fit]->SetLabelSize(0.08, "X");
1789  m_data->m_finalHistDsp1[ros][drawer][adc][sumTdsp_fit]->SetLabelSize(0.08, "Y");
1790  if (do_plots) m_data->m_finalHistDsp1[ros][drawer][adc][sumTdsp_fit]->Draw("");
1791 
1792  if (m_data->m_hBarDsp1[ros][drawer][adc][sumTdsp_fit]->GetMaximum() > 0.1) { //normalize the scale to get into the frame
1793  norm[sumTdsp_fit] = 47. / m_data->m_hBarDsp1[ros][drawer][adc][sumTdsp_fit]->GetMaximum();
1794  }
1795  m_data->m_hBarDsp1[ros][drawer][adc][sumTdsp_fit]->Scale(norm[sumTdsp_fit]);
1796  // hbardsp1[ros][drawer][adc][sumTdsp_fit]->SetFillStyle(3350);
1797  m_data->m_hBarDsp1[ros][drawer][adc][sumTdsp_fit]->SetFillColor(38);
1798  if (do_plots) {
1799  m_data->m_hBarDsp1[ros][drawer][adc][sumTdsp_fit]->Draw("hbar,same");
1800 
1801  m_data->m_finalHistDsp1[ros][drawer][adc][sumTdsp_fit]->Draw("E0,same");
1802 
1803  line.Draw();
1804 
1805  pad = Can->cd(2 * maxgain + adc + 1);
1806  pad->SetTopMargin(0.15);
1807  pad->SetGridx();
1808  pad->SetGridy();
1809  }
1810 
1811  if (maxchidsp < 0.9 * maxy[4 + adc]) m_data->m_finalHistDsp2[ros][drawer][adc][0]->SetMaximum(maxy[4 + adc]);
1812  if (minchidsp > miny[4 + adc] + 0.1 * TMath::Abs(miny[4 + adc])) m_data->m_finalHistDsp2[ros][drawer][adc][0]->SetMinimum(miny[4 + adc]);
1813 
1814  m_data->m_finalHistDsp2[ros][drawer][adc][0]->SetLabelSize(0.08, "X");
1815  m_data->m_finalHistDsp2[ros][drawer][adc][0]->SetLabelSize(0.08, "Y");
1816  if (do_plots) {
1817  gStyle->SetPalette(1);
1818  m_data->m_finalHistDsp2[ros][drawer][adc][0]->Draw("zcol");
1819  }
1820 
1821  } //end of loop over gain
1822 
1823  if (m_savePng) {
1824  Can->Print(TString(moduleName + "_dsp_amp.png"), "png");
1825  }
1826  if (m_savePs) {
1827  Can->Print(TString(moduleName + "_dsp_amp.ps"), "ps");
1828  }
1829  if (m_saveSvg) {
1830  Can->Print(TString(moduleName + "_dsp_amp.svg"), "svg");
1831  }
1832  if (do_plots) delete Can;
1833 
1834  for (int adc = 0; adc < maxgain; ++adc) {
1835  m_data->m_hBarDsp1[ros][drawer][adc][sumEdsp_fit]->Scale(1 / norm[sumEdsp_fit]); //back to normal
1836  m_data->m_hBarDsp1[ros][drawer][adc][sumTdsp_fit]->Scale(1 / norm[sumTdsp_fit]); //back to normal
1837  }
1838 }

◆ drawHists()

void TileRawChannelMonTool::drawHists ( int  ros,
int  drawer,
const std::string &  moduleName 
)

Definition at line 1437 of file TileRawChannelMonTool.cxx.

1439 {
1440 
1441  ATH_MSG_DEBUG("in drawHists()");
1442 
1443  int maxgain = (m_bigain) ? 2 : 1;
1444  double ms = (m_bigain) ? 0.75 : 1.0; // marker size
1445 
1446  bool do_plots = m_savePng || m_savePs || m_saveSvg;
1447 
1448  if ((m_runType == CisRun) || (m_runType == CisRamp)) {
1449 
1450  float X_axis[48];
1451  float X_errors[48];
1452  for (int i = 0; i < 48; i++) {
1453  X_axis[i] = i + 0.5;
1454  X_errors[i] = 0.;
1455  }
1456 
1457  const char *gain[6] = { "_lo", "_hi", "", " low gain", " high gain", "" };
1458  const char *CapName[4] = { "_100", "_5", " 100 pF", " 5 pF" };
1459  if (maxgain == 1) gain[0] = gain[1] = gain[2] = gain[3] = gain[4] = gain[5];
1460 
1461  /* TGraph* test = new TGraph(48,X_errors,X_errors);
1462  test->SetName(("/HIST1/Tile/RawChannel/Summary/LFTEST"+moduleName).c_str());
1463  m_rootsvc->regGraph("/HIST1/Tile/RawChannel/Summary/LFTEST"+moduleName, test);
1464  */
1465 
1466  TCanvas * Can = NULL;
1467  if (do_plots) {
1468  Can = new TCanvas("amp_ratio", "amp_ratio", 402 * maxgain, 588);
1469  Can->Divide(maxgain, 2);
1470  gStyle->SetOptStat(0);
1471  gStyle->SetTitleFontSize(0.1);
1472  }
1473 
1474  TLine line(0., 1., 48., 1.); //Draw a green line to guide the sight
1475  line.SetLineColor(3);
1476 
1477  std::string subDir = "Summary";
1478  std::vector<TGraphAsymmErrors*> grapherrVec;
1479 
1480  for (int adc = 0; adc < maxgain; ++adc) {
1481  for (int cap = 0; cap < 2; ++cap) {
1482 
1483  std::ostringstream sStr;
1484  sStr << moduleName << gain[adc] << "_tails" << CapName[cap];
1485  std::string graphName = sStr.str();
1486  sStr.str("");
1487  sStr << moduleName << gain[adc + 3] << " Mean Amp/Q ratio and up/down tails " << CapName[2 + cap];
1488  std::string graphTitle = sStr.str();
1489 
1490  TVirtualPad * pad;
1491  if (do_plots) {
1492  pad = Can->cd(cap * maxgain + adc + 1);
1493  pad->SetTopMargin(0.15);
1494  pad->SetGridx();
1495  }
1496 
1497  TGraphAsymmErrors * final_Egraph = bookGraphAsymmErrors(subDir, graphName, graphTitle, 48, X_axis, m_data->m_rangeQ[adc][cap][0], X_errors, X_errors,
1498  m_data->m_rangeQ[adc][cap][1], m_data->m_rangeQ[adc][cap][2]);
1499  grapherrVec.push_back(final_Egraph);
1500 
1501  m_data->m_finalHist1[ros][drawer][adc][cap][2]->SetStats(kFALSE);
1502  m_data->m_finalHist1[ros][drawer][adc][cap][2]->SetMarkerStyle(21);
1503  m_data->m_finalHist1[ros][drawer][adc][cap][2]->SetMarkerSize(ms);
1504  m_data->m_finalHist1[ros][drawer][adc][cap][2]->SetLabelSize(0.06, "X");
1505  m_data->m_finalHist1[ros][drawer][adc][cap][2]->SetLabelSize(0.06, "Y");
1506  m_data->m_finalHist1[ros][drawer][adc][cap][2]->SetMaximum(2.2);
1507  m_data->m_finalHist1[ros][drawer][adc][cap][2]->SetMinimum(-0.2);
1508  if (do_plots) m_data->m_finalHist1[ros][drawer][adc][cap][2]->Draw("P0");
1509 
1510  final_Egraph->SetMarkerStyle(21);
1511  final_Egraph->SetMarkerSize(ms);
1512  final_Egraph->SetMaximum(2.2);
1513  final_Egraph->SetMinimum(-0.2);
1514  final_Egraph->GetXaxis()->SetRangeUser(0, 48);
1515  if (do_plots) {
1516  final_Egraph->Draw("P0");
1517  line.Draw();
1518  }
1519 
1520  }
1521  }
1522 
1523  if (m_savePng) {
1524  Can->Print(TString(moduleName + "_amp_ratio.png"), "png");
1525  }
1526  if (m_savePs) {
1527  Can->Print(TString(moduleName + "_amp_ratio.ps"), "ps");
1528  }
1529  if (m_saveSvg) {
1530  Can->Print(TString(moduleName + "_amp_ratio.svg"), "svg");
1531  }
1532  if (do_plots) delete Can;
1533 
1534 // we have to remove TGraphAsymmErrors in 13.0.10, because THistSvc doesn't handle them well
1535  if (!m_storeGraph) {
1536  std::vector<TGraphAsymmErrors*>::const_iterator it = grapherrVec.begin();
1537  std::vector<TGraphAsymmErrors *>::const_iterator itend = grapherrVec.end();
1538  for (; it != itend; ++it) {
1539  if ((removeTObj(*it)).isFailure()) ATH_MSG_WARNING("Problems removing TObj");
1540  }
1541  }
1542 
1543  if (do_plots) {
1544  Can = new TCanvas("fit_time", "fit_time", 402 * maxgain, 588);
1545  Can->Divide(maxgain, 4);
1546  gStyle->SetOptStat(0);
1547  gStyle->SetTitleFontSize(0.1);
1548  }
1549 
1550  double maxy[2] = { 1.4, 15.0 };
1551  double miny[2] = { -0.1, -15.0 };
1552 
1553  for (int adc = 0; adc < maxgain; ++adc) {
1554  for (int cap = 0; cap < 2; ++cap) {
1555  for (int type = 0; type < 2; ++type) {
1556 
1557  TVirtualPad * pad;
1558  if (do_plots) {
1559  pad = Can->cd((type + cap * 2) * maxgain + adc + 1);
1560  pad->SetTopMargin(0.15);
1561  pad->SetGridx();
1562  }
1563 
1564  if (m_data->m_finalHist1[ros][drawer][adc][cap][type]->GetMaximum() < 0.9 * maxy[type])
1565  m_data->m_finalHist1[ros][drawer][adc][cap][type]->SetMaximum(maxy[type]);
1566  if (m_data->m_finalHist1[ros][drawer][adc][cap][type]->GetMinimum() > (miny[type] + 0.1 * TMath::Abs(miny[type])))
1567  m_data->m_finalHist1[ros][drawer][adc][cap][type]->SetMinimum(miny[type]);
1568 
1569  m_data->m_finalHist1[ros][drawer][adc][cap][type]->SetMarkerStyle(21);
1570  m_data->m_finalHist1[ros][drawer][adc][cap][type]->SetMarkerSize(ms);
1571  m_data->m_finalHist1[ros][drawer][adc][cap][type]->SetLabelSize(0.10, "X");
1572  m_data->m_finalHist1[ros][drawer][adc][cap][type]->SetLabelSize(0.10, "Y");
1573  if (do_plots) {
1574  m_data->m_finalHist1[ros][drawer][adc][cap][type]->Draw("P0");
1575 
1576  line.SetLineColor(3);
1577  line.Draw();
1578  }
1579  }
1580  }
1581  }
1582 
1583  if (m_savePng) {
1584  Can->Print(TString(moduleName + "_fit_time.png"), "png");
1585  }
1586  if (m_savePs) {
1587  Can->Print(TString(moduleName + "_fit_time.ps"), "ps");
1588  }
1589  if (m_saveSvg) {
1590  Can->Print(TString(moduleName + "_fit_time.svg"), "svg");
1591  }
1592  if (do_plots) delete Can;
1593 
1594  } else {
1595  if ((m_runType == LasRun) || (m_runType == LedRun)) { //same stuff but with Laser fancy colors
1596  LaserFancyPlotting(ros, drawer, maxgain, moduleName);
1597  } else {
1598 
1599  TCanvas * Can = NULL;
1600  if (do_plots) {
1601  Can = new TCanvas("fit_amp", "fit_amp", 402 * maxgain, 588);
1602  Can->Divide(maxgain, 3);
1603  gStyle->SetOptStat(0);
1604  gStyle->SetTitleFontSize(0.1);
1605  }
1606 
1607  double maxy[6] = { 1.0, 0.05, 1.0, 0.05, 25.0, 25.0 };
1608  double miny[6] = { -1.0, -0.05, 0.0, 0.0, -25.0, -25.0 };
1609 
1610  for (int adc = 0; adc < maxgain; ++adc) {
1611 
1612  double max0 = m_data->m_finalHist1[ros][drawer][adc][0][0]->GetMaximum();
1613  double max1 = m_data->m_finalHist1[ros][drawer][adc][0][1]->GetMaximum();
1614  double max2 = m_data->m_finalHist1[ros][drawer][adc][0][2]->GetMaximum();
1615  double max3 = m_data->m_finalHist1[ros][drawer][adc][0][3]->GetMaximum();
1616  double min0 = m_data->m_finalHist1[ros][drawer][adc][0][0]->GetMinimum();
1617  double min1 = m_data->m_finalHist1[ros][drawer][adc][0][1]->GetMinimum();
1618  double min2 = m_data->m_finalHist1[ros][drawer][adc][0][2]->GetMinimum();
1619  double min3 = m_data->m_finalHist1[ros][drawer][adc][0][3]->GetMinimum();
1620 
1621  TVirtualPad * pad;
1622  if (do_plots) {
1623  pad = Can->cd(adc + 1);
1624  pad->SetTopMargin(0.15);
1625  pad->SetGridx();
1626  }
1627 
1628  if (max0 < 0.9 * maxy[adc]) m_data->m_finalHist1[ros][drawer][adc][0][0]->SetMaximum(maxy[adc]);
1629  if (min0 > (miny[adc] + 0.1 * TMath::Abs(miny[adc]))) m_data->m_finalHist1[ros][drawer][adc][0][0]->SetMinimum(miny[adc]);
1630 
1631  m_data->m_finalHist1[ros][drawer][adc][0][0]->SetMarkerStyle(21);
1632  m_data->m_finalHist1[ros][drawer][adc][0][0]->SetMarkerSize(ms);
1633  m_data->m_finalHist1[ros][drawer][adc][0][0]->SetLabelSize(0.08, "X");
1634  m_data->m_finalHist1[ros][drawer][adc][0][0]->SetLabelSize(0.08, "Y");
1635  if (do_plots) {
1636  m_data->m_finalHist1[ros][drawer][adc][0][0]->Draw("E0");
1637  }
1638 
1639  if (do_plots) {
1640  pad = Can->cd(maxgain + adc + 1);
1641  pad->SetTopMargin(0.15);
1642  pad->SetGridx();
1643  }
1644 
1645  // if (max2 > 5 * max1) max2 = 2 * max1; // don't put crazy fit results on plot
1646  if (max1 < maxy[2 + adc]) {
1647  if (max2 < maxy[2 + adc])
1648  m_data->m_finalHist1[ros][drawer][adc][0][1]->SetMaximum(maxy[2 + adc]);
1649  else
1650  m_data->m_finalHist1[ros][drawer][adc][0][1]->SetMaximum(max2);
1651  } else {
1652  if (max1 < max2) m_data->m_finalHist1[ros][drawer][adc][0][1]->SetMaximum(max2);
1653  }
1654 
1655  if (min1 > miny[2 + adc]) {
1656  if (min2 > miny[2 + adc])
1657  m_data->m_finalHist1[ros][drawer][adc][0][1]->SetMinimum(miny[2 + adc]);
1658  else
1659  m_data->m_finalHist1[ros][drawer][adc][0][1]->SetMinimum(min2);
1660  } else {
1661  if (min1 > min2) m_data->m_finalHist1[ros][drawer][adc][0][1]->SetMinimum(min2);
1662  }
1663 
1664  m_data->m_finalHist1[ros][drawer][adc][0][1]->SetMarkerStyle(21);
1665  m_data->m_finalHist1[ros][drawer][adc][0][1]->SetMarkerSize(ms);
1666  m_data->m_finalHist1[ros][drawer][adc][0][1]->SetLabelSize(0.08, "X");
1667  m_data->m_finalHist1[ros][drawer][adc][0][1]->SetLabelSize(0.08, "Y");
1668  if (do_plots) {
1669  m_data->m_finalHist1[ros][drawer][adc][0][1]->Draw("P0");
1670  }
1671 
1672  m_data->m_finalHist1[ros][drawer][adc][0][2]->SetMaximum(m_data->m_finalHist1[ros][drawer][adc][0][1]->GetMaximum());
1673  m_data->m_finalHist1[ros][drawer][adc][0][2]->SetMinimum(m_data->m_finalHist1[ros][drawer][adc][0][1]->GetMinimum());
1674  m_data->m_finalHist1[ros][drawer][adc][0][2]->SetMarkerStyle(25);
1675  m_data->m_finalHist1[ros][drawer][adc][0][2]->SetMarkerSize(ms);
1676  m_data->m_finalHist1[ros][drawer][adc][0][2]->SetMarkerColor(4);
1677  m_data->m_finalHist1[ros][drawer][adc][0][2]->SetLabelSize(0.08, "X");
1678  m_data->m_finalHist1[ros][drawer][adc][0][2]->SetLabelSize(0.08, "Y");
1679  if (do_plots) {
1680  m_data->m_finalHist1[ros][drawer][adc][0][2]->Draw("sameP0");
1681  }
1682 
1683  if (do_plots) {
1684  pad = Can->cd(2 * maxgain + adc + 1);
1685  pad->SetTopMargin(0.15);
1686  pad->SetGridx();
1687  }
1688 
1689  if (max3 < 0.9 * maxy[4 + adc]) m_data->m_finalHist1[ros][drawer][adc][0][3]->SetMaximum(maxy[4 + adc]);
1690  if (min3 > (miny[4 + adc] + 0.1 * TMath::Abs(miny[4 + adc]))) m_data->m_finalHist1[ros][drawer][adc][0][3]->SetMinimum(miny[4 + adc]);
1691 
1692  m_data->m_finalHist1[ros][drawer][adc][0][3]->SetMarkerStyle(21);
1693  m_data->m_finalHist1[ros][drawer][adc][0][3]->SetMarkerSize(ms);
1694  m_data->m_finalHist1[ros][drawer][adc][0][3]->SetLabelSize(0.08, "X");
1695  m_data->m_finalHist1[ros][drawer][adc][0][3]->SetLabelSize(0.08, "Y");
1696  if (do_plots) {
1697  m_data->m_finalHist1[ros][drawer][adc][0][3]->Draw("E0");
1698  }
1699 
1700  } //end of loop over gain
1701 
1702  if (m_savePng) {
1703  Can->Print(TString(moduleName + "_fit_amp.png"), "png");
1704  }
1705  if (m_savePs) {
1706  Can->Print(TString(moduleName + "_fit_amp.ps"), "ps");
1707  }
1708  if (m_saveSvg) {
1709  Can->Print(TString(moduleName + "_fit_amp.svg"), "svg");
1710  }
1711  if (do_plots) delete Can;
1712  }
1713  }
1714 }

◆ drawOptFilt()

void TileRawChannelMonTool::drawOptFilt ( int  ros,
int  drawer,
const std::string &  moduleName 
)

◆ endOfEventsBlockFlag()

bool ManagedMonitorToolBase::endOfEventsBlockFlag ( ) const
inlineprotectedinherited

Definition at line 794 of file ManagedMonitorToolBase.h.

794 { return m_endOfEventsBlock; }

◆ endOfLowStatFlag()

bool ManagedMonitorToolBase::endOfLowStatFlag ( ) const
inlineprotectedinherited

Definition at line 795 of file ManagedMonitorToolBase.h.

795 { return m_endOfLowStat; }

◆ endOfLumiBlockFlag()

bool ManagedMonitorToolBase::endOfLumiBlockFlag ( ) const
inlineprotectedinherited

Definition at line 796 of file ManagedMonitorToolBase.h.

796 { return m_endOfLumiBlock; }

◆ endOfRunFlag()

bool ManagedMonitorToolBase::endOfRunFlag ( ) const
inlineprotectedinherited

Definition at line 797 of file ManagedMonitorToolBase.h.

797 { return m_endOfRun; }

◆ evtStore() [1/2]

ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

85 { return m_evtStore; }

◆ evtStore() [2/2]

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( ) const
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase &  ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ fillDsp()

StatusCode TileRawChannelMonTool::fillDsp ( std::map< int, std::vector< double > > &  efitMap,
std::map< int, std::vector< double > > &  tfitMap 
)

Definition at line 804 of file TileRawChannelMonTool.cxx.

806 {
807 
808  ATH_MSG_DEBUG("in fillDsp()");
809 
810  const TileRawChannelContainer* RawChannelCnt;
811  CHECK(evtStore()->retrieve(RawChannelCnt, m_contNameDSP));
812 
813  TileRawChannelUnit::UNIT RChUnit = RawChannelCnt->get_unit();
814 
815  TileRawChannelContainer::const_iterator collItr = RawChannelCnt->begin();
816  TileRawChannelContainer::const_iterator lastColl = RawChannelCnt->end();
817 
818  for (; collItr != lastColl; ++collItr) {
819 
820  TileRawChannelCollection::const_iterator chItr = (*collItr)->begin();
821  TileRawChannelCollection::const_iterator lastCh = (*collItr)->end();
822 
823  if (chItr != lastCh) {
824 
825  HWIdentifier adc_id = (*chItr)->adc_HWID();
826  int ros = m_tileHWID->ros(adc_id);
827  int drawer = m_tileHWID->drawer(adc_id);
828 
829  if (m_data->m_histDsp1[ros][drawer][0][0].size() == 0) {
830  m_bigain = true;
831  bookDsp(ros, drawer);
832  }
833 
834  for (; chItr != lastCh; ++chItr) {
835 
836  const TileRawChannel * rch = (*chItr);
837 
838  adc_id = rch->adc_HWID();
839  unsigned int chan = m_tileHWID->channel(adc_id);
840  int adc = m_tileHWID->adc(adc_id);
841  int gain = (m_bigain) ? adc : 0; // ignore gain in monogain run
842  unsigned int drawerIdx = TileCalibUtils::getDrawerIdx(ros, drawer);
843 
844  if ((m_cispar[8] == 0) /* || ( m_cispar[8] == abs(m_cabling->channel2hole(ros,chan)) )*/
845  && !m_corrup[ros][drawer][gain][chan / 3]) { // channel is fired and not corrupted
846 
847  double amp = rch->amplitude();
848  if (RChUnit != m_calibUnit) {
849  if (m_calibUnit != TileRawChannelUnit::CesiumPicoCoulombs) { //We put everythin in the same unit
850  amp = m_tileToolEmscale->channelCalib(drawerIdx, chan, adc, amp, RChUnit, m_calibUnit);
851  } else { // it is =TileRawChannelUnit::CesiumPicoCoulombs, careful with MBTS channels
852  if (ros < 3) //if LB then it's ok CesiumPicoCoulomb
853  {
854  amp = m_tileToolEmscale->channelCalib(drawerIdx, chan, adc, amp, RChUnit, TileRawChannelUnit::CesiumPicoCoulombs);
855  //conversion factor if of the order of 1000MeV=1.05pC
856  } else // check that they are not MBTS channel
857  {
858  int index, pmt;
859  /*Identifier cell_id =*/rch->cell_ID_index(index, pmt);
860  if (index < -1) // MBTS channel
861  {
862  amp = m_tileToolEmscale->channelCalib(drawerIdx, chan, adc, amp, RChUnit, TileRawChannelUnit::PicoCoulombs);
863  } else //not MBTS channel
864  {
865  amp = m_tileToolEmscale->channelCalib(drawerIdx, chan, adc, amp, RChUnit, TileRawChannelUnit::CesiumPicoCoulombs);
866  }
867  }
868  } // end if CesiumPicoCouloumb
869  }
870 
871  double time = rch->time();
872  double chi2 = rch->quality();
873 
874  m_data->m_histDsp1[ros][drawer][chan][gain][Edsp]->Fill(amp, 1.0);
875  m_data->m_histDsp1[ros][drawer][chan][gain][Tdsp]->Fill(time, 1.0);
876  m_data->m_histDsp1[ros][drawer][chan][gain][chi2dsp]->Fill(chi2, 1.0);
877  m_data->m_histDsp2[ros][drawer][chan][gain][0]->Fill(amp, chi2, 1.0);
878  m_data->m_finalHistDsp2[ros][drawer][gain][0]->Fill(amp, chi2, 1.0);
879 
880  std::map<int, std::vector<double> >::iterator it = efitMap.find(ros * 100 + drawer);
881  if (it != efitMap.end()) {
882  double efit = (*it).second.at(chan + gain * 48);
883  it = tfitMap.find(ros * 100 + drawer);
884  double tfit = (*it).second.at(chan + gain * 48);
885  //convert from pC to ADC counts
886  if (TMath::Abs(efit) > m_efitThresh) { // fill the histogram only if the efit is above threshold
887  m_data->m_histDsp1[ros][drawer][chan][gain][Edsp_fit]->Fill((amp - efit) / efit, 1.0);
888  }
889 
890  if (tfit != 0.) {
891  m_data->m_histDsp1[ros][drawer][chan][gain][Tdsp_fit]->Fill((time - tfit), 1.0);
892  }
893 
894  }
895  }
896 
897  } // loop over channels
898 
899  }
900  }
901  return StatusCode::SUCCESS;
902 }

◆ fillHistograms()

StatusCode ManagedMonitorToolBase::fillHistograms ( )
virtualinherited

◆ fillHists()

StatusCode TileRawChannelMonTool::fillHists ( )
overridevirtual

Calls fillHists( bool, bool, bool ); if an eventBlock,lumiBlock, or run has turned over, calls procHists( bool, bool, bool ) and bookHists( bool, bool, bool ).

Reimplemented from ManagedMonitorToolBase.

Definition at line 517 of file TileRawChannelMonTool.cxx.

519 {
520 
521  ATH_MSG_DEBUG("in fillHists()");
522 
523  if (m_nEventsTileMon % 1000 == 0) ATH_MSG_INFO(m_nEventsTileMon<<" events processed so far");
524  // array of 16 CIS parameters
525  const TileDQstatus* dqStatus = SG::makeHandle (m_DQstatusKey).get();
526  m_cispar = dqStatus->cispar();
528 
529  m_efitMap.clear();
530  m_tfitMap.clear();
531 
532  //ndulchin: start filter code
533  const TileDigitsContainer* DigitsCnt;
534  CHECK(evtStore()->retrieve(DigitsCnt, "TileDigitsCnt"));
535 
536  TileDigitsContainer::const_iterator collItr2 = DigitsCnt->begin();
537  TileDigitsContainer::const_iterator lastColl2 = DigitsCnt->end();
538 
539  for (; collItr2 != lastColl2; ++collItr2) {
540  TileDigitsCollection::const_iterator digitsItr = (*collItr2)->begin();
541  TileDigitsCollection::const_iterator lastDigits = (*collItr2)->end();
542 
543  if (digitsItr != lastDigits) {
544 
545  HWIdentifier adc_id = (*digitsItr)->adc_HWID();
546  int ros = m_tileHWID->ros(adc_id);
547  int drawer = m_tileHWID->drawer(adc_id);
548  std::vector<uint32_t> headerVec = (*collItr2)->getFragChipHeaderWords();
549  int headsize = headerVec.size();
550  if (headsize > 16) headsize = 16;
551 
552  int fragId = (*collItr2)->identify();
553  if (!std::binary_search(m_fragIDsToIgnoreDMUerrors.begin(), m_fragIDsToIgnoreDMUerrors.end(), fragId)) {
554 
555  for (int dmu = 0; dmu < headsize; dmu++) {
556  m_corrup[ros][drawer][0][dmu] = checkDmuHeader(&headerVec, dmu);
557  m_corrup[ros][drawer][1][dmu] = checkDmuHeader(&headerVec, dmu);
558  }
559 
560  } else {
561  for (int dmu = 0; dmu < headsize; dmu++) {
562  m_corrup[ros][drawer][0][dmu] = false;
563  m_corrup[ros][drawer][1][dmu] = false;
564  }
565  }
566 
567  for (int dmu = headsize; dmu < 16; dmu++) {
568  m_corrup[ros][drawer][0][dmu] = false;
569  m_corrup[ros][drawer][1][dmu] = false;
570  }
571 
572  }
573  }
574 
575  //if (!isErr)
576  //ndulchin: end Filter code
577 
578  const TileRawChannelContainer* RawChannelCnt;
579  CHECK(evtStore()->retrieve(RawChannelCnt, m_contName));
580 
581  TileRawChannelUnit::UNIT RChUnit = RawChannelCnt->get_unit();
582 
583  //Lukas
584  double avgTimePerPart[5], sumTimeCh[5];
585  int nCh[5];
586  for (int iros = 0; iros < 5; iros++) {
587  avgTimePerPart[iros] = 0;
588  sumTimeCh[iros] = 0;
589  nCh[iros] = 0;
590  } //for iros
591  //Lukas
592 
593  for (int k = 0; k < 2; k++) { //Lukas
594 
595  TileRawChannelContainer::const_iterator collItr = RawChannelCnt->begin();
596  TileRawChannelContainer::const_iterator lastColl = RawChannelCnt->end();
597 
598  for (; collItr != lastColl; ++collItr) {
599 
600  int cap = (m_cispar[7] > 10) ? 0 : 1; // 100 pF or 5 pF
601  int cap_index = cap;
602 
603  double hg_small_charge = 1.; // ignore charges below 1 pC in HG
604  double lg_small_charge = (cap) ? 10. : 15.; // ignore charges below 10 pC for small cap and below 15 pC for big cap in LG
605  double hg_charge_cut = 11.5; // ignore charges above 11.5 pC in HG (full range is 12.5 pC)
606  double lg_charge_cut = 750.; // ignore charges above 750. pC in LG (full range is 800. pC)
607 
608  int fragId = (*collItr)->identify();
609  bool demonstrator = (std::binary_search(m_fragIDsDemonstrators.begin(), m_fragIDsDemonstrators.end(), fragId));
610  if (demonstrator) {
611  hg_small_charge *= 2.;
612  hg_charge_cut *= 2;
613  cap_index *= 2;
614  }
615  double charge = (m_cispar[6] < 1024) ? m_cispar[6] * m_dac2Charge[cap_index] : 0;
616  double timeInj = m_cispar[5] * 0.104;
617 
618  TileRawChannelCollection::const_iterator chItr = (*collItr)->begin();
619  TileRawChannelCollection::const_iterator lastCh = (*collItr)->end();
620 
621  if (chItr != lastCh) {
622 
623  HWIdentifier adc_id = (*chItr)->adc_HWID();
624  int ros = m_tileHWID->ros(adc_id);
625  int drawer = m_tileHWID->drawer(adc_id);
626  unsigned int drawerIdx = TileCalibUtils::getDrawerIdx(ros, drawer);
627 
628  if (m_data->m_hist1[ros][drawer][0][0].size() == 0) {
629  // m_bigain = (dqStatus->calibMode() == 1); // true if bi-gain run
630  // we fill both high and low gain plots
631  m_bigain = true;
632  if (k == 0) bookHists(ros, drawer); //Lukas
633  }
634 
635  std::vector<double> efitVec(m_bigain ? 96 : 48, 0.), tfitVec(m_bigain ? 96 : 48, 0.); //I need these variables later for comparison with dsp
636 
637  for (; chItr != lastCh; ++chItr) {
638 
639  const TileRawChannel * rch = (*chItr);
640 
641  adc_id = rch->adc_HWID();
642  unsigned int chan = m_tileHWID->channel(adc_id);
643  int adc = m_tileHWID->adc(adc_id);
644  int gain = (m_bigain) ? adc : 0; // ignore gain in monogain run
645 
646  if ((m_cispar[8] == 0) /* || ( m_cispar[8] == abs(m_cabling->channel2hole(ros,chan)) )*/) { // channel is fired
647 
648  double amp = rch->amplitude();
649  if (RChUnit != m_calibUnit) {
650  //Put everything in PicoCoulomb by default for all run types
651  //For Laser and Physcs calibrate in CesiumPicoCoulomb for all channels,
652  // but the MBTS channels, for which we keep the calibration in PicoCoulombCesium pC for consistency
653  //(no Cs calibration is possible)
655  if (ros < 3) //if LB then it's ok CesiumPicoCoulomb
656  {
657  amp = m_tileToolEmscale->channelCalib(drawerIdx, chan, adc, amp, RChUnit, TileRawChannelUnit::CesiumPicoCoulombs);
658  } else // check that they are not MBTS channel
659  {
660  int index, pmt;
661  /*Identifier cell_id =*/rch->cell_ID_index(index, pmt);
662  if (index < -1) // MBTS channel
663  {
664  amp = m_tileToolEmscale->channelCalib(drawerIdx, chan, adc, amp, RChUnit, TileRawChannelUnit::PicoCoulombs);
665  } else //not MBTS channel
666  {
667  amp = m_tileToolEmscale->channelCalib(drawerIdx, chan, adc, amp, RChUnit, TileRawChannelUnit::CesiumPicoCoulombs);
668  }
669  }
670  } //close if on CesiumPicoCoulomb units
671  else { //calibrate in PicoCoulomb
672  amp = m_tileToolEmscale->channelCalib(drawerIdx, chan, adc, amp, RChUnit, m_calibUnit);
673  }
674  } // no need to calibrate
675 
676  efitVec[chan + gain * 48] = amp;
677  double time = rch->time();
678  double timeCorr = 0; //Lukas
679  tfitVec[chan + gain * 48] = time;
680 
681  if (!m_corrup[ros][drawer][gain][chan / 3]) {
682  if ((m_runType == CisRun) || (m_runType == CisRamp)) {
683  if (k == 0) { //Lukas
684 
685  if (m_book2D) {
686  m_data->m_hist2[ros][drawer][chan][gain][cap]->Fill(charge, amp);
687  }
688 
689  // avoid small signals and overflows in both gains
690  if ( ( (adc == 1) && (charge < hg_charge_cut) && (charge > hg_small_charge) ) ||
691  ( (adc == 0) && (charge < lg_charge_cut) && (charge > lg_small_charge) ) ) {
692 
693  double ratio = amp / charge;
694 
695  m_data->m_hist1[ros][drawer][chan][gain][0 + cap]->Fill(ratio);
696  m_data->m_hist1[ros][drawer][chan][gain][2 + cap]->Fill(time);
697  if (m_book2D) {
698  m_data->m_hist2[ros][drawer][chan][gain][cap + 2]->Fill(timeInj, time);
699  }
700 
701  /*TimeCov[ros][drawer][chan][gain][cap][0] += timeInj;
702  TimeCov[ros][drawer][chan][gain][cap][1] += timeInj*timeInj;
703  TimeCov[ros][drawer][chan][gain][cap][2] += time;
704  TimeCov[ros][drawer][chan][gain][cap][3] += time*time;
705  TimeCov[ros][drawer][chan][gain][cap][4] += timeInj*time;*/
706  ++m_data->m_timeCov[ros][drawer][chan][gain][cap][5];
707  }
708  } //if k==0 //Lukas
709  } else { // not CisRun
710  if (k == 0) { //Lukas
711  m_data->m_hist1[ros][drawer][chan][gain][0]->Fill(amp, 1.0);
712  if (time != 0) { // we don't fill the time when it is exactly 0, which is a conventional value to say that it is not
713  // calculated when the difference between the max(samples)-min(samples)< threshold
714  m_data->m_hist1[ros][drawer][chan][gain][1]->Fill(time, 1.0);
715  }
716 
717  m_data->m_timeCov[ros][drawer][chan][gain][0][0] += amp;
718  m_data->m_timeCov[ros][drawer][chan][gain][0][1] += amp * amp;
719  m_data->m_timeCov[ros][drawer][chan][gain][0][2] += time;
720  m_data->m_timeCov[ros][drawer][chan][gain][0][3] += time * time;
721  //TimeCov[ros][drawer][chan][gain][0][4] += amp*time;
722  ++m_data->m_timeCov[ros][drawer][chan][gain][0][5];
723  /*
724  //Lukas
725  if((ros==3 && drawer==14 && (chan==12 || chan==13 || chan==18 || chan==19))||(ros==4 && drawer==17 && (chan==12 || chan==13 || chan==18 || chan==19))){
726  }else if((ros==3 || ros==4) && (chan==0 || chan==1 || chan==12 || chan==13)){
727  }else{
728  sumTimeCh[ros][gain]+=time;
729  nCh[ros][gain]+=1;
730  }
731  //Lukas
732  */
733  //Lukas
734  if (isDisconnected(ros, drawer, chan) || amp < m_minAmpForCorrectedTime) continue;
735  if ((ros == 3 || ros == 4)
736  && (chan == 0 || chan == 1 || chan == 2 || chan == 3 || chan == 4 || chan == 5 || chan == 12 || chan == 13 || chan == 18
737  || chan == 19)) {
738  } else {
739  sumTimeCh[ros] += time;
740  nCh[ros] += 1;
741  }
742  //Lukas
743 
744  } //if k==0 //Lukas
745  else if (k == 1) { //Lukas
746  if (isDisconnected(ros, drawer, chan) || amp < m_minAmpForCorrectedTime) continue;
747 
748  timeCorr = time - avgTimePerPart[ros]; //Lukas
749  m_data->m_hist1[ros][drawer][chan][gain][2]->Fill(timeCorr, 1.0); //Lukas
750 
751  m_data->m_timeCovCorr[ros][drawer][chan][gain][0][0] += timeCorr; //Lukas
752  m_data->m_timeCovCorr[ros][drawer][chan][gain][0][1] += timeCorr * timeCorr; //Lukas
753  ++m_data->m_timeCovCorr[ros][drawer][chan][gain][0][2]; //Lukas
754 
755  } //k==1 //Lukas
756  } // end of nonCisRun
757  }
758 
759  } else { // if channel is not fired
760  }
761 
762  } // loop over channels
763  if (k == 0) { //Lukas
764  if (m_plotDsp) {
765  m_efitMap.insert(make_pair(ros * 100 + drawer, efitVec)); // needed later for dspreco comparison
766  m_tfitMap.insert(make_pair(ros * 100 + drawer, tfitVec)); // needed later for dspreco comparison
767  }
768  } //if k==0 //Lukas
769  }
770  }
771  //Lukas
772  if (k == 0) {
773  for (int iros = 0; iros < 5; iros++) {
774  if (nCh[iros] != 0) {
775  avgTimePerPart[iros] = sumTimeCh[iros] / nCh[iros];
776  } else {
777  avgTimePerPart[iros] = 0;
778  }
779  sumTimeCh[iros] = 0;
780  nCh[iros] = 0;
781  } //for
782  } //if k==0
783  //Lukas
784  } // loop over k //Lukas
785 
786  if (m_plotDsp) {
787  if (fillDsp(m_efitMap, m_tfitMap).isFailure()) ATH_MSG_WARNING("Error filling DSP histograms");
788  }
789 
790 
792  m_drawHists = false;
795  }
796 
797 
798 
800  return StatusCode::SUCCESS;
801 }

◆ fillSummaryHistograms()

StatusCode TileRawChannelMonTool::fillSummaryHistograms ( )
private

Definition at line 1046 of file TileRawChannelMonTool.cxx.

1048 {
1049 
1050  ATH_MSG_INFO("in fillFfinalHiststograms()");
1051 
1052  memset(m_data->m_rangeQ, 0, sizeof(m_data->m_rangeQ));
1053 
1054  TF1 * fit_gaus = new TF1("g", "gaus");
1055 
1056  // for bigain run book 2 histograms per channel
1057  // for monogain run book just one histogram per channel
1058  int mingain = (m_bigain) ? 0 : 2;
1059  int maxgain = (m_bigain) ? 2 : 3;
1060 
1061  if ((m_runType == CisRun) || (m_runType == CisRamp)) {
1062  for (int ros = 1; ros < 5; ++ros) {
1063  for (int drawer = 0; drawer < 64; ++drawer) {
1064  if (m_data->m_hist1[ros][drawer][0][0].size() != 0) {
1065  for (int gn = mingain; gn < maxgain; ++gn) {
1066 
1067  int adc = gn & 1;
1068  for (int cap = 0; cap < 2; ++cap) {
1069  for (int ch = 0; ch < 48; ++ch) {
1070 
1071  // int pmt = abs(m_cabling->channel2hole(ros,ch)); // number in range [1,48]
1072 
1073  TF1* polyfunc = 0;
1074  if (m_book2D) polyfunc = GetTimeFitFunc(m_data->m_hist2[ros][drawer][ch][adc][cap + 2]);
1075  if (polyfunc) {
1076  m_data->m_finalHist1[ros][drawer][adc][cap][0]->SetBinContent(ch + 1, polyfunc->GetParameter(1));
1077  if (polyfunc->GetParError(1) > 5) {
1078  m_data->m_finalHist1[ros][drawer][adc][cap][0]->SetBinError(ch + 1, 5.);
1079  } else {
1080  m_data->m_finalHist1[ros][drawer][adc][cap][0]->SetBinError(ch + 1, polyfunc->GetParError(1));
1081  }
1082  m_data->m_finalHist1[ros][drawer][adc][cap][1]->SetBinContent(ch + 1, polyfunc->GetParameter(0));
1083  if (polyfunc->GetParError(0) > 5) {
1084  m_data->m_finalHist1[ros][drawer][adc][cap][1]->SetBinError(ch + 1, 5.);
1085  } else {
1086  m_data->m_finalHist1[ros][drawer][adc][cap][1]->SetBinError(ch + 1, polyfunc->GetParError(0));
1087  }
1088 
1089  delete polyfunc; //important!
1090  }
1091 
1092  else {
1093  m_data->m_finalHist1[ros][drawer][adc][cap][0]->SetBinContent(ch + 1, 0.);
1094  m_data->m_finalHist1[ros][drawer][adc][cap][0]->SetBinError(ch + 1, 0.);
1095  m_data->m_finalHist1[ros][drawer][adc][cap][1]->SetBinContent(ch + 1, 0.);
1096  m_data->m_finalHist1[ros][drawer][adc][cap][1]->SetBinError(ch + 1, 0.);
1097  }
1098 
1099  TH1S * hist = m_data->m_hist1[ros][drawer][ch][adc][cap];
1100  int nbins = hist->GetNbinsX();
1101  int minbin = 1;
1102  for (; minbin < nbins; ++minbin) {
1103  if (hist->GetBinContent(minbin) > 0.0) {
1104  break;
1105  }
1106  }
1107  int maxbin = nbins;
1108  for (; maxbin > 1; --maxbin) {
1109  if (hist->GetBinContent(maxbin) > 0.0) {
1110  break;
1111  }
1112  }
1113 
1114  double mean = hist->GetMean();
1115  double xmin = hist->GetBinCenter(minbin);
1116  double xmax = hist->GetBinCenter(maxbin);
1117 
1118  //rangeErrorBar(xmin,xmax,mean);
1119  if (m_useratioerror) { // /use ratioerror bar or rangeerror bar ?
1121  } else {
1123  }
1124 
1125  //std::cout << hist->GetName() <<" mean-xmin= "<< mean-xmin <<"\n";
1126  m_data->m_rangeQ[adc][cap][0][ch] = mean;
1127  m_data->m_rangeQ[adc][cap][1][ch] = std::max(0.0, mean - xmin);
1128  m_data->m_rangeQ[adc][cap][2][ch] = std::max(0.0, xmax - mean);
1129 
1130  m_data->m_finalHist1[ros][drawer][adc][cap][2]->SetBinContent(ch + 1, mean);
1131  }
1132  } //end of loop over capacitors
1133  } //end of loop over gn
1134 
1135  if(m_drawHists) {
1136  std::string moduleName = TileCalibUtils::getDrawerString(ros, drawer);
1137  drawHists(ros, drawer, moduleName);
1138  }
1139  }
1140  } //end of loop over drawer
1141  } //end of loop over ros
1142 
1143  } else { // not CisRun
1144 
1145  for (int ros = 1; ros < 5; ++ros) {
1146  for (int drawer = 0; drawer < 64; ++drawer) {
1147  if (m_data->m_hist1[ros][drawer][0][0].size() != 0) {
1148  for (int gn = mingain; gn < maxgain; ++gn) {
1149 
1150  int adc = gn & 1;
1151  for (int ch = 0; ch < 48; ++ch) {
1152 
1153  // int pmt = abs(m_cabling->channel2hole(ros,ch)); // number in range [1,48]
1154 
1155  double Amp = 0.0, ErrA = 0.0, RMS = 0.0, ErrR = 0.0;
1156  double Time = 0.0, RMST = 0.0, Sigma = 0.0, ErrS = 0.0;
1157  double NEvents = m_data->m_timeCov[ros][drawer][ch][adc][0][5];
1158 
1159  double TimeCorr = 0.0, RMSTCorr = 0.0; //Lukas
1160  double NEventsCorr = m_data->m_timeCovCorr[ros][drawer][ch][adc][0][2]; //Lukas
1161 
1162  if (NEvents > 0.0) {
1163 
1164  Amp = m_data->m_timeCov[ros][drawer][ch][adc][0][0] / NEvents;
1165  RMS = m_data->m_timeCov[ros][drawer][ch][adc][0][1] / NEvents - Amp * Amp;
1166  if (RMS > 0.0) {
1167  RMS = sqrt(RMS);
1168  ErrA = RMS / sqrt(NEvents);
1169  ErrR = RMS / sqrt(2 * NEvents);
1170  } else {
1171  RMS = 0.0;
1172  }
1173 
1174  Time = m_data->m_timeCov[ros][drawer][ch][adc][0][2] / NEvents;
1175  RMST = m_data->m_timeCov[ros][drawer][ch][adc][0][3] / NEvents - Time * Time;
1176  if (RMST > 0.0) {
1177  RMST = sqrt(RMST);
1178  } else {
1179  RMST = 0.0;
1180  }
1181  }
1182 
1183  //Lukas
1184  if (NEventsCorr > 0.0) {
1185  TimeCorr = m_data->m_timeCovCorr[ros][drawer][ch][adc][0][0] / NEventsCorr;
1186  RMSTCorr = m_data->m_timeCovCorr[ros][drawer][ch][adc][0][1] / NEventsCorr - TimeCorr * TimeCorr;
1187  if (RMSTCorr > 0.0) {
1188  RMSTCorr = sqrt(RMSTCorr);
1189  } else {
1190  RMSTCorr = 0.0;
1191  }
1192  }
1193  //Lukas
1194 
1195  if (m_data->m_hist1[ros][drawer][ch][adc][0]->GetEntries() > 0) {
1196  if (adc == 0 && m_overlaphists) { // We have for LB histograms with variable-width bins, not suitable for a fit
1197  TH1S *h4fit=new TH1S(*(m_data->m_hist1[ros][drawer][ch][adc][0]));
1198  h4fit->Scale(1,"width");
1199  h4fit->Fit("g", "NQ");
1200  delete(h4fit);
1201  } else {
1202  m_data->m_hist1[ros][drawer][ch][adc][0]->Fit("g", "NQ");
1203  }
1204  Sigma = fit_gaus->GetParameter(2);
1205  ErrS = fit_gaus->GetParError(2);
1206  }
1207 
1208  m_data->m_finalHist1[ros][drawer][adc][0][0]->SetBinContent(ch + 1, Amp);
1209  m_data->m_finalHist1[ros][drawer][adc][0][0]->SetBinError(ch + 1, ErrA);
1210  m_data->m_finalHist1[ros][drawer][adc][0][1]->SetBinContent(ch + 1, RMS);
1211  m_data->m_finalHist1[ros][drawer][adc][0][1]->SetBinError(ch + 1, ErrR);
1212  m_data->m_finalHist1[ros][drawer][adc][0][2]->SetBinContent(ch + 1, Sigma);
1213  m_data->m_finalHist1[ros][drawer][adc][0][2]->SetBinError(ch + 1, ErrS);
1214  m_data->m_finalHist1[ros][drawer][adc][0][3]->SetBinContent(ch + 1, Time);
1215  m_data->m_finalHist1[ros][drawer][adc][0][3]->SetBinError(ch + 1, RMST);
1216  m_data->m_finalHist1[ros][drawer][adc][0][4]->SetBinContent(ch + 1, TimeCorr); //Lukas
1217  m_data->m_finalHist1[ros][drawer][adc][0][4]->SetBinError(ch + 1, RMSTCorr); //Lukas
1218 
1220 
1221  int pmt = m_cabling->channel2hole(ros, ch);
1222  if (pmt < 0) continue;
1223 
1224  int fiber = (pmt % 2);
1225 
1226  m_data->m_summaryPmts[ros][drawer][adc][fiber][0]->SetBinContent(pmt + 1, Amp);
1227  m_data->m_summaryPmts[ros][drawer][adc][fiber][0]->SetBinError(pmt + 1, ErrA);
1228  m_data->m_summaryPmts[ros][drawer][adc][fiber][1]->SetBinContent(pmt + 1, RMS);
1229  m_data->m_summaryPmts[ros][drawer][adc][fiber][1]->SetBinError(pmt + 1, ErrR);
1230  m_data->m_summaryPmts[ros][drawer][adc][fiber][2]->SetBinContent(pmt + 1, Sigma);
1231  m_data->m_summaryPmts[ros][drawer][adc][fiber][2]->SetBinError(pmt + 1, ErrS);
1232  m_data->m_summaryPmts[ros][drawer][adc][fiber][3]->SetBinContent(pmt + 1, Time);
1233  m_data->m_summaryPmts[ros][drawer][adc][fiber][3]->SetBinError(pmt + 1, RMST);
1234  m_data->m_summaryPmts[ros][drawer][adc][fiber][4]->SetBinContent(pmt + 1, TimeCorr); //Lukas
1235  m_data->m_summaryPmts[ros][drawer][adc][fiber][4]->SetBinError(pmt + 1, RMSTCorr); //Lukas
1236 
1237  if (ros == 1) {
1238 
1239  int bin = m_data->m_summaryPmts[0][drawer][adc][fiber][0]->FindBin(pmt);
1240 
1241  m_data->m_summaryPmts[0][drawer][adc][fiber][0]->SetBinContent(bin, Amp);
1242  m_data->m_summaryPmts[0][drawer][adc][fiber][0]->SetBinError(bin, ErrA);
1243  m_data->m_summaryPmts[0][drawer][adc][fiber][1]->SetBinContent(bin, RMS);
1244  m_data->m_summaryPmts[0][drawer][adc][fiber][1]->SetBinError(bin, ErrR);
1245  m_data->m_summaryPmts[0][drawer][adc][fiber][2]->SetBinContent(bin, Sigma);
1246  m_data->m_summaryPmts[0][drawer][adc][fiber][2]->SetBinError(bin, ErrS);
1247  m_data->m_summaryPmts[0][drawer][adc][fiber][3]->SetBinContent(bin, Time);
1248  m_data->m_summaryPmts[0][drawer][adc][fiber][3]->SetBinError(bin, RMST);
1249  m_data->m_summaryPmts[0][drawer][adc][fiber][4]->SetBinContent(bin, TimeCorr); //Lukas
1250  m_data->m_summaryPmts[0][drawer][adc][fiber][4]->SetBinError(bin, RMSTCorr); //Lukas
1251 
1252  }
1253 
1254  if (ros == 2) {
1255 
1256  int bin = m_data->m_summaryPmts[0][drawer][adc][1 - fiber][0]->FindBin(-pmt);
1257 
1258  m_data->m_summaryPmts[0][drawer][adc][1 - fiber][0]->SetBinContent(bin, Amp);
1259  m_data->m_summaryPmts[0][drawer][adc][1 - fiber][0]->SetBinError(bin, ErrA);
1260  m_data->m_summaryPmts[0][drawer][adc][1 - fiber][1]->SetBinContent(bin, RMS);
1261  m_data->m_summaryPmts[0][drawer][adc][1 - fiber][1]->SetBinError(bin, ErrR);
1262  m_data->m_summaryPmts[0][drawer][adc][1 - fiber][2]->SetBinContent(bin, Sigma);
1263  m_data->m_summaryPmts[0][drawer][adc][1 - fiber][2]->SetBinError(bin, ErrS);
1264  m_data->m_summaryPmts[0][drawer][adc][1 - fiber][3]->SetBinContent(bin, Time);
1265  m_data->m_summaryPmts[0][drawer][adc][1 - fiber][3]->SetBinError(bin, RMST);
1266  m_data->m_summaryPmts[0][drawer][adc][1 - fiber][4]->SetBinContent(bin, TimeCorr); //Lukas
1267  m_data->m_summaryPmts[0][drawer][adc][1 - fiber][4]->SetBinError(bin, RMSTCorr); //Lukas
1268 
1269  }
1270  }
1271 
1272  }
1273  } //end of loop over gn
1274 
1275  if(m_drawHists){
1276  std::string moduleName = TileCalibUtils::getDrawerString(ros, drawer);
1277  drawHists(ros, drawer, moduleName);
1278  if (m_plotDsp) {
1279  if (finalDsp(ros, drawer).isFailure()) ATH_MSG_WARNING("Error finalizing DSP histograms");
1280  }
1281  }
1282 
1283  }
1284  } //loop over drawer
1285  } //loop over ros
1286  }
1287 
1288  delete fit_gaus;
1289 
1290  return StatusCode::SUCCESS;
1291 }

◆ finalDsp()

StatusCode TileRawChannelMonTool::finalDsp ( int  ros,
int  drawer 
)

get algorithm and number of iterations from bsflags

Definition at line 1320 of file TileRawChannelMonTool.cxx.

1322 {
1323 
1324  if (m_data->m_histDsp1[ros][drawer][0][0].size() != 0) {
1325 
1327  const TileRawChannelContainer* RawChannelCntDsp;
1328 
1329  unsigned int iteration = 0u;
1330  unsigned int algorithm = 0u;
1331  if (evtStore()->retrieve(RawChannelCntDsp, m_contNameDSP).isSuccess()) {
1332  uint32_t info = RawChannelCntDsp->get_bsflags() >> 24u;
1333  iteration = info & 3u;
1334  algorithm = (info >> 2u) & 1u;
1335 
1336  // iteration: "NI", "I1", "I2", "I3"
1337  // algorithm: "OF1", "OF2"
1338  }
1339 
1340  const char *alg_name[2] = { "OF1", "OF2" };
1341  const char * iter_name[4] = { "NI", "I1", "I2", "I3" };
1342 
1343  const char *part[5] = { "AUX", "LBA", "LBC", "EBA", "EBC" };
1344  const char *gain[4] = { "_lo", "_hi", " low gain", " high gain" };
1345 
1346  int mingain = 0;
1347  int maxgain = 2;
1348 
1349 // const char *HistName[9] = {"_dspfit_ampdiff","_dspfit_timediff","_dspamp",
1350 // " Average (DSP-"," Average DSP-", " Average DSP-",
1351 // " - OFF-OF2-I) divided by OFF-OF2-I Amplitudes and RMS"," - OFF-OF2-I Time and RMS", " Amplitudes and RMS"};
1352  const char *HistName[9] = { "_dspfit_ampdiff", "_dspfit_timediff", "_dspamp", " Avg. (DSP-", " Average DSP-", " Average DSP-",
1353  " - OFF-OF2-I) / OFF Amplitudes and RMS", " - OFF-OF2-I Time and RMS", " Amplitudes and RMS" };
1354 
1355  std::ostringstream sStr;
1356  sStr << part[ros] << std::setfill('0') << std::setw(2) << drawer + 1 << std::setfill(' ');
1357  std::string moduleName = sStr.str();
1358  std::string subDir = "Summary";
1359  std::string histName, histTitle;
1360 
1361  for (int gn = mingain; gn < maxgain; ++gn) {
1362 
1363  int adc = gn & 1;
1364 
1365  for (int type = sumEdsp_fit; type < NsumDsp; ++type) {
1366  sStr.str("");
1367  sStr << moduleName << gain[gn] << HistName[type];
1368  histName = sStr.str();
1369  sStr.str("");
1370  sStr << moduleName << gain[2 + gn] << HistName[3 + type] << alg_name[algorithm] << "-" << iter_name[iteration] << HistName[6 + type];
1371  histTitle = sStr.str();
1372  m_data->m_finalHistDsp1[ros][drawer][adc].push_back(book1F(subDir, histName, histTitle, 48, 0.0, 48.0));
1373  }
1374 
1375  //Create hbar histograms to be used in drawDsp
1376  sStr.str("");
1377  sStr << moduleName << gain[gn] << "_dspfit_amphbar";
1378  histName = sStr.str();
1379  sStr.str("");
1380  sStr << moduleName << gain[2 + gn] << " (DSP-" << alg_name[algorithm] << "-" << iter_name[iteration]
1381  << " - OFF-OF2-I) divided by OFF Amplitudes for all chans";
1382  histTitle = sStr.str();
1383  m_data->m_hBarDsp1[ros][drawer][adc].push_back(book1F(subDir, histName, histTitle, 404, -1.01, 1.01));
1384 
1385  sStr.str("");
1386  sStr << moduleName << gain[gn] << "_dspfit_timehbar";
1387  histName = sStr.str();
1388  sStr.str("");
1389  sStr << moduleName << gain[2 + gn] << " (DSP-" << alg_name[algorithm] << "-" << iter_name[iteration] << " - OFF-OF2-I) Time for all chans";
1390  histTitle = sStr.str();
1391  m_data->m_hBarDsp1[ros][drawer][adc].push_back(book1F(subDir, histName, histTitle, 101, -2.02, 2.02));
1392 
1393  for (int ch = 0; ch < 48; ++ch) {
1394  // int pmt = abs(m_cabling->channel2hole(ros,ch)); // number in range [1,48]
1395 
1396  if (m_data->m_histDsp1[ros][drawer][ch][adc][Edsp_fit]->GetEntries() > 0) {
1397  double dspmean = m_data->m_histDsp1[ros][drawer][ch][adc][Edsp]->GetMean();
1398  double dsprms = m_data->m_histDsp1[ros][drawer][ch][adc][Edsp]->GetRMS();
1399  double emean = m_data->m_histDsp1[ros][drawer][ch][adc][Edsp_fit]->GetMean();
1400  double erms = m_data->m_histDsp1[ros][drawer][ch][adc][Edsp_fit]->GetRMS();
1401  double tmean = m_data->m_histDsp1[ros][drawer][ch][adc][Tdsp_fit]->GetMean();
1402  double trms = m_data->m_histDsp1[ros][drawer][ch][adc][Tdsp_fit]->GetRMS();
1403 
1404  m_data->m_finalHistDsp1[ros][drawer][adc][sumEdsp]->SetBinContent(ch + 1, dspmean);
1405  m_data->m_finalHistDsp1[ros][drawer][adc][sumEdsp]->SetBinError(ch + 1, dsprms);
1406  m_data->m_finalHistDsp1[ros][drawer][adc][sumEdsp_fit]->SetBinContent(ch + 1, emean);
1407  m_data->m_finalHistDsp1[ros][drawer][adc][sumEdsp_fit]->SetBinError(ch + 1, erms);
1408  m_data->m_finalHistDsp1[ros][drawer][adc][sumTdsp_fit]->SetBinContent(ch + 1, tmean);
1409  m_data->m_finalHistDsp1[ros][drawer][adc][sumTdsp_fit]->SetBinError(ch + 1, trms);
1410 
1411  m_data->m_hBarDsp1[ros][drawer][adc][sumEdsp_fit]->Add(m_data->m_histDsp1[ros][drawer][ch][adc][Edsp_fit]);
1412  m_data->m_hBarDsp1[ros][drawer][adc][sumTdsp_fit]->Add(m_data->m_histDsp1[ros][drawer][ch][adc][Tdsp_fit]);
1413 
1414  }
1415  }
1416  } // close loops over chans, gain
1417 
1418  // log << MSG::WARNING << "LUCA Calling drawDsp" << endreq;
1419  drawDsp(ros, drawer, moduleName);
1420 
1421  } //close if there are histograms for this Module
1422 
1423  return StatusCode::SUCCESS;
1424 }

◆ finalHists()

StatusCode TileRawChannelMonTool::finalHists ( )
overridevirtual

Calls procHists( true, true, true ).

Reimplemented from ManagedMonitorToolBase.

Definition at line 1297 of file TileRawChannelMonTool.cxx.

1299 {
1300  ATH_MSG_INFO("in finalHists()");
1301 
1302  if (m_summaryUpdateFrequency == 0) {
1303  for (int ros = 1; ros < 5; ++ros) {
1304  for (int drawer = 0; drawer < 64; ++drawer) {
1305  if (m_data->m_hist1[ros][drawer][0][0].size() != 0) {
1307  }
1308  }
1309  }
1310  }
1311 
1312  m_drawHists = true;
1314 
1315 
1316  return StatusCode::SUCCESS;
1317 }

◆ get_nEvents()

unsigned int ManagedMonitorToolBase::get_nEvents ( ) const
inlineprotectedinherited

Definition at line 692 of file ManagedMonitorToolBase.h.

692  {
693  return m_nEvents;
694  }

◆ get_procNEventsProp()

long ManagedMonitorToolBase::get_procNEventsProp ( ) const
inlineprotectedinherited

Definition at line 696 of file ManagedMonitorToolBase.h.

696  {
697  return m_procNEventsProp;
698  }

◆ getCellName()

std::string TilePaterMonTool::getCellName ( unsigned int  ros,
unsigned int  channel 
)
inlineprotectedinherited

Definition at line 224 of file TilePaterMonTool.h.

224  {
225  if (ros < 3) return m_LBcellName[channel];
226  else return m_EBcellName[channel];
227  };

◆ getHist() [1/4]

StatusCode ManagedMonitorToolBase::getHist ( TH1 *&  h,
const std::string &  hName,
const MonGroup group 
)
virtualinherited

Returns a TH1 via the pointer passed as the first argument.

The histogram name, without the leading path or stream name, must be given as the second argument.

Definition at line 1419 of file ManagedMonitorToolBase.cxx.

1421 {
1422  std::string streamName = streamNameFunction()->getStreamName( this, group, hName );
1423  return m_THistSvc->getHist( streamName, h );
1424 }

◆ getHist() [2/4]

StatusCode ManagedMonitorToolBase::getHist ( TH1 *&  h,
const std::string &  hName,
const std::string &  system,
Interval_t  interval 
)
virtualinherited

Returns a TH1 via the pointer passed as the first argument.

The histogram name, without the leading path or stream name, must be given as the second argument.

Definition at line 1409 of file ManagedMonitorToolBase.cxx.

1412 {
1413  MonGroup group( this, system, interval );
1414  return getHist( h, hName, group );
1415 }

◆ getHist() [3/4]

StatusCode ManagedMonitorToolBase::getHist ( TH2 *&  h,
const std::string &  hName,
const MonGroup group 
)
virtualinherited

Returns a TH2 via the pointer passed as the first argument.

The histogram name, without the leading path or stream name, must be given as the second argument.

Definition at line 1438 of file ManagedMonitorToolBase.cxx.

1440 {
1441  std::string streamName = streamNameFunction()->getStreamName( this, group, hName );
1442  return m_THistSvc->getHist( streamName, h );
1443 }

◆ getHist() [4/4]

StatusCode ManagedMonitorToolBase::getHist ( TH2 *&  h,
const std::string &  hName,
const std::string &  system,
Interval_t  interval 
)
virtualinherited

Returns a TH2 via the pointer passed as the first argument.

The histogram name, without the leading path or stream name, must be given as the second argument.

Definition at line 1428 of file ManagedMonitorToolBase.cxx.

1431 {
1432  MonGroup group( this, system, interval );
1433  return getHist( h, hName, group );
1434 }

◆ getNewStreamNameFcn()

ManagedMonitorToolBase::StreamNameFcn * ManagedMonitorToolBase::getNewStreamNameFcn ( ) const
protectedvirtualinherited

Definition at line 2157 of file ManagedMonitorToolBase.cxx.

2159 {
2160  StreamNameFcn* fcn(0);
2161 
2162  switch( m_environment ) {
2164  fcn = new NoOutputStream();
2165  break;
2167  fcn = new OnlineStream();
2168  break;
2170  fcn = new DefaultStream( m_fileKey );
2171  break;
2175  case AthenaMonManager::AOD:
2177  default:
2178  fcn = new OfflineStream( m_fileKey, m_dataType, m_environment );
2179  }
2180 
2181  return fcn;
2182 }

◆ GetTimeFitFunc()

TF1 * TileRawChannelMonTool::GetTimeFitFunc ( TH2S *  hist2d)

Time Slope parameters for CIS runs.

Was done once using correlation between X and Y, but this is not capable of coping with

Definition at line 1917 of file TileRawChannelMonTool.cxx.

1917  {
1918  /*---------------------------------------------------------*/
1919 //the TF1 pointer is created with new, please use a delete after the parameters have been extracted!
1920  if (hist2d) {
1921  TProfile* prof = hist2d->ProfileX();
1922 
1923  if (prof) {
1924  TH1S hist("hist", "TMP Histo", prof->GetNbinsX(), prof->GetBinLowEdge(1), prof->GetBinLowEdge(prof->GetNbinsX() + 1));
1925  float lastbin = -99.;
1926  float lasti = 0.;
1927  float shift = 0.;
1928  for (int i = 1; i < prof->GetNbinsX() + 1; i++) {
1929  if (prof->GetBinError(i) > 1e-7) {
1930  if ((shift < 1.) && ((prof->GetBinContent(i) - (lastbin + (i - lasti))) < -10.)) { //allow only 1 shift and only of negative sign
1931  shift = 25.;
1932  }
1933  lasti = i;
1934  lastbin = prof->GetBinContent(i);
1935  hist.SetBinContent(i, prof->GetBinContent(i) + shift);
1936  hist.SetBinError(i, prof->GetBinError(i));
1937  }
1938  } // end for loop on the histogram bins
1939  TF1* polfun = new TF1("polfun", "pol1", 0., 25.); //remember to delete!
1940  hist.Fit("polfun", "NQ");
1941 
1942  polfun->SetParameter(0, polfun->GetParameter(0) - 25.); // shift by -25 ns to be consistent with previous definition
1943  delete prof; //not needed, but these profiles appears in the root files, even if they are not booked
1944  return polfun; //rember to delete!
1945  }
1946  }
1947  return 0;
1948 }

◆ getTMDBCellName()

std::string TilePaterMonTool::getTMDBCellName ( unsigned int  ros,
unsigned int  channel 
)
inlineprotectedinherited

Definition at line 233 of file TilePaterMonTool.h.

233  {
234  if (ros < 3) return m_TMDB_LB_cell_names[channel];
235  else return m_TMDB_EB_cell_names[channel];
236  };

◆ initialize()

StatusCode TileRawChannelMonTool::initialize ( )
overridevirtual

Reimplemented from TilePaterMonTool.

Definition at line 94 of file TileRawChannelMonTool.cxx.

96 {
97 
98  ATH_MSG_INFO("in initialize()");
99 
100  m_data = std::make_unique<Data>();
101 
102  CHECK(m_tileToolEmscale.retrieve());
103 
104  m_nEventsTileMon = 0;
105 
106  memset(m_data->m_timeCov, 0, sizeof(m_data->m_timeCov));
107  memset(m_data->m_timeCovCorr, 0, sizeof(m_data->m_timeCovCorr));
108 
110 
112  if (m_tileInfo->ADCmax() == 4095) m_is12bit = true;
113 
114  m_dac2Charge[0] = 100.* 2.0 * 4.096 / double(m_tileInfo->ADCmax()); // 100 pF * 2 for legacy or 200 pF for demonstrator
115  m_dac2Charge[1] = 5.2 * 2.0 * 4.096 / double(m_tileInfo->ADCmax()); // use the same number 5.2 pF as in TileCisDefaultCalibTool
116  m_dac2Charge[2] = 5.2 * 4.096 / double(m_tileInfo->ADCmax()); // effective value of small capacitor is twice smaller for demonstrator
117 
119 
120  return StatusCode::SUCCESS;
121 }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ interfaceID()

static const InterfaceID& IMonitorToolBase::interfaceID ( )
inlinestaticinherited

Definition at line 29 of file IMonitorToolBase.h.

29 { return IID_IMonitorToolBase; }

◆ intervalEnumToString()

std::string ManagedMonitorToolBase::intervalEnumToString ( Interval_t  interval)
staticinherited

Converts a LevelOfDetail_t to a string of the same name.

Converts a string to the corresponding LevelOfDetail_t. Converts a Interval_t to a string of the same name.

Definition at line 536 of file ManagedMonitorToolBase.cxx.

538 {
539  std::string str("file");
540 
541  switch( interval ) {
542  case all:
543  str = "all";
544  break;
545  case fill:
546  str = "fill";
547  break;
548  case run:
549  str = "run";
550  break;
551  case lowStat:
552  str = "lowStat";
553  break;
554  case medStat:
555  str = "medStat";
556  break;
557  case higStat:
558  str = "higStat";
559  break;
560  case lumiBlock:
561  str = "lumiBlock";
562  break;
563  case eventsBlock:
564  str = "eventsBlock";
565  break;
566  case file:
567  str = "file";
568  break;
569  default:
570  str = "unknown";
571  }
572 
573  return str;
574 }

◆ intervalStringToEnum()

ManagedMonitorToolBase::Interval_t ManagedMonitorToolBase::intervalStringToEnum ( const std::string &  str)
staticinherited

Converts a string to the corresponding Interval_t.

Definition at line 578 of file ManagedMonitorToolBase.cxx.

580 {
581  std::string lcstr( strToLower(str) );
582 
583  if( lcstr == "all" )
584  return all;
585  else if( lcstr == "fill" )
586  return fill;
587  else if( lcstr == "run" )
588  return run;
589  else if( lcstr == "lowStat" )
590  return lowStat;
591  else if( lcstr == "medStat" )
592  return medStat;
593  else if( lcstr == "higStat" )
594  return higStat;
595  else if( lcstr == "lumiBlock" )
596  return lumiBlock;
597  else if( lcstr == "eventsBlock" )
598  return eventsBlock;
599  else if( lcstr == "file" )
600  return file;
601 
602  if( Imp::s_svcLocator ) {
603  SmartIF<IMessageSvc> ms{Imp::s_svcLocator.load()->service( "MessageSvc" )};
604  if( ms.isValid() ) {
605  MsgStream log( ms, "ManagedMonitorToolBase::intervalStringToEnum()" );
606  log << MSG::WARNING << "Unknown ManagedMonitorToolBase::Interval_t \""
607  << str << "\", returning \"file\"" << endmsg;
608  }
609  }
610 
611  return file;
612 }

◆ isDisconnected()

bool TilePaterMonTool::isDisconnected ( int  ros,
int  drawer,
int  ch 
)
inlineprotectedinherited

Definition at line 259 of file TilePaterMonTool.h.

259  {
260 
261  if (ros < 3) { //LB, all standard. Channels 30,31,43 are disconnected
262  return m_chMapLB[ch];
263  } else {
264  if (((ros == 3) && (drawer == 14)) || ((ros == 4) && (drawer == 17))) {//EB, EBA15 and EBC18 are special
265  return m_chMapEBsp[ch];
266  } else {//EB standard module
267  return m_chMapEB[ch];
268  }
269  } //end if LB else EB
270 
271  }

◆ LaserFancyPlotting()

void TileRawChannelMonTool::LaserFancyPlotting ( int  ros,
int  drawer,
int  maxgain,
const std::string &  moduleName 
)

Definition at line 1982 of file TileRawChannelMonTool.cxx.

1982  {
1983  /*---------------------------------------------------------*/
1984 
1985  ATH_MSG_DEBUG("in LaserFancyPlotting...");
1986 
1987  //TCanvas * Can = new TCanvas("fit_amp","fit_amp",402*maxgain,588);
1988  bool do_plots = m_savePng || m_savePs || m_saveSvg;
1989  TCanvas * Can = NULL;
1990  if (do_plots) {
1991  Can = new TCanvas("fit_amp", "fit_amp", 402 * maxgain, 735); //Lukas
1992  //Can->Divide(maxgain, 4);
1993  Can->Divide(maxgain, 5); //Lukas
1994  gStyle->SetOptStat(0);
1995  gStyle->SetTitleFontSize(0.1);
1996  }
1997  TLine *line = new TLine();
1998  line->SetLineWidth(2);
1999  line->SetLineStyle(7);
2000  line->SetLineColor(3);
2001 
2002  float ms = (m_bigain) ? 0.75 : 1.0; // marker size
2003 
2004  double maxy[6] = { 5.0, 0.5, 1.0, 0.05, 25.0, 25.0 };
2005  double miny[6] = { -5.0, -0.5, 0.0, 0.0, -25.0, -25.0 };
2006 
2007  // Mean value
2008  TH1F* final_empty[2]; //adc, type
2009  TH1F* final_odd[2]; //adc, type
2010  TH1F* final_even[2]; //adc, type
2011 
2012  // define TH1 that will contain the plots of variance/mean
2013  TH1F* pmtGain_empty[2];
2014  TH1F* pmtGain_odd[2];
2015  TH1F* pmtGain_even[2];
2016 
2017  for (int g = 0; g < 2; g++) {
2018 
2019  std::ostringstream hn;
2020  hn << "empty_" << g;
2021  final_empty[g] = new TH1F(hn.str().c_str(), m_data->m_finalHist1[ros][drawer][g][0][0]->GetTitle(), 48, 0, 48);
2022  hn.str("");
2023  hn << "odd_" << g;
2024  final_odd[g] = new TH1F(hn.str().c_str(), m_data->m_finalHist1[ros][drawer][g][0][0]->GetTitle(), 48, 0, 48);
2025  hn.str("");
2026  hn << "even_" << g;
2027  final_even[g] = new TH1F(hn.str().c_str(), m_data->m_finalHist1[ros][drawer][g][0][0]->GetTitle(), 48, 0, 48);
2028 
2029  //---- Histograms for the ratio Var/Mean
2030  // titles...
2031  std::string title;
2032  const char* gain[2] = { "low", "high" };
2033  const char* moduleNames[5] = { "AUX", "LBA", "LBC", "EBA", "EBC" };
2034  if (drawer < 10)
2035  title = Form("%s0%i %s gain, Variance/Mean", moduleNames[ros], drawer + 1, gain[g]);
2036  else
2037  title = Form("%s%i %s gain, Variance/Mean", moduleNames[ros], drawer + 1, gain[g]);
2038 
2039  std::ostringstream sStr;
2040  std::string subDir = "Summary";
2041  sStr.str("");
2042  sStr << moduleNames[ros] << std::setfill('0') << std::setw(2) << drawer + 1 << std::setfill(' ') << gain[g] << "_pmtGain_empty";
2043  std::string histName = sStr.str();
2044  pmtGain_empty[g] = book1F(subDir, histName, title, 48, 0.0, 48.0);
2045  // pmtGain_empty[g]= new TH1F(Form("pmtGain_empty_%i", g),title.c_str(), 48,0,48);
2046 
2047  sStr.str("");
2048  sStr << moduleNames[ros] << std::setfill('0') << std::setw(2) << drawer + 1 << std::setfill(' ') << gain[g] << "_pmtGain_odd";
2049  histName = sStr.str();
2050  pmtGain_odd[g] = book1F(subDir, histName, title, 48, 0.0, 48.0);
2051  // pmtGain_odd[g] = new TH1F(Form("pmtGain_odd_%i", g), title.c_str(), 48,0,48);
2052 
2053  sStr.str("");
2054  sStr << moduleNames[ros] << std::setfill('0') << std::setw(2) << drawer + 1 << std::setfill(' ') << gain[g] << "_pmtGain_even";
2055  histName = sStr.str();
2056  pmtGain_even[g] = book1F(subDir, histName, title, 48, 0.0, 48.0);
2057  //pmtGain_even[g] = new TH1F(Form("pmtGain_even_%i", g), title.c_str(), 48,0,48);
2058  }
2059 
2060  // loop over the 2 gains values
2061  for (int adc = 0; adc < maxgain; ++adc) {
2062 
2063  double max0 = m_data->m_finalHist1[ros][drawer][adc][0][0]->GetMaximum();
2064  //double max1 = final_hist1[ros][drawer][adc][0][1]->GetMaximum();
2065  //double max2 = final_hist1[ros][drawer][adc][0][2]->GetMaximum();
2066  double max3 = m_data->m_finalHist1[ros][drawer][adc][0][3]->GetMaximum();
2067  double max4 = m_data->m_finalHist1[ros][drawer][adc][0][4]->GetMaximum(); //Lukas
2068  double min0 = m_data->m_finalHist1[ros][drawer][adc][0][0]->GetMinimum();
2069  //double min1 = final_hist1[ros][drawer][adc][0][1]->GetMinimum();
2070  //double min2 = final_hist1[ros][drawer][adc][0][2]->GetMinimum();
2071  double min3 = m_data->m_finalHist1[ros][drawer][adc][0][3]->GetMinimum();
2072  double min4 = m_data->m_finalHist1[ros][drawer][adc][0][4]->GetMinimum(); //Lukas
2073 
2074  if (max0 > 0.) {
2075  final_empty[adc]->SetMaximum(1.05 * max0);
2076  } else {
2077  final_empty[adc]->SetMaximum(0.);
2078  }
2079 
2080  if ((max0 - min0) > 0) {
2081  final_empty[adc]->SetMinimum(max0 - 1.05 * (max0 - min0));
2082  }
2083 
2084  // Select pad 1 and 2
2085  TVirtualPad * pad;
2086  if (do_plots) {
2087  pad = Can->cd(adc + 1);
2088  pad->SetTopMargin(0.15);
2089  pad->SetGridx();
2090  }
2091 
2092  // bin=1 corresponds to the first pmt (#0)
2093  double Kapa = 1.30e-3;
2094  for (int ch = 0; ch < 48; ++ch) {
2095  if (isDisconnected(ros, drawer, ch)) {
2096  final_empty[adc]->SetBinContent(ch + 1, m_data->m_finalHist1[ros][drawer][adc][0][0]->GetBinContent(ch + 1) + 0.01);
2097  final_empty[adc]->SetBinError(ch + 1, m_data->m_finalHist1[ros][drawer][adc][0][0]->GetBinError(ch + 1) + 0.01);
2098  pmtGain_empty[adc]->SetBinContent(ch + 1, 0.01);
2099  pmtGain_empty[adc]->SetBinError(ch + 1, 0.01);
2100  }
2101  // connected channels
2102  else {
2103  double mean = m_data->m_finalHist1[ros][drawer][adc][0][0]->GetBinContent(ch + 1);
2104  double rms = m_data->m_finalHist1[ros][drawer][adc][0][1]->GetBinContent(ch + 1);
2105  double dmean = m_data->m_finalHist1[ros][drawer][adc][0][0]->GetBinError(ch + 1);
2106  double drms = m_data->m_finalHist1[ros][drawer][adc][0][1]->GetBinError(ch + 1);
2107  // even pmts
2108  int pmt = abs(m_cabling->channel2hole(ros, ch)); //extra safe: abs should not be necessary, because channels are connected.
2109  if (pmt % 2 == 0) {
2110  final_even[adc]->SetBinContent(ch + 1, m_data->m_finalHist1[ros][drawer][adc][0][0]->GetBinContent(ch + 1) + 0.001);
2111  final_even[adc]->SetBinError(ch + 1, m_data->m_finalHist1[ros][drawer][adc][0][0]->GetBinError(ch + 1) + 0.001);
2112 
2113  // if (bin!=0)
2114  // log<<MSG::DEBUG<<"["<<ros<<"]["<<drawer+1<<"]["<<adc<<"]["<< bin <<"] : mean="
2115  // << mean <<", var="<< rms*rms<<"\tVar/mean(corrected)="<< (rms*rms/mean) - Kapa*mean <<endreq;
2116  if (mean > 10e-3) {
2117  pmtGain_even[adc]->SetBinContent(ch + 1, (rms * rms / mean) - Kapa * mean);
2118  pmtGain_even[adc]->SetBinError(ch + 1, (rms * rms / mean) * sqrt((2 * drms / rms) * (2 * drms / rms) + (dmean / mean) * (dmean / mean)));
2119  } else {
2120  pmtGain_even[adc]->SetBinContent(ch + 1, -0.5);
2121  pmtGain_even[adc]->SetBinError(ch + 1, 0.001);
2122  }
2123  }
2124  // odd pmts
2125  else {
2126  final_odd[adc]->SetBinContent(ch + 1, m_data->m_finalHist1[ros][drawer][adc][0][0]->GetBinContent(ch + 1) + 0.001);
2127  final_odd[adc]->SetBinError(ch + 1, m_data->m_finalHist1[ros][drawer][adc][0][0]->GetBinError(ch + 1) + 0.001);
2128 
2129  // log<<MSG::DEBUG<<"["<<ros<<"]["<<drawer+1<<"]["<<adc<<"]["<< bin <<"] : mean="
2130  // << mean <<", var="<< rms*rms<<"\tVar/mean(corrected)="<< (rms*rms/mean) - Kapa*mean <<endreq;
2131  if (mean > 10e-3) {
2132  pmtGain_odd[adc]->SetBinContent(ch + 1, (rms * rms / mean) - Kapa * mean);
2133  pmtGain_odd[adc]->SetBinError(ch + 1, (rms * rms / mean) * sqrt((2 * drms / rms) * (2 * drms / rms) + (dmean / mean) * (dmean / mean)));
2134  } else {
2135  pmtGain_odd[adc]->SetBinContent(ch + 1, -0.5);
2136  pmtGain_odd[adc]->SetBinError(ch + 1, 0.001);
2137  }
2138  }
2139  }
2140  }
2141 
2142  // we are in pads 1 and 2
2143  // retrieve the max and min of the plots
2144  double max = pmtGain_odd[adc]->GetMaximum();
2145  if (pmtGain_even[adc]->GetMaximum() > max) max = 1.05 * pmtGain_even[adc]->GetMaximum();
2146  double min = pmtGain_odd[adc]->GetMinimum();
2147  if (pmtGain_even[adc]->GetMinimum() < min) min = pmtGain_even[adc]->GetMinimum() - 0.05 * fabs(pmtGain_even[adc]->GetMinimum());
2148  if (max < 0.20) max = 0.20;
2149  if (min > -0.10) min = -0.10;
2150  //log<<MSG::INFO<<"Min and Max : "<< min <<"; "<< max <<enreq;
2151  pmtGain_empty[adc]->SetMarkerStyle(21);
2152  pmtGain_even[adc]->SetMarkerStyle(22);
2153  pmtGain_odd[adc]->SetMarkerStyle(23);
2154  pmtGain_empty[adc]->SetMarkerSize(ms);
2155  pmtGain_even[adc]->SetMarkerSize(ms);
2156  pmtGain_odd[adc]->SetMarkerSize(ms);
2157  pmtGain_empty[adc]->SetLabelSize(0.08, "X");
2158  pmtGain_empty[adc]->SetLabelSize(0.08, "Y");
2159  pmtGain_even[adc]->SetMarkerColor(2);
2160  pmtGain_odd[adc]->SetMarkerColor(4);
2161  pmtGain_empty[adc]->GetYaxis()->SetRangeUser(min, max);
2162  if (do_plots) {
2163  pmtGain_empty[adc]->Draw("e");
2164  pmtGain_even[adc]->Draw("same,e");
2165  pmtGain_odd[adc]->Draw("same,e");
2166  line->DrawLine(0, -0.01, 48, -0.01);
2167  line->DrawLine(0, 0.15, 48, 0.15);
2168 
2169  // Select pads 3 and 4
2170  pad = Can->cd(maxgain + adc + 1);
2171  pad->SetTopMargin(0.15);
2172  pad->SetGridx();
2173  }
2174 
2175  // Plot the evolution of the mean vs #pmt number (with different colours for odd and even pmts)
2176  if (max0 < 0.9 * maxy[adc]) final_empty[adc]->SetMaximum(maxy[adc]);
2177  if (min0 > miny[adc] + 0.1 * TMath::Abs(miny[adc])) final_empty[adc]->SetMinimum(miny[adc]);
2178 
2179  final_empty[adc]->SetMarkerStyle(21);
2180  final_even[adc]->SetMarkerStyle(22);
2181  final_odd[adc]->SetMarkerStyle(23);
2182  final_empty[adc]->SetMarkerSize(ms);
2183  final_even[adc]->SetMarkerSize(ms);
2184  final_odd[adc]->SetMarkerSize(ms);
2185  final_empty[adc]->SetLabelSize(0.08, "X");
2186  final_empty[adc]->SetLabelSize(0.08, "Y");
2187  final_even[adc]->SetMarkerColor(2);
2188  final_odd[adc]->SetMarkerColor(4);
2189  if (do_plots) {
2190  final_empty[adc]->Draw("e");
2191  final_even[adc]->Draw("same,e");
2192  final_odd[adc]->Draw("same,e");
2193 
2194  // Select pads 5 and 6 and plot the RMS for each pmt
2195  pad = Can->cd(2 * maxgain + adc + 1);
2196  pad->SetTopMargin(0.15);
2197  pad->SetGridx();
2198  }
2199 
2200  m_data->m_finalHist1[ros][drawer][adc][0][1]->SetMarkerStyle(21);
2201  m_data->m_finalHist1[ros][drawer][adc][0][1]->SetMarkerSize(ms);
2202  m_data->m_finalHist1[ros][drawer][adc][0][1]->SetLabelSize(0.08, "X");
2203  m_data->m_finalHist1[ros][drawer][adc][0][1]->SetLabelSize(0.08, "Y");
2204  if (do_plots) m_data->m_finalHist1[ros][drawer][adc][0][1]->Draw("P0");
2205 
2206  m_data->m_finalHist1[ros][drawer][adc][0][2]->SetMaximum(m_data->m_finalHist1[ros][drawer][adc][0][1]->GetMaximum());
2207  m_data->m_finalHist1[ros][drawer][adc][0][2]->SetMinimum(m_data->m_finalHist1[ros][drawer][adc][0][1]->GetMinimum());
2208  m_data->m_finalHist1[ros][drawer][adc][0][2]->SetMarkerStyle(25);
2209  m_data->m_finalHist1[ros][drawer][adc][0][2]->SetMarkerSize(ms);
2210  m_data->m_finalHist1[ros][drawer][adc][0][2]->SetMarkerColor(4);
2211  m_data->m_finalHist1[ros][drawer][adc][0][2]->SetLabelSize(0.08, "X");
2212  m_data->m_finalHist1[ros][drawer][adc][0][2]->SetLabelSize(0.08, "Y");
2213  if (do_plots) m_data->m_finalHist1[ros][drawer][adc][0][2]->Draw("sameP0");
2214 
2215  // Select pads 7 and 8
2216  if (do_plots) {
2217  pad = Can->cd(3 * maxgain + adc + 1);
2218  pad->SetTopMargin(0.15);
2219  pad->SetGridx();
2220  }
2221 
2222  if (max3 < 0.9 * maxy[4 + adc]) m_data->m_finalHist1[ros][drawer][adc][0][3]->SetMaximum(maxy[4 + adc]);
2223  if (min3 > miny[4 + adc] + 0.1 * TMath::Abs(miny[4 + adc])) m_data->m_finalHist1[ros][drawer][adc][0][3]->SetMinimum(miny[4 + adc]);
2224 
2225  m_data->m_finalHist1[ros][drawer][adc][0][3]->SetMarkerStyle(21);
2226  m_data->m_finalHist1[ros][drawer][adc][0][3]->SetMarkerSize(ms);
2227  m_data->m_finalHist1[ros][drawer][adc][0][3]->SetLabelSize(0.08, "X");
2228  m_data->m_finalHist1[ros][drawer][adc][0][3]->SetLabelSize(0.08, "Y");
2229  m_data->m_finalHist1[ros][drawer][adc][0][3]->Draw("E0");
2230 
2231  //Lukas
2232  // Select pads 9 and 10
2233  if (do_plots) {
2234  pad = Can->cd(4 * maxgain + adc + 1);
2235  pad->SetTopMargin(0.15);
2236  pad->SetGridx();
2237  }
2238 
2239  if (max4 < 0.9 * maxy[4 + adc]) m_data->m_finalHist1[ros][drawer][adc][0][4]->SetMaximum(maxy[4 + adc]);
2240  if (min4 > miny[4 + adc] + 0.1 * TMath::Abs(miny[4 + adc])) m_data->m_finalHist1[ros][drawer][adc][0][4]->SetMinimum(miny[4 + adc]);
2241 
2242  m_data->m_finalHist1[ros][drawer][adc][0][4]->SetMarkerStyle(21);
2243  m_data->m_finalHist1[ros][drawer][adc][0][4]->SetMarkerSize(ms);
2244  m_data->m_finalHist1[ros][drawer][adc][0][4]->SetLabelSize(0.08, "X");
2245  m_data->m_finalHist1[ros][drawer][adc][0][4]->SetLabelSize(0.08, "Y");
2246  if (do_plots) m_data->m_finalHist1[ros][drawer][adc][0][4]->Draw("E0");
2247  //Lukas
2248 
2249  } //end of loop over gain
2250 
2251  if (m_savePng) {
2252  Can->Print(TString(moduleName + "_fit_amp.png"), "png");
2253  }
2254  if (m_savePs) {
2255  Can->Print(TString(moduleName + "_fit_amp.ps"), "ps");
2256  }
2257  if (m_saveSvg) {
2258  Can->Print(TString(moduleName + "_fit_amp.svg"), "svg");
2259  }
2260  //Can->Print(TString(moduleName+"_fit_amp.cxx"),"cxx");
2261  if (do_plots) delete Can;
2262  delete line;
2263  for (int g = 0; g < 2; g++) {
2264  delete final_empty[g];
2265  delete final_odd[g];
2266  delete final_even[g];
2267  //delete pmtGain_empty[g];
2268  //delete pmtGain_odd[g];
2269  //delete pmtGain_even[g];
2270  }
2271 }

◆ lbAverageInteractionsPerCrossing()

float ManagedMonitorToolBase::lbAverageInteractionsPerCrossing ( const EventContext &  ctx = Gaudi::Hive::currentContext()) const
virtualinherited

Average mu, i.e.

<mu>

Definition at line 1693 of file ManagedMonitorToolBase.cxx.

1695 {
1696  if (!m_lumiDataKey.empty()) {
1698  return lumi->lbAverageInteractionsPerCrossing();
1699  } else {
1700  //ATH_MSG_FATAL("! Luminosity tool has been disabled ! lbAverageInteractionsPerCrossing() can't work properly! ");
1701  ATH_MSG_DEBUG("Warning: lbAverageInteractionsPerCrossing() - luminosity tools are not retrieved or turned on (i.e. EnableLumi = False)");
1702  return -1.0;
1703  }
1704  // not reached
1705 }

◆ lbAverageLivefraction()

float ManagedMonitorToolBase::lbAverageLivefraction ( const EventContext &  ctx = Gaudi::Hive::currentContext()) const
virtualinherited

Average luminosity livefraction.

Definition at line 1762 of file ManagedMonitorToolBase.cxx.

1764 {
1766  return 1.0;
1767 
1770  return live->lbAverageLiveFraction();
1771  } else {
1772  //ATH_MSG_FATAL("! Luminosity tool has been disabled ! lbAverageLivefraction() can't work properly! ");
1773  ATH_MSG_DEBUG("Warning: lbAverageLivefraction() - luminosity not availble (i.e. EnableLumi = False)");
1774  return -1.0;
1775  }
1776  // not reached
1777 }

◆ lbAverageLuminosity()

float ManagedMonitorToolBase::lbAverageLuminosity ( const EventContext &  ctx = Gaudi::Hive::currentContext()) const
virtualinherited

Average luminosity (in ub-1 s-1 => 10^30 cm-2 s-1)

Definition at line 1729 of file ManagedMonitorToolBase.cxx.

1731 {
1732  if (!m_lumiDataKey.empty()) {
1734  return lumi->lbAverageLuminosity();
1735  } else {
1736  //ATH_MSG_FATAL("! Luminosity tool has been disabled ! lbAverageLuminosity() can't work properly! ");
1737  ATH_MSG_DEBUG("Warning: lbAverageLuminosity() - luminosity tools are not retrieved or turned on (i.e. EnableLumi = False)");
1738  return -1.0;
1739  }
1740  // not reached
1741 }

◆ lbDuration()

double ManagedMonitorToolBase::lbDuration ( const EventContext &  ctx = Gaudi::Hive::currentContext()) const
virtualinherited

Luminosity block time (in seconds)

Definition at line 1816 of file ManagedMonitorToolBase.cxx.

1818 {
1820  return m_defaultLBDuration;
1821  }
1822  if (!m_lbDurationDataKey.empty()) {
1824  return dur->lbDuration();
1825  } else {
1826  //ATH_MSG_FATAL("! Luminosity tool has been disabled ! lbDuration() can't work properly! ");
1827  ATH_MSG_DEBUG("Warning: lbDuration() - luminosity tools are not retrieved or turned on (i.e. EnableLumi = False)");
1828  return m_defaultLBDuration;
1829  }
1830  // not reached
1831 }

◆ lbInteractionsPerCrossing()

float ManagedMonitorToolBase::lbInteractionsPerCrossing ( const EventContext &  ctx = Gaudi::Hive::currentContext()) const
virtualinherited

Instantaneous number of interactions, i.e.

mu

Definition at line 1709 of file ManagedMonitorToolBase.cxx.

1711 {
1712  if (!m_lumiDataKey.empty()) {
1714  float muToLumi = lumi->muToLumi();
1715  if (muToLumi > 0) {
1716  return lumi->lbLuminosityPerBCIDVector().at (ctx.eventID().bunch_crossing_id()) / muToLumi;
1717  }
1718  return 0;
1719  } else {
1720  //ATH_MSG_FATAL("! Luminosity tool has been disabled ! lbInteractionsPerCrossing() can't work properly! ");
1721  ATH_MSG_DEBUG("Warning: lbInteractionsPerCrossing() - luminosity tools are not retrieved or turned on (i.e. EnableLumi = False)");
1722  return -1.0;
1723  }
1724  // not reached
1725 }

◆ lbLuminosityPerBCID()

float ManagedMonitorToolBase::lbLuminosityPerBCID ( const EventContext &  ctx = Gaudi::Hive::currentContext()) const
virtualinherited

Instantaneous luminosity.

Definition at line 1745 of file ManagedMonitorToolBase.cxx.

1747 {
1748  if (!m_lumiDataKey.empty()) {
1750  return lumi->lbLuminosityPerBCIDVector().at (ctx.eventID().bunch_crossing_id());
1751  } else {
1752  //ATH_MSG_FATAL("! Luminosity tool has been disabled ! lbLuminosityPerBCID() can't work properly! ");
1753  ATH_MSG_DEBUG("Warning: lbLuminosityPerBCID() - luminosity tools are not retrieved or turned on (i.e. EnableLumi = False)");
1754  return -1.0;
1755  }
1756  // not reached
1757 }

◆ lbLumiWeight()

double ManagedMonitorToolBase::lbLumiWeight ( const EventContext &  ctx = Gaudi::Hive::currentContext()) const
virtualinherited

Average Integrated Luminosity Live Fraction.

Definition at line 1800 of file ManagedMonitorToolBase.cxx.

1802 {
1803  if (!m_lumiDataKey.empty()) {
1804  return (lbAverageLuminosity(ctx)*lbDuration(ctx))*lbAverageLivefraction(ctx);
1805  } else{
1806  //ATH_MSG_FATAL("! Luminosity tool has been disabled ! lbLumiWeight() can't work properly! ");
1807  ATH_MSG_DEBUG("Warning: lbLumiWeight() - luminosity tools are not retrieved or turned on (i.e. EnableLumi = False)");
1808  return -1.0;
1809  }
1810  // not reached
1811 }

◆ livefractionPerBCID()

float ManagedMonitorToolBase::livefractionPerBCID ( const EventContext &  ctx = Gaudi::Hive::currentContext()) const
virtualinherited

Livefraction per bunch crossing ID.

Definition at line 1781 of file ManagedMonitorToolBase.cxx.

1783 {
1785  return 1.0;
1786 
1789  return live->l1LiveFractionVector().at (ctx.eventID().bunch_crossing_id());
1790  } else {
1791  //ATH_MSG_FATAL("! Luminosity tool has been disabled ! livefractionPerBCID() can't work properly! ");
1792  ATH_MSG_DEBUG("Warning: livefractionPerBCID() - luminosity retrieved available (i.e. EnableLumi = False)");
1793  return -1.0;
1794  }
1795  // not reached
1796 }

◆ MMTB_DEPRECATED() [1/11]

ManagedMonitorToolBase::MMTB_DEPRECATED ( endOfEventsBlock  )
inherited

◆ MMTB_DEPRECATED() [2/11]

ManagedMonitorToolBase::MMTB_DEPRECATED ( endOfLowStat  )
inherited

◆ MMTB_DEPRECATED() [3/11]

ManagedMonitorToolBase::MMTB_DEPRECATED ( endOfLumiBlock  )
inherited

◆ MMTB_DEPRECATED() [4/11]

ManagedMonitorToolBase::MMTB_DEPRECATED ( endOfRun  )
inherited

◆ MMTB_DEPRECATED() [5/11]

ManagedMonitorToolBase::MMTB_DEPRECATED ( newEventsBlock  )
inherited

◆ MMTB_DEPRECATED() [6/11]

ManagedMonitorToolBase::MMTB_DEPRECATED ( newHigStatInterval  )
inherited

◆ MMTB_DEPRECATED() [7/11]

ManagedMonitorToolBase::MMTB_DEPRECATED ( newLowStat  )
inherited

◆ MMTB_DEPRECATED() [8/11]

ManagedMonitorToolBase::MMTB_DEPRECATED ( newLowStatInterval  )
inherited

◆ MMTB_DEPRECATED() [9/11]

ManagedMonitorToolBase::MMTB_DEPRECATED ( newLumiBlock  )
inherited

◆ MMTB_DEPRECATED() [10/11]

ManagedMonitorToolBase::MMTB_DEPRECATED ( newMedStatInterval  )
inherited

◆ MMTB_DEPRECATED() [11/11]

ManagedMonitorToolBase::MMTB_DEPRECATED ( newRun  )
inherited

◆ msg() [1/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24  {
25  return this->msgStream();
26  }

◆ msg() [2/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( const MSG::Level  lvl) const
inlineinherited

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30  {
31  return this->msgLevel(lvl);
32  }

◆ newEventsBlockFlag()

bool ManagedMonitorToolBase::newEventsBlockFlag ( ) const
inlineprotectedinherited

Definition at line 793 of file ManagedMonitorToolBase.h.

793 { return m_newEventsBlock; }

◆ newHigStatIntervalFlag()

bool ManagedMonitorToolBase::newHigStatIntervalFlag ( ) const
inlineprotectedinherited

Definition at line 789 of file ManagedMonitorToolBase.h.

789 { return m_newHigStatInterval; }

◆ newLowStatFlag()

bool ManagedMonitorToolBase::newLowStatFlag ( ) const
inlineprotectedinherited

Definition at line 790 of file ManagedMonitorToolBase.h.

790 { return m_newLowStat; }

◆ newLowStatIntervalFlag()

bool ManagedMonitorToolBase::newLowStatIntervalFlag ( ) const
inlineprotectedinherited

Flag functions allowing clients to determine when to book new and process old histograms; values are updated by fillHists() based on counting lumiBlocks, and are correctly set when fillHistograms(), bookHistograms() and procHistograms() are called.

Definition at line 787 of file ManagedMonitorToolBase.h.

787 { return m_newLowStatInterval; }

◆ newLumiBlockFlag()

bool ManagedMonitorToolBase::newLumiBlockFlag ( ) const
inlineprotectedinherited

Definition at line 791 of file ManagedMonitorToolBase.h.

791 { return m_newLumiBlock; }

◆ newMedStatIntervalFlag()

bool ManagedMonitorToolBase::newMedStatIntervalFlag ( ) const
inlineprotectedinherited

Definition at line 788 of file ManagedMonitorToolBase.h.

788 { return m_newMedStatInterval; }

◆ newRunFlag()

bool ManagedMonitorToolBase::newRunFlag ( ) const
inlineprotectedinherited

Definition at line 792 of file ManagedMonitorToolBase.h.

792 { return m_newRun; }

◆ outputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ parseList()

StatusCode ManagedMonitorToolBase::parseList ( const std::string &  line,
std::vector< std::string > &  result 
)
protectedinherited

Definition at line 2113 of file ManagedMonitorToolBase.cxx.

2114  {
2115  std::string item;
2116  std::stringstream ss(line);
2117 
2118  if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "ManagedMonitorToolBase::parseList:";
2119 
2120  while ( std::getline(ss, item, ',') ) {
2121  std::stringstream iss(item); // remove
2122  iss >> item; // whitespace
2123  if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << " " << item;
2124  result.push_back(item);
2125  }
2126 
2127  msg(MSG::DEBUG) << endmsg;
2128  return StatusCode::SUCCESS;
2129 }

◆ preSelector()

bool ManagedMonitorToolBase::preSelector ( )
virtualinherited

Implements IMonitorToolBase.

Definition at line 1681 of file ManagedMonitorToolBase.cxx.

1683 {
1684  if( m_preScaleProp > 1 ) {
1685  return ( (m_nEvents % m_preScaleProp) == 1 );
1686  }
1687  return true;
1688 }

◆ procHistograms()

StatusCode ManagedMonitorToolBase::procHistograms ( )
virtualinherited

◆ rangeErrorBar()

void TileRawChannelMonTool::rangeErrorBar ( double &  xmin,
double &  max,
double  mean 
)

This method was bing used in 2006 for calculating the error bar length It is off by default, but it can be switched on by the usage of the property m_useratioerror=false This method set the error bar long as the interval from ean to the extreeme value of the sample distribution. If the extreeme value is below the threhold, then the error bar length is set to 0.

Definition at line 1841 of file TileRawChannelMonTool.cxx.

1841  {
1842  /*---------------------------------------------------------*/
1849  if (m_DownLimit < mean && mean < m_UpLimit) {
1850  if (xmin > m_DownLimit) xmin = mean;
1851  if (xmax < m_UpLimit) xmax = mean;
1852  }
1853 
1854 }

◆ ratioErrorBar()

void TileRawChannelMonTool::ratioErrorBar ( TH1S *  hist,
double &  xmin,
double &  xmax,
double  mean 
)

This method calculates the error bars of amp vs Q summary plots. The error bar depends on the percentage of events outside a certain limit. If the percentage of events outside a certain limit is below the threshold, then the error bar length is set to 0. There are 3 different thresholds and a lower and an upper limit. Threshold, limits and the error bar method usage are all settable by jo The are 3 different error bars lenghts for low, medium and high severity. IMPORTANT: In case the mean of the distribution is outside the limits, then the error bars are calculated as with rangeErrorBar method, as it won't have much sense calculating it in this way.

LF: If mean <0.7 or mean>1.3, we leave the range as error bar, as the ratio Error bar won't have any sense

Definition at line 1857 of file TileRawChannelMonTool.cxx.

1857  {
1858  /*---------------------------------------------------------*/
1869  if (m_DownLimit < mean && mean < m_UpLimit) {
1870 
1871  if (xmin > m_DownLimit) {
1872  xmin = mean;
1873  } else {
1874  int lo_thrbin = hist->FindBin(m_DownLimit); //
1875  double integral = hist->Integral(0, lo_thrbin); // we also want underflow, in case... Integral() is calculated including the contents of both limiting bins. As 0.7 falls in the middle of a bin, we are calculating the integral by excess
1876  double ratio = integral / (hist->GetEntries());
1877  if (ratio > m_hi_IntegralLimit) {
1878  xmin = mean - 1.05;
1879  } //larger error bar
1880  else if (ratio > m_med_IntegralLimit) {
1881  xmin = mean - 0.7;
1882  } //intermediate error bar
1883  else if (ratio > m_lo_IntegralLimit) {
1884  xmin = mean - 0.35;
1885  } //small error bar
1886  else {
1887  xmin = mean;
1888  }
1889  }
1890 
1891  if (xmax < m_UpLimit) {
1892  xmax = mean;
1893  } else {
1894  int hi_thrbin = hist->FindBin(m_UpLimit);
1895  double integral = hist->Integral(hi_thrbin, (hist->GetNbinsX() + 1)); //we also want overflow, in case... Integral() is calculated including the contents of both limiting bins. As 1.3 falls in the middle of a bin, we are calculating the integral by excess.
1896  double ratio = integral / (hist->GetEntries());
1897  if (ratio > m_hi_IntegralLimit) {
1898  xmax = mean + 1.05;
1899  } //larger error bar
1900  else if (ratio > m_med_IntegralLimit) {
1901  xmax = mean + 0.7;
1902  } //intermediate error bar
1903  else if (ratio > m_lo_IntegralLimit) {
1904  xmax = mean + 0.35;
1905  } //small error bar
1906  else {
1907  xmax = mean;
1908  }
1909  }
1910  }
1912 }

◆ regEfficiency()

StatusCode ManagedMonitorToolBase::regEfficiency ( TEfficiency *  e,
const MonGroup group 
)
virtualinherited

Registers a TEfficiency to be included in the output stream using logical parameters that describe the plot.

Definition at line 1446 of file ManagedMonitorToolBase.cxx.

1446  {
1447  if (!e)
1448  return StatusCode::FAILURE;
1449 
1450  TGraph* g = reinterpret_cast<TGraph*>(e);
1451  std::string name = e->GetName();
1452 
1453  // MANAGED
1454  if ( group.histo_mgmt() != ATTRIB_UNMANAGED ) {
1455  // warn about not using merge algorithms
1456  if (group.histo_mgmt() == ATTRIB_X_VS_LB && group.merge().empty()) {
1457  ATH_MSG_WARNING("HEY! Attempting to register "<<name<<" as a per-LB histogram, but not setting the merge algorithm! Use \"merge\", at least.");
1458  }
1459  // add the efficiency to rebooking vector
1460  if (m_supportedIntervalsForRebooking.count(group.interval())) {
1461  m_templateEfficiencies[group.interval()].push_back( MgmtParams<TEfficiency>(e, group) );
1462  } else {
1463  ATH_MSG_ERROR("Attempt to book managed graph " << name << " with invalid interval type " << intervalEnumToString(group.interval()));
1464  return StatusCode::FAILURE;
1465  }
1466 
1467  MonGroup group_unmanaged( this, group.system(), group.interval(), ATTRIB_UNMANAGED, group.chain(), group.merge());
1468  std::string streamName = streamNameFunction()->getStreamName( this, group_unmanaged, name, false );
1469  registerMetadata(streamName, name, group).ignore();
1470  return m_THistSvc->regGraph( streamName, g );
1471  } else {
1472  // UNMANAGED
1473  if( m_manager != 0 ) {
1474  std::string genericName = NoOutputStream().getStreamName( this, group, name );
1475  m_manager->writeAndDelete( genericName );
1476  m_manager->passOwnership( e, genericName );
1477  }
1478 
1479  std::string streamName = streamNameFunction()->getStreamName( this, group, name, false );
1481  if (smd != StatusCode::SUCCESS)
1482  return StatusCode::FAILURE;
1483 
1484  return m_THistSvc->regGraph( streamName, g );
1485  }
1486 }

◆ regGraph() [1/5]

template<typename T >
void TilePaterMonTool::regGraph ( const std::string &  subDir,
T *  graph,
Interval_t  interval = run,
MgmtAttr_t  attribute = ATTRIB_MANAGED,
const std::string &  trigChain = "",
const std::string &  mergeAlgo = "" 
)
protectedinherited

Definition at line 60 of file TilePaterMonTool.cxx.

61 {
62 
63  std::string path(m_path);
64  if (!subDir.empty()) path += ("/" + subDir);
65 
66  if(ManagedMonitorToolBase::regGraph(graph, path, interval, attribute, trigChain, mergeAlgo).isFailure()) {
67  ATH_MSG_WARNING( "Could not register Graph : " << path + "/" + graph->GetName() );
68  }
69 }

◆ regGraph() [2/5]

StatusCode ManagedMonitorToolBase::regGraph
protectedinherited

Registers a TGraph to be included in the output stream using logical parameters that describe the graph.

Definition at line 530 of file ManagedMonitorToolBase.cxx.

1502 {
1503  if (!g)
1504  return StatusCode::FAILURE;
1505 
1506  // This part of the code deals with MANAGED type
1507  if ( group.histo_mgmt() != ATTRIB_UNMANAGED ) {
1508  // Create an unmanaged group based on the original MonGroup instance passed
1509  // This is needed because managed graph is presented as a number of unmanaged
1510  // graphs (one per each interval)
1511  MonGroup group_unmanaged( this, group.system(), group.interval(), ATTRIB_UNMANAGED, group.chain(), group.merge());
1512 
1513  if (m_supportedIntervalsForRebooking.count(group.interval())) {
1514  m_templateGraphs[group.interval()].push_back( MgmtParams<TGraph>(g, group_unmanaged) );
1515  } else {
1516  ATH_MSG_ERROR("Attempt to book managed graph " << g->GetName() << " with invalid interval type " << intervalEnumToString(group.interval()));
1517  return StatusCode::FAILURE;
1518  }
1519 
1520  std::string name = g->GetName();
1521  std::string streamName = streamNameFunction()->getStreamName( this, group_unmanaged, name, false );
1522  registerMetadata(streamName, name, group).ignore();
1523  return m_THistSvc->regGraph( streamName, g );
1524  //return m_THistSvc->regGraph( streamName );
1525  }
1526 
1527  // This part of the code deals with UNMANAGED type
1528  std::string gName = g->GetName();
1529 
1530  if( m_manager != 0 ) {
1531  std::string genericName = NoOutputStream().getStreamName( this, group, gName );
1532  m_manager->writeAndDelete( genericName );
1533  m_manager->passOwnership( g, genericName );
1534  }
1535 
1536  std::string streamName = streamNameFunction()->getStreamName( this, group, gName, false );
1537 
1539  if (smd != StatusCode::SUCCESS) return StatusCode::FAILURE;
1540 
1541  return m_THistSvc->regGraph( streamName, g );
1542 }

◆ regGraph() [3/5]

StatusCode ManagedMonitorToolBase::regGraph ( TGraph *  g,
const MonGroup group 
)
virtualinherited

Registers a TGraph to be included in the output stream using logical parameters that describe the graph.

Definition at line 1500 of file ManagedMonitorToolBase.cxx.

1502 {
1503  if (!g)
1504  return StatusCode::FAILURE;
1505 
1506  // This part of the code deals with MANAGED type
1507  if ( group.histo_mgmt() != ATTRIB_UNMANAGED ) {
1508  // Create an unmanaged group based on the original MonGroup instance passed
1509  // This is needed because managed graph is presented as a number of unmanaged
1510  // graphs (one per each interval)
1511  MonGroup group_unmanaged( this, group.system(), group.interval(), ATTRIB_UNMANAGED, group.chain(), group.merge());
1512 
1513  if (m_supportedIntervalsForRebooking.count(group.interval())) {
1514  m_templateGraphs[group.interval()].push_back( MgmtParams<TGraph>(g, group_unmanaged) );
1515  } else {
1516  ATH_MSG_ERROR("Attempt to book managed graph " << g->GetName() << " with invalid interval type " << intervalEnumToString(group.interval()));
1517  return StatusCode::FAILURE;
1518  }
1519 
1520  std::string name = g->GetName();
1521  std::string streamName = streamNameFunction()->getStreamName( this, group_unmanaged, name, false );
1522  registerMetadata(streamName, name, group).ignore();
1523  return m_THistSvc->regGraph( streamName, g );
1524  //return m_THistSvc->regGraph( streamName );
1525  }
1526 
1527  // This part of the code deals with UNMANAGED type
1528  std::string gName = g->GetName();
1529 
1530  if( m_manager != 0 ) {
1531  std::string genericName = NoOutputStream().getStreamName( this, group, gName );
1532  m_manager->writeAndDelete( genericName );
1533  m_manager->passOwnership( g, genericName );
1534  }
1535 
1536  std::string streamName = streamNameFunction()->getStreamName( this, group, gName, false );
1537 
1539  if (smd != StatusCode::SUCCESS) return StatusCode::FAILURE;
1540 
1541  return m_THistSvc->regGraph( streamName, g );
1542 }

◆ regGraph() [4/5]

StatusCode ManagedMonitorToolBase::regGraph
protectedinherited

Registers a TGraph to be included in the output stream using logical parameters that describe the graph.

Definition at line 522 of file ManagedMonitorToolBase.cxx.

1493 {
1494  MonGroup group( this, system, interval, histo_mgmt, chain, merge );
1495  return regGraph( g, group );
1496 }

◆ regGraph() [5/5]

StatusCode ManagedMonitorToolBase::regGraph ( TGraph *  g,
const std::string &  system,
Interval_t  interval,
MgmtAttr_t  histo_mgmt = ATTRIB_MANAGED,
const std::string &  chain = "",
const std::string &  merge = "" 
)
virtualinherited

Registers a TGraph to be included in the output stream using logical parameters that describe the graph.

Definition at line 1490 of file ManagedMonitorToolBase.cxx.

1493 {
1494  MonGroup group( this, system, interval, histo_mgmt, chain, merge );
1495  return regGraph( g, group );
1496 }

◆ regHist() [1/5]

template<typename T >
void TilePaterMonTool::regHist ( const std::string &  subDir,
T *  hist,
Interval_t  interval = run,
MgmtAttr_t  attribute = ATTRIB_MANAGED,
const std::string &  trigChain = "",
const std::string &  mergeAlgo = "" 
)
protectedinherited

Definition at line 47 of file TilePaterMonTool.cxx.

48 {
49 
50  std::string path(m_path);
51  if (!subDir.empty()) path += ("/" + subDir);
52 
53  if(ManagedMonitorToolBase::regHist(hist, path, interval, attribute, trigChain, mergeAlgo).isFailure()) {
54  ATH_MSG_WARNING( "Could not register histogram : " << path + "/" + hist->GetName() );
55  }
56 
57 }

◆ regHist() [2/5]

StatusCode ManagedMonitorToolBase::regHist
protectedinherited

Registers a TH1 (including TH2, TH3, and TProfile) to be included in the output stream using logical parameters that describe the histogram.

A histogram is passed via reference to a pointer.

Definition at line 470 of file ManagedMonitorToolBase.cxx.

1356 {
1357 // ManagedMonitorToolBase_addHistStatistics(this,h);
1358 
1359  if (!h)
1360  return StatusCode::FAILURE;
1361 
1362  // This part of the code deals with MANAGED type
1363  if ( group.histo_mgmt() != ATTRIB_UNMANAGED ) {
1364  /*
1365  Create an unmanaged group based on the original MonGroup instance passed
1366  It is needed because managed histogram is presented as a number of unmanaged
1367  histograms (one per each interval)
1368  Update (PUEO) - I don't think it actually matters, and need to keep
1369  track of "proper" attribute for X_VS_LB
1370  */
1371 
1372  if (group.histo_mgmt() == ATTRIB_X_VS_LB && group.merge().empty()) {
1373  ATH_MSG_WARNING("HEY! You're attempting to register " << h->GetName() << " as a per-LB histogram, but you're not setting the merge algorithm! This is a SUPER-BAD idea! Use \"merge\", at least.");
1374  }
1375 
1376  if (m_supportedIntervalsForRebooking.count(group.interval())) {
1377  m_templateHistograms[group.interval()].push_back( MgmtParams<TH1>(h, group) );
1378  } else {
1379  ATH_MSG_ERROR("Attempt to book managed histogram " << h->GetName() << " with invalid interval type " << intervalEnumToString(group.interval()));
1380  return StatusCode::FAILURE;
1381  }
1382 
1383  std::string hName = h->GetName();
1384  MonGroup group_unmanaged( this, group.system(), group.interval(), ATTRIB_UNMANAGED, group.chain(), group.merge());
1385  std::string streamName = streamNameFunction()->getStreamName( this, group_unmanaged, hName, false );
1386  registerMetadata(streamName, hName, group).ignore();
1387  return m_THistSvc->regHist( streamName, h );
1388  }
1389 
1390  // This part of the code deals with UNMANAGED type
1391  std::string hName = h->GetName();
1392 
1393  if( m_manager != 0 ) {
1394  std::string genericName = NoOutputStream().getStreamName( this, group, hName );
1395  m_manager->writeAndDelete( genericName );
1396  m_manager->passOwnership( h, genericName );
1397  }
1398 
1399  std::string streamName = streamNameFunction()->getStreamName( this, group, hName, false );
1400 
1402  if (smd != StatusCode::SUCCESS) return StatusCode::FAILURE;
1403 
1404  return m_THistSvc->regHist( streamName, h );
1405 }

◆ regHist() [3/5]

StatusCode ManagedMonitorToolBase::regHist ( TH1 *  h,
const MonGroup group 
)
virtualinherited

Registers a TH1 (including TH2, TH3, and TProfile) to be included in the output stream using logical parameters that describe the histogram.

A histogram is passed via reference to a pointer.

Definition at line 1354 of file ManagedMonitorToolBase.cxx.

1356 {
1357 // ManagedMonitorToolBase_addHistStatistics(this,h);
1358 
1359  if (!h)
1360  return StatusCode::FAILURE;
1361 
1362  // This part of the code deals with MANAGED type
1363  if ( group.histo_mgmt() != ATTRIB_UNMANAGED ) {
1364  /*
1365  Create an unmanaged group based on the original MonGroup instance passed
1366  It is needed because managed histogram is presented as a number of unmanaged
1367  histograms (one per each interval)
1368  Update (PUEO) - I don't think it actually matters, and need to keep
1369  track of "proper" attribute for X_VS_LB
1370  */
1371 
1372  if (group.histo_mgmt() == ATTRIB_X_VS_LB && group.merge().empty()) {
1373  ATH_MSG_WARNING("HEY! You're attempting to register " << h->GetName() << " as a per-LB histogram, but you're not setting the merge algorithm! This is a SUPER-BAD idea! Use \"merge\", at least.");
1374  }
1375 
1376  if (m_supportedIntervalsForRebooking.count(group.interval())) {
1377  m_templateHistograms[group.interval()].push_back( MgmtParams<TH1>(h, group) );
1378  } else {
1379  ATH_MSG_ERROR("Attempt to book managed histogram " << h->GetName() << " with invalid interval type " << intervalEnumToString(group.interval()));
1380  return StatusCode::FAILURE;
1381  }
1382 
1383  std::string hName = h->GetName();
1384  MonGroup group_unmanaged( this, group.system(), group.interval(), ATTRIB_UNMANAGED, group.chain(), group.merge());
1385  std::string streamName = streamNameFunction()->getStreamName( this, group_unmanaged, hName, false );
1386  registerMetadata(streamName, hName, group).ignore();
1387  return m_THistSvc->regHist( streamName, h );
1388  }
1389 
1390  // This part of the code deals with UNMANAGED type
1391  std::string hName = h->GetName();
1392 
1393  if( m_manager != 0 ) {
1394  std::string genericName = NoOutputStream().getStreamName( this, group, hName );
1395  m_manager->writeAndDelete( genericName );
1396  m_manager->passOwnership( h, genericName );
1397  }
1398 
1399  std::string streamName = streamNameFunction()->getStreamName( this, group, hName, false );
1400 
1402  if (smd != StatusCode::SUCCESS) return StatusCode::FAILURE;
1403 
1404  return m_THistSvc->regHist( streamName, h );
1405 }

◆ regHist() [4/5]

StatusCode ManagedMonitorToolBase::regHist
protectedinherited

Registers a TH1 (including TH2, TH3, and TProfile) to be included in the output stream using logical parameters that describe the histogram.

Definition at line 462 of file ManagedMonitorToolBase.cxx.

1348 {
1349  MonGroup group( this, system, interval, histo_mgmt, chain, merge );
1350  return regHist( h, group );
1351 }

◆ regHist() [5/5]

StatusCode ManagedMonitorToolBase::regHist ( TH1 *  h,
const std::string &  system,
Interval_t  interval,
MgmtAttr_t  histo_mgmt = ATTRIB_MANAGED,
const std::string &  chain = "",
const std::string &  merge = "" 
)
virtualinherited

Registers a TH1 (including TH2, TH3, and TProfile) to be included in the output stream using logical parameters that describe the histogram.

Definition at line 1345 of file ManagedMonitorToolBase.cxx.

1348 {
1349  MonGroup group( this, system, interval, histo_mgmt, chain, merge );
1350  return regHist( h, group );
1351 }

◆ registerMetadata()

StatusCode ManagedMonitorToolBase::registerMetadata ( const std::string &  streamName,
const std::string &  hName,
const MonGroup group 
)
protectedinherited

Definition at line 946 of file ManagedMonitorToolBase.cxx.

948  {
950  TTree* metadata(0);
951  std::string mdStreamName( streamName );
952  size_t found=mdStreamName.rfind('/');
953 
954  if ( found != std::string::npos )
955  mdStreamName.replace( found, mdStreamName.length(), "/metadata" );
956 
957  MDMap_t::iterator i = m_metadataMap.find( mdStreamName );
958  if( i == m_metadataMap.end() ) {
959  metadata = new TTree( "metadata", "Monitoring Metadata" );
960  if (! metadata) return StatusCode::FAILURE;
961  StatusCode scmd = m_THistSvc->regTree( mdStreamName, metadata );
962  if (scmd == StatusCode::FAILURE) return StatusCode::FAILURE;
963  MDMap_t::value_type valToInsert( mdStreamName, new OutputMetadata(metadata) );
964  i = m_metadataMap.insert( valToInsert ).first;
965  }
966 
967  i->second->fill( hName, group.interval(), group.chain(), group.merge() );
968  }
969  return StatusCode::SUCCESS;
970 }

◆ regManagedEfficiencies()

StatusCode ManagedMonitorToolBase::regManagedEfficiencies ( std::vector< MgmtParams< TEfficiency > > &  templateEfficiencies)
protectedinherited

Definition at line 1141 of file ManagedMonitorToolBase.cxx.

1141  {
1142  bool allIsOk = true;
1143  for( auto& it : templateEfficiencies ) {
1144  // get components of MgmtParams and copy efficiency
1145  MonGroup group = it.m_group;
1146  TEfficiency* theEfficiency = it.m_templateHist;
1147  TEfficiency* e = static_cast<TEfficiency*>(theEfficiency->Clone());
1148  int nbins = theEfficiency->GetTotalHistogram()->GetNbinsX();
1149  int xlow = theEfficiency->GetTotalHistogram()->GetXaxis()->GetXmin();
1150  int xhigh = theEfficiency->GetTotalHistogram()->GetXaxis()->GetXmax();
1151  e->SetBins(nbins,xlow,xhigh); // reset histogram
1152  std::string name = e->GetName();
1153 
1154  // make TGraph casts of TEfficiencies
1155  TGraph* theGraph = reinterpret_cast<TGraph*>(theEfficiency);
1156  TGraph* g = reinterpret_cast<TGraph*>(e);
1157 
1158  // Get the streamName for the previous interval
1159  std::string streamName = streamNameFunction()->getStreamName( this, group, name, true );
1160 
1161  // RE-REGISTER
1162  // 1) De-register the original graph with the THistSvc
1163  StatusCode sc1 = m_THistSvc->deReg( theGraph );
1164  if (sc1 == StatusCode::FAILURE) allIsOk = false;
1165  // 2) Fix THistSvc->deReg for TGraphs
1166  bool doneCleaning = false;
1167  std::string directoryName = streamNameFunction()->getDirectoryName( this, group, name, true );
1168  TSeqCollection *filelist=gROOT->GetListOfFiles();
1169  for (int i=0; i<filelist->GetEntries(); i++) {
1170  ATH_MSG_DEBUG( "List of files: " << filelist->At(i)->GetName());
1171  TFile* file = static_cast<TFile*>(filelist->At(i));
1172  StatusCode sc2 = THistSvc_deReg_fixTGraph(file, theGraph, directoryName);
1173  if (sc2 == StatusCode::SUCCESS) doneCleaning = true;
1174  }
1175  // 3) Check if TGraph fix has been applied successfully
1176  if (!doneCleaning) {
1177  ATH_MSG_ERROR("THistSvc_deReg_fixTGraph: failed to apply TGraph fix for the THist Svc!");
1178  allIsOk = false;
1179  }
1180  // 4) Register cloned histogram under previous interval streamName
1181  StatusCode sc3 = m_THistSvc->regGraph( streamName, g );
1182  if (sc3 == StatusCode::FAILURE)
1183  allIsOk = false;
1184 
1185  // get streamname for interval
1186  streamName = streamNameFunction()->getStreamName( this, group, name, false );
1187  // store metadata
1189  if (smd != StatusCode::SUCCESS) allIsOk = false;
1190  // Re-register the original graph
1191  StatusCode sc4 = m_THistSvc->regGraph( streamName, theGraph );
1192  if (sc4 == StatusCode::FAILURE) allIsOk = false;
1193  }
1194 
1195  if (!allIsOk) return StatusCode::FAILURE;
1196  return StatusCode::SUCCESS;
1197 }

◆ regManagedGraphs()

StatusCode ManagedMonitorToolBase::regManagedGraphs ( std::vector< MgmtParams< TGraph > > &  templateGraphs)
protectedinherited

Definition at line 1070 of file ManagedMonitorToolBase.cxx.

1072 {
1073  // See the description for the regManagedHistograms method
1074  bool allIsOk = true;
1075 
1076  for( std::vector< MgmtParams<TGraph> >::iterator it = templateGraphs.begin(); it != templateGraphs.end(); ++it ) {
1077  MonGroup group = (*it).m_group;
1078 
1079  // Get a handle to the graph
1080  TGraph* theGraph = (*it).m_templateHist;
1081 
1082  // Clone the graph
1083  TGraph* g = static_cast<TGraph*>(theGraph->Clone());
1084  theGraph->Set(0); // equivalent to Reset() for TH1
1085 
1086  // Get name
1087  std::string gName = g->GetName();
1088 
1089  // Get the streamName for the previous interval
1090  std::string streamName = streamNameFunction()->getStreamName( this, group, gName, true );
1091 
1092  // De-register the original graph with the THistSvc
1093  StatusCode sc1 = m_THistSvc->deReg( theGraph );
1094  if (sc1 == StatusCode::FAILURE)
1095  allIsOk = false;
1096 
1097  // *** begin ***
1098  // Fix THistSvc->deReg for TGraphs
1099  bool doneCleaning = false;
1100  std::string directoryName = streamNameFunction()->getDirectoryName( this, group, gName, true );
1101  TSeqCollection *filelist=gROOT->GetListOfFiles();
1102  for (int i=0; i<filelist->GetEntries(); i++) {
1103  ATH_MSG_DEBUG( "List of files: " << filelist->At(i)->GetName());
1104  TFile* file = static_cast<TFile*>(filelist->At(i));
1105  StatusCode sc2 = THistSvc_deReg_fixTGraph(file, theGraph, directoryName);
1106  if (sc2 == StatusCode::SUCCESS)
1107  doneCleaning = true;
1108  }
1109 
1110  // Check if TGraph fix has been applied successfully
1111  if (!doneCleaning) {
1112  ATH_MSG_ERROR("THistSvc_deReg_fixTGraph: failed to apply TGraph fix for the THist Svc!");
1113  allIsOk = false;
1114  }
1115  // *** end ***
1116 
1117  // Register clonned histogram under previous interval streamName
1118  StatusCode sc3 = m_THistSvc->regGraph( streamName, g );
1119  if (sc3 == StatusCode::FAILURE)
1120  allIsOk = false;
1121 
1122  // Get streamName for the current interval
1123  streamName = streamNameFunction()->getStreamName( this, group, gName, false );
1124  // Register metadata information with the current interval streamname
1126  if (smd != StatusCode::SUCCESS)
1127  allIsOk = false;
1128 
1129  // Re-register the original graph with the current interval streamName
1130  StatusCode sc4 = m_THistSvc->regGraph( streamName, theGraph );
1131  if (sc4 == StatusCode::FAILURE)
1132  allIsOk = false;
1133 
1134  }
1135 
1136  if (!allIsOk) return StatusCode::FAILURE;
1137 
1138  return StatusCode::SUCCESS;
1139 }

◆ regManagedHistograms()

StatusCode ManagedMonitorToolBase::regManagedHistograms ( std::vector< MgmtParams< TH1 > > &  templateHistograms)
protectedinherited

Definition at line 973 of file ManagedMonitorToolBase.cxx.

975 {
976  // The method registers histograms with the THistSvc and saves them to file.
977 
978  // The funky business with registering and deregistering the histogram is needed
979  // to get the correct directory when saving histograms. THistSvc deals with ROOT
980  // to set up proper TDirectory, so we rely on it.
981  // E.g.
982  // m_THistSvc->regHist( streamName, h ): sets the correct TDirectory with streamName
983  // m_THistSvc->deReg( h ) - deregister from THistSvc otherwise THistSvc will try to save it
984  // at the end of execution
985  // use passownership of the histogram and save it to file
986  // m_manager->passOwnership( h, genericName );
987  // m_manager->writeAndDelete( genericName );
988  bool allIsOk = true;
989 
990  for( std::vector< MgmtParams<TH1> >::iterator it = templateHistograms.begin(); it != templateHistograms.end(); ++it ) {
991  MonGroup& group = (*it).m_group;
992 
993  // Get a handle to the histogram
994  TH1* theHist = (*it).m_templateHist;
995 
996  // Clone the histogram
997  TH1* h = static_cast<TH1*>(theHist->Clone());
998  theHist->Reset();
999 
1000  // Get name
1001  std::string hName = h->GetName();
1002 
1003  // Get the streamName for the previous interval
1004  std::string streamName = streamNameFunction()->getStreamName( this, group, hName, true );
1005 
1006  // Register the histogram with the THistSvc
1007  StatusCode sc1 = m_THistSvc->deReg( theHist );
1008  if (sc1 == StatusCode::FAILURE) allIsOk = false;
1009 
1010  // Register clonned histogram under previous interval streamName
1011  StatusCode sc2 = m_THistSvc->regHist( streamName, h );
1012  if (sc2 == StatusCode::FAILURE) allIsOk = false;
1013 
1014  if( m_manager != 0 ) {
1015  std::string genericName = NoOutputStream().getStreamName( this, group, hName );
1016  m_manager->passOwnership( h, genericName );
1017  m_manager->writeAndDelete( genericName );
1018  }
1019 
1020  // Get streamName for the current interval
1021  streamName = streamNameFunction()->getStreamName( this, group, hName, false );
1022  // Register metadata information with the current interval streamname
1024  if (smd != StatusCode::SUCCESS) allIsOk = false;
1025 
1026  // Re-register the original histogram with the current interval streamName
1027  StatusCode sc3 = m_THistSvc->regHist( streamName, theHist );
1028  if (sc3 == StatusCode::FAILURE) allIsOk = false;
1029 
1030  }
1031 
1032  if (!allIsOk) return StatusCode::FAILURE;
1033 
1034  return StatusCode::SUCCESS;
1035 }

◆ regManagedTrees()

StatusCode ManagedMonitorToolBase::regManagedTrees ( std::vector< MgmtParams< TTree > > &  templateTrees)
protectedinherited

Definition at line 1201 of file ManagedMonitorToolBase.cxx.

1203 {
1204  // See the description for the regManagedHistograms method
1205  bool allIsOk = true;
1206 
1207  for( std::vector< MgmtParams<TTree> >::iterator it = templateTrees.begin(); it != templateTrees.end(); ++it ) {
1208  MonGroup group = (*it).m_group;
1209 
1210  // Get a handle to the original tree
1211  TTree* theTree = (*it).m_templateHist;
1212 
1213  // Clone the tree
1214  TTree* t = static_cast<TTree*>(theTree->Clone());
1215  theTree->Reset();
1216 
1217  // Dumping the tree
1218  std::string name = t->GetName();
1219 
1220  // Get the streamName for the previous interval
1221  std::string streamName = streamNameFunction()->getStreamName( this, group, name, true );
1222 
1223  // De-register original tree with the THistSvc
1224  StatusCode sc1 = m_THistSvc->deReg( theTree );
1225  if (sc1 == StatusCode::FAILURE) allIsOk = false;
1226 
1227  // Register clonned tree under previous interval streamName
1228  StatusCode sc2 = m_THistSvc->regTree( streamName, t );
1229  if (sc2 == StatusCode::FAILURE) allIsOk = false;
1230 
1231  if( m_manager != 0 ) {
1232  std::string genericName = NoOutputStream().getStreamName( this, group, name );
1233  m_manager->passOwnership( t, genericName );
1234  m_manager->writeAndDelete( genericName );
1235  }
1236 
1237  // Get streamName for the current interval
1238  streamName = streamNameFunction()->getStreamName( this, group, name, false );
1239  // Register metadata information with the current interval streamname
1241  if (smd != StatusCode::SUCCESS) allIsOk = false;
1242 
1243  // Re-register the original graph with the current interval streamName
1244  StatusCode sc3 = m_THistSvc->regTree( streamName, theTree );
1245  if (sc3 == StatusCode::FAILURE) allIsOk = false;
1246 
1247  }
1248 
1249  if (!allIsOk) return StatusCode::FAILURE;
1250 
1251  return StatusCode::SUCCESS;
1252 }

◆ regTree() [1/2]

StatusCode ManagedMonitorToolBase::regTree ( TTree *  t,
const MonGroup group 
)
virtualinherited

Registers a TTree to be included in the output stream using logical parameters that describe it.

Definition at line 1556 of file ManagedMonitorToolBase.cxx.

1558 {
1559 
1560  // This part of the code deals with MANAGED type
1561  if ( group.histo_mgmt() != ATTRIB_UNMANAGED ) {
1562  // Create an unmanaged group based on the original MonGroup instance passed
1563  // This is needed because managed tree is presented as a number of unmanaged
1564  // trees (one per each interval)
1565  MonGroup group_unmanaged( this, group.system(), group.interval(), ATTRIB_UNMANAGED, group.chain(), group.merge());
1566 
1567  if (m_supportedIntervalsForRebooking.count(group.interval())) {
1568  m_templateTrees[group.interval()].push_back( MgmtParams<TTree>(t, group_unmanaged) );
1569  } else {
1570  ATH_MSG_ERROR("Attempt to book managed tree " << t->GetName() << " with invalid interval type " << intervalEnumToString(group.interval()));
1571  return StatusCode::FAILURE;
1572  }
1573 
1574  std::string name = t->GetName();
1575  std::string genericName = NoOutputStream().getStreamName( this, group_unmanaged, name );
1576  std::string streamName = streamNameFunction()->getStreamName( this, group_unmanaged, name, false );
1577  registerMetadata(streamName, name, group).ignore();
1578  return m_THistSvc->regTree( streamName, t );
1579  }
1580 
1581 
1582  // This part of the code deals with UNMANAGED type
1583  std::string tName = t->GetName();
1584 
1585  if( m_manager != 0 ) {
1586  std::string genericName = NoOutputStream().getStreamName( this, group, tName );
1587  m_manager->writeAndDelete( genericName );
1588  m_manager->passOwnership( t, genericName );
1589  }
1590 
1591  std::string streamName = streamNameFunction()->getStreamName( this, group, tName, false );
1592 
1594  if (smd != StatusCode::SUCCESS) return StatusCode::FAILURE;
1595 
1596  return m_THistSvc->regTree( streamName, t );
1597 }

◆ regTree() [2/2]

StatusCode ManagedMonitorToolBase::regTree ( TTree *  t,
const std::string &  system,
Interval_t  interval,
MgmtAttr_t  histo_mgmt = ATTRIB_MANAGED,
const std::string &  chain = "",
const std::string &  merge = "" 
)
virtualinherited

Registers a TTree to be included in the output stream using logical parameters that describe it.

Definition at line 1546 of file ManagedMonitorToolBase.cxx.

1549 {
1550  MonGroup group( this, system, interval, histo_mgmt, chain, merge );
1551  return regTree( t, group );
1552 }

◆ removeTObj()

StatusCode TilePaterMonTool::removeTObj ( TObject *  obj)
protectedinherited

Definition at line 429 of file TilePaterMonTool.cxx.

429  {
430  if (obj != 0) {
431  if (obj->IsA()->InheritsFrom("TH1")) {
432  if (deregHist((TH1*) obj).isFailure()) {
433  ATH_MSG_WARNING( "Could not dereg Histogram : " << obj->GetName() );
434  return StatusCode::FAILURE;
435  } else {
436  delete obj;
437  }
438  } else if (obj->IsA()->InheritsFrom("TGraph")) {
439  if (deregGraph((TGraph*) obj) != StatusCode::SUCCESS) {
440  ATH_MSG_WARNING( "Could not dereg Graph : " << obj->GetName() );
441  return StatusCode::FAILURE;
442  } else {
443  delete obj;
444  }
445  } else {
446  ATH_MSG_WARNING( "Asked to remove object " << obj->GetName() << "of unsupported type " << obj->IsA() );
447  return StatusCode::FAILURE;
448  }
449  } else {
450  ATH_MSG_WARNING( "Asked to remove NULL pointer" );
451  return StatusCode::FAILURE;
452  }
453  return StatusCode::SUCCESS;
454 }

◆ renounce()

std::enable_if_t<std::is_void_v<std::result_of_t<decltype(&T::renounce)(T)> > && !std::is_base_of_v<SG::VarHandleKeyArray, T> && std::is_base_of_v<Gaudi::DataHandle, T>, void> AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T &  h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381  {
382  h.renounce();
383  PBASE::renounce (h);
384  }

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364  {
365  handlesArray.renounce();
366  }

◆ resetSummaryHistograms()

void TileRawChannelMonTool::resetSummaryHistograms ( )
private

Definition at line 1020 of file TileRawChannelMonTool.cxx.

1022 {
1023 
1024  memset(m_data->m_timeCov, 0, sizeof(m_data->m_timeCov));
1025  memset(m_data->m_timeCovCorr, 0, sizeof(m_data->m_timeCovCorr));
1026 
1027  int mingain = (m_bigain) ? 0 : 2;
1028  int maxgain = (m_bigain) ? 2 : 3;
1029 
1030  for (int ros = 1; ros < 5; ++ros) {
1031  for (int drawer = 0; drawer < 64; ++drawer) {
1032  if (m_data->m_hist1[ros][drawer][0][0].size() != 0) {
1033  for (int ch = 0; ch < 48; ++ch) {
1034  for (int gn = mingain; gn < maxgain; ++gn) {
1035  for (auto h : m_data->m_hist1[ros][drawer][ch][gn]) h->Reset();
1036  for (auto h : m_data->m_hist2[ros][drawer][ch][gn]) h->Reset();
1037  }
1038  }
1039  }
1040  }
1041  }
1042 }

◆ runStat()

StatusCode ManagedMonitorToolBase::runStat ( )
virtualinherited

This implementation does nothing; equivalent functionality may be provided by procHists( true, true, true ).

Implements IMonitorToolBase.

Definition at line 1663 of file ManagedMonitorToolBase.cxx.

1665 {
1666  return StatusCode::SUCCESS;
1667 }

◆ setMonManager()

void ManagedMonitorToolBase::setMonManager ( AthenaMonManager manager)
virtualinherited

Takes a pointer to a managing object to get information from it when needed.

Definition at line 1327 of file ManagedMonitorToolBase.cxx.

1329 {
1330  ATH_MSG_DEBUG( "ManagedMonitorToolBase::setMonManager():");
1331  m_manager = manager;
1332  if( m_manager != 0 ) {
1333  ATH_MSG_DEBUG( " --> Setting manager");
1334  m_managerNameProp = m_manager->name();
1338  delete m_streamNameFcn;
1340  }
1341  ATH_MSG_DEBUG( " --> Exiting successfully");
1342 }

◆ setupOutputStreams()

StatusCode ManagedMonitorToolBase::setupOutputStreams ( std::vector< std::string >  Mapping = std::vector<std::string>())
virtualinherited

This implementation does nothing—streams in this class should be managed by the AthenaMonManager.

Consider using MonitorToolBase for user-managed streams.

Implements IMonitorToolBase.

Definition at line 1652 of file ManagedMonitorToolBase.cxx.

1654 {
1655  // All instances should write to the stream(s) defined by the
1656  // AthenaMonManager.
1657 
1658  return StatusCode::SUCCESS;
1659 }

◆ streamNameFunction()

ManagedMonitorToolBase::StreamNameFcn * ManagedMonitorToolBase::streamNameFunction ( )
virtualinherited

Returns the function object that converts logical paramters into a physical stream name.

Definition at line 451 of file ManagedMonitorToolBase.cxx.

453 {
454  if( m_streamNameFcn == 0 ) {
455  msg(MSG::ERROR) << "!! streamNameFunction() has not been initialized !!" << endmsg;
456  msg(MSG::ERROR) << " --> neither ManagedMonitorToolBase::initialize() nor" << endmsg;
457  msg(MSG::ERROR) << " --> ManagedMonitorToolBase::setMonManager() has been called." << endmsg;
458  msg(MSG::ERROR) << " --> Correct configuration cannot be guaranteed from this point." << endmsg;
460  }
461  return m_streamNameFcn;
462 }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ THistSvc_deReg_fixTGraph()

StatusCode ManagedMonitorToolBase::THistSvc_deReg_fixTGraph ( TFile *  file,
TGraph *  theGraph,
std::string &  directoryName 
)
protectedinherited

Fixes THistSvc->deReg(obj) when obj is TGraph instance.

Read more in source file about this bug.

Definition at line 1038 of file ManagedMonitorToolBase.cxx.

1040 {
1041  // THistSvc employs TDirectory Append method when registering TGraph.
1042  // When deReg is used to de-register TGraph object, THistSvc only removes the object
1043  // from its internal management but forgets to delete from TDirectory.
1044  // The current method fixes this problem by removing the TGraph object manually
1045  // after THistSvc->deReg(TGraph* obj) is called.
1046 
1047  // Saves and restores gFile and gDirectory
1048  GlobalDirectoryRestore restore;
1049 
1050  // This check is true when TGraph object is removed successfully
1051  bool graphRemoved = false;
1052 
1053  file->cd("/");
1054  TDirectory* dir = file->GetDirectory(directoryName.c_str());
1055  if (dir != 0) {
1056  dir->cd();
1057  TObject* obj = dir->Remove(theGraph);
1058  if (obj != 0)
1059  graphRemoved = true;
1060  }
1061 
1062  if (!graphRemoved) {
1063  return StatusCode::FAILURE;
1064  }
1065 
1066  return StatusCode::SUCCESS;
1067 }

◆ trigChainsArePassed()

bool ManagedMonitorToolBase::trigChainsArePassed ( std::vector< std::string > &  vTrigNames)
protectedvirtualinherited

Definition at line 2094 of file ManagedMonitorToolBase.cxx.

2096 {
2097  ATH_MSG_DEBUG( "ManagedMonitorToolBase::trigChainsArePassed:");
2098 
2099  for(unsigned int i=0; i<vTrigNames.size(); i++) {
2100  if( m_trigDecTool->isPassed(vTrigNames[i]) ) {
2101  ATH_MSG_DEBUG( " + \"" << vTrigNames[i] << "\" passed, returning \'true\'");
2102  return true;
2103  }
2104  else {
2105  ATH_MSG_DEBUG( " - \"" << vTrigNames[i] << "\" did not pass");
2106  }
2107  }
2108 
2109  return false;
2110 }

◆ updateTriggersForGroups()

void ManagedMonitorToolBase::updateTriggersForGroups ( std::vector< std::string > &  vTrigChainNames)
protectedinherited

Definition at line 2132 of file ManagedMonitorToolBase.cxx.

2133  {
2134  for (size_t i = 0; i < vTrigChainNames.size(); ++i) {
2135  std::string& thisName = vTrigChainNames[i];
2136  if (thisName.compare(0, 9, "CATEGORY_") ==0) {
2137  ATH_MSG_DEBUG("Found a trigger category: " << thisName << ". We will unpack it.");
2138  std::vector<std::string> triggers = m_trigTranslator->translate(thisName.substr(9,std::string::npos));
2139  std::ostringstream oss;
2140  oss << "(";
2141  for (size_t itrig = 0; itrig < triggers.size(); ++itrig) {
2142  if (itrig != 0) {
2143  oss << "|";
2144  }
2145  oss << triggers[itrig];
2146  }
2147  oss << ")";
2148  // replace with new value
2149  std::string newval = oss.str();
2150  ATH_MSG_DEBUG("Replaced with " << newval);
2151  vTrigChainNames[i] = newval;
2152  }
2153  }
2154 }

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase &  )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308  {
309  // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310  // << " size: " << m_vhka.size() << endmsg;
311  for (auto &a : m_vhka) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

◆ writeAndDelete()

StatusCode ManagedMonitorToolBase::writeAndDelete ( TH1 *  h,
const MonGroup group 
)
virtualinherited

Write out histogram and delete it.

Definition at line 1601 of file ManagedMonitorToolBase.cxx.

1602  {
1603  if (!h)
1604  return StatusCode::FAILURE;
1605 
1606  std::string hName = h->GetName();
1607 
1608  if( m_manager != 0 ) {
1609  std::string genericName = NoOutputStream().getStreamName( this, group, hName );
1610  m_manager->writeAndDelete( genericName );
1611  }
1612  return StatusCode::SUCCESS;
1613 }

Member Data Documentation

◆ m_bigain

bool TileRawChannelMonTool::m_bigain {}
private

Definition at line 143 of file TileRawChannelMonTool.h.

◆ m_book2D

bool TileRawChannelMonTool::m_book2D {}
private

Definition at line 70 of file TileRawChannelMonTool.h.

◆ m_bookAll

bool TileRawChannelMonTool::m_bookAll {}
private

Definition at line 69 of file TileRawChannelMonTool.h.

◆ m_bookHistogramsInitial

bool ManagedMonitorToolBase::m_bookHistogramsInitial
privateinherited

Definition at line 893 of file ManagedMonitorToolBase.h.

◆ m_cabling

const TileCablingService* TilePaterMonTool::m_cabling {}
protectedinherited

Definition at line 204 of file TilePaterMonTool.h.

◆ m_calibUnit

TileRawChannelUnit::UNIT TileRawChannelMonTool::m_calibUnit {}
private

Definition at line 166 of file TileRawChannelMonTool.h.

◆ m_chMapEB

int TilePaterMonTool::m_chMapEB[48]
protectedinherited
Initial value:
= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0
, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0
, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1 }

Definition at line 248 of file TilePaterMonTool.h.

◆ m_chMapEBsp

int TilePaterMonTool::m_chMapEBsp[48]
protectedinherited
Initial value:
= { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0
, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1 }

Definition at line 253 of file TilePaterMonTool.h.

◆ m_chMapLB

int TilePaterMonTool::m_chMapLB[48]
protectedinherited
Initial value:
= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0
, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 }

Definition at line 243 of file TilePaterMonTool.h.

◆ m_cispar

const uint32_t* TileRawChannelMonTool::m_cispar
private

Definition at line 141 of file TileRawChannelMonTool.h.

◆ m_contName

std::string TileRawChannelMonTool::m_contName
private

Definition at line 73 of file TileRawChannelMonTool.h.

◆ m_contNameDSP

std::string TileRawChannelMonTool::m_contNameDSP
private

Definition at line 74 of file TileRawChannelMonTool.h.

◆ m_contNameOF

std::string TileRawChannelMonTool::m_contNameOF
private

Definition at line 75 of file TileRawChannelMonTool.h.

◆ m_corrup

bool TileRawChannelMonTool::m_corrup[5][64][2][16] ={}
private

Definition at line 97 of file TileRawChannelMonTool.h.

◆ m_d

Imp* ManagedMonitorToolBase::m_d
privateinherited

Definition at line 900 of file ManagedMonitorToolBase.h.

◆ m_dac2Charge

double TileRawChannelMonTool::m_dac2Charge[3] ={}
private

Definition at line 179 of file TileRawChannelMonTool.h.

◆ m_data

std::unique_ptr<Data> TileRawChannelMonTool::m_data
private

Definition at line 164 of file TileRawChannelMonTool.h.

◆ m_dataType

AthenaMonManager::DataType_t ManagedMonitorToolBase::m_dataType
protectedinherited

Definition at line 838 of file ManagedMonitorToolBase.h.

◆ m_dataTypeStr

std::string ManagedMonitorToolBase::m_dataTypeStr
protectedinherited

Definition at line 834 of file ManagedMonitorToolBase.h.

◆ m_defaultLBDuration

float ManagedMonitorToolBase::m_defaultLBDuration
privateinherited

Definition at line 895 of file ManagedMonitorToolBase.h.

◆ m_detailLevel

unsigned int ManagedMonitorToolBase::m_detailLevel
protectedinherited

Definition at line 836 of file ManagedMonitorToolBase.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_doLaserSummaryVsPMT

bool TileRawChannelMonTool::m_doLaserSummaryVsPMT {}
private

Definition at line 170 of file TileRawChannelMonTool.h.

◆ m_DownLimit

double TileRawChannelMonTool::m_DownLimit {}
private

Definition at line 76 of file TileRawChannelMonTool.h.

◆ m_DQFilterTools

ToolHandleArray<IDQFilterTool> ManagedMonitorToolBase::m_DQFilterTools {this,"FilterTools",{}}
protectedinherited

Definition at line 849 of file ManagedMonitorToolBase.h.

◆ m_DQstatusKey

SG::ReadHandleKey<TileDQstatus> TileRawChannelMonTool::m_DQstatusKey
private

Definition at line 177 of file TileRawChannelMonTool.h.

◆ m_drawHists

bool TileRawChannelMonTool::m_drawHists {}
private

Definition at line 171 of file TileRawChannelMonTool.h.

◆ m_EBcellName

std::string TilePaterMonTool::m_EBcellName[48]
protectedinherited
Initial value:
= { "E3", "E4", "D4", "D4", "C10", "C10", "A12", "A12", "B11", "B11", "A13", "A13"
, "E1", "E2", "B12", "B12", "D5", "D5", "E3*", "E4*", "A14", "A14", "B13", "B13"
, "", "", "", "", "", "", "B14", "A15", "A15", "", "", "B14"
, "B15", "D6", "D6", "B15", "A16", "A16", "", "", "", "", "", "" }

Definition at line 213 of file TilePaterMonTool.h.

◆ m_efitMap

std::map<int, std::vector<double> > TileRawChannelMonTool::m_efitMap
private

Definition at line 85 of file TileRawChannelMonTool.h.

◆ m_efitThresh

double TileRawChannelMonTool::m_efitThresh {}
private

Definition at line 88 of file TileRawChannelMonTool.h.

◆ m_endOfEventsBlock

bool ManagedMonitorToolBase::m_endOfEventsBlock
privateinherited

Definition at line 823 of file ManagedMonitorToolBase.h.

◆ m_endOfLowStat

bool ManagedMonitorToolBase::m_endOfLowStat
privateinherited

Definition at line 823 of file ManagedMonitorToolBase.h.

◆ m_endOfLumiBlock

bool ManagedMonitorToolBase::m_endOfLumiBlock
privateinherited

Definition at line 823 of file ManagedMonitorToolBase.h.

◆ m_endOfRun

bool ManagedMonitorToolBase::m_endOfRun
privateinherited

Definition at line 823 of file ManagedMonitorToolBase.h.

◆ m_environment

AthenaMonManager::Environment_t ManagedMonitorToolBase::m_environment
protectedinherited

Definition at line 839 of file ManagedMonitorToolBase.h.

◆ m_environmentStr

std::string ManagedMonitorToolBase::m_environmentStr
protectedinherited

Definition at line 835 of file ManagedMonitorToolBase.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_fileKey

std::string ManagedMonitorToolBase::m_fileKey
protectedinherited

Definition at line 833 of file ManagedMonitorToolBase.h.

◆ m_fragIDsDemonstrators

std::vector<int> TilePaterMonTool::m_fragIDsDemonstrators
protectedinherited

Definition at line 211 of file TilePaterMonTool.h.

◆ m_fragIDsToIgnoreDMUerrors

std::vector<int> TilePaterMonTool::m_fragIDsToIgnoreDMUerrors
protectedinherited

Definition at line 210 of file TilePaterMonTool.h.

◆ m_haveClearedLastEventBlock

bool ManagedMonitorToolBase::m_haveClearedLastEventBlock
protectedinherited

Definition at line 866 of file ManagedMonitorToolBase.h.

◆ m_hi_IntegralLimit

double TileRawChannelMonTool::m_hi_IntegralLimit {}
private

Definition at line 80 of file TileRawChannelMonTool.h.

◆ m_infoName

std::string TileRawChannelMonTool::m_infoName {}
private

Definition at line 174 of file TileRawChannelMonTool.h.

◆ m_intCalibUnit

int TileRawChannelMonTool::m_intCalibUnit {}
private

Definition at line 178 of file TileRawChannelMonTool.h.

◆ m_is12bit

bool TileRawChannelMonTool::m_is12bit {}
private

Definition at line 176 of file TileRawChannelMonTool.h.

◆ m_lastHigStatInterval

int ManagedMonitorToolBase::m_lastHigStatInterval
protectedinherited

Definition at line 861 of file ManagedMonitorToolBase.h.

◆ m_lastLowStatInterval

int ManagedMonitorToolBase::m_lastLowStatInterval
protectedinherited

Definition at line 861 of file ManagedMonitorToolBase.h.

◆ m_lastLumiBlock

unsigned int ManagedMonitorToolBase::m_lastLumiBlock
protectedinherited

Definition at line 859 of file ManagedMonitorToolBase.h.

◆ m_lastMedStatInterval

int ManagedMonitorToolBase::m_lastMedStatInterval
protectedinherited

Definition at line 861 of file ManagedMonitorToolBase.h.

◆ m_lastRun

unsigned int ManagedMonitorToolBase::m_lastRun
protectedinherited

Definition at line 860 of file ManagedMonitorToolBase.h.

◆ m_LBcellName

std::string TilePaterMonTool::m_LBcellName[48]
protectedinherited
Initial value:
= { "D0", "A1", "B1", "B1", "A1", "A2", "B2", "B2", "A2", "A3", "A3", "B3"
, "B3", "D1", "D1", "A4", "B4", "B4", "A4", "A5", "A5", "B5", "B5", "A6"
, "D2", "D2", "A6", "B6", "B6", "A7", "", "", "A7", "B7", "B7", "A8"
, "A9", "A9", "A8", "B8", "B8", "D3", "B9", "", "D3", "A10", "A10", "B9" }

Definition at line 218 of file TilePaterMonTool.h.

◆ m_lbDurationDataKey

SG::ReadCondHandleKey<LBDurationCondData> ManagedMonitorToolBase::m_lbDurationDataKey {this,"LBDurationCondDataKey","LBDurationCondData","SG Key of LBDurationCondData object"}
privateinherited

Definition at line 888 of file ManagedMonitorToolBase.h.

◆ m_lo_IntegralLimit

double TileRawChannelMonTool::m_lo_IntegralLimit {}
private

Definition at line 78 of file TileRawChannelMonTool.h.

◆ m_lumiDataKey

SG::ReadCondHandleKey<LuminosityCondData> ManagedMonitorToolBase::m_lumiDataKey {this,"LuminosityCondDataKey","LuminosityCondData","SG Key of LuminosityCondData object"}
privateinherited

Definition at line 886 of file ManagedMonitorToolBase.h.

◆ m_manager

AthenaMonManager* ManagedMonitorToolBase::m_manager
protectedinherited

Definition at line 829 of file ManagedMonitorToolBase.h.

◆ m_managerNameProp

std::string ManagedMonitorToolBase::m_managerNameProp
protectedinherited

Definition at line 831 of file ManagedMonitorToolBase.h.

◆ m_med_IntegralLimit

double TileRawChannelMonTool::m_med_IntegralLimit {}
private

Definition at line 79 of file TileRawChannelMonTool.h.

◆ m_metadataMap

MDMap_t ManagedMonitorToolBase::m_metadataMap
protectedinherited

Definition at line 827 of file ManagedMonitorToolBase.h.

◆ m_minAmpForCorrectedTime

float TileRawChannelMonTool::m_minAmpForCorrectedTime {}
private

Definition at line 172 of file TileRawChannelMonTool.h.

◆ m_nEvents

unsigned int ManagedMonitorToolBase::m_nEvents
protectedinherited

Definition at line 863 of file ManagedMonitorToolBase.h.

◆ m_nEventsIgnoreTrigger

unsigned int ManagedMonitorToolBase::m_nEventsIgnoreTrigger
protectedinherited

Definition at line 864 of file ManagedMonitorToolBase.h.

◆ m_nEventsTileMon

int TileRawChannelMonTool::m_nEventsTileMon {}
private

Definition at line 144 of file TileRawChannelMonTool.h.

◆ m_newEventsBlock

bool ManagedMonitorToolBase::m_newEventsBlock
privateinherited

Definition at line 822 of file ManagedMonitorToolBase.h.

◆ m_newHigStatInterval

bool ManagedMonitorToolBase::m_newHigStatInterval
privateinherited

Definition at line 820 of file ManagedMonitorToolBase.h.

◆ m_newLowStat

bool ManagedMonitorToolBase::m_newLowStat
privateinherited

Definition at line 821 of file ManagedMonitorToolBase.h.

◆ m_newLowStatInterval

bool ManagedMonitorToolBase::m_newLowStatInterval
privateinherited

Definition at line 820 of file ManagedMonitorToolBase.h.

◆ m_newLumiBlock

bool ManagedMonitorToolBase::m_newLumiBlock
privateinherited

Definition at line 821 of file ManagedMonitorToolBase.h.

◆ m_newMedStatInterval

bool ManagedMonitorToolBase::m_newMedStatInterval
privateinherited

Definition at line 820 of file ManagedMonitorToolBase.h.

◆ m_newRun

bool ManagedMonitorToolBase::m_newRun
privateinherited

Definition at line 821 of file ManagedMonitorToolBase.h.

◆ m_nLumiBlocks

unsigned int ManagedMonitorToolBase::m_nLumiBlocks
protectedinherited

Definition at line 865 of file ManagedMonitorToolBase.h.

◆ m_overlaphists

bool TileRawChannelMonTool::m_overlaphists {}
private

Definition at line 71 of file TileRawChannelMonTool.h.

◆ m_path

std::string ManagedMonitorToolBase::m_path
protectedinherited

Definition at line 852 of file ManagedMonitorToolBase.h.

◆ m_plotDsp

bool TileRawChannelMonTool::m_plotDsp {}
private

Definition at line 83 of file TileRawChannelMonTool.h.

◆ m_preScaleProp

long ManagedMonitorToolBase::m_preScaleProp
protectedinherited

Definition at line 853 of file ManagedMonitorToolBase.h.

◆ m_procNEventsProp

long ManagedMonitorToolBase::m_procNEventsProp
protectedinherited

Definition at line 851 of file ManagedMonitorToolBase.h.

◆ m_resetAfterSummaryUpdate

bool TileRawChannelMonTool::m_resetAfterSummaryUpdate {}
private

Definition at line 169 of file TileRawChannelMonTool.h.

◆ m_runType

int TileRawChannelMonTool::m_runType {}
private

Definition at line 72 of file TileRawChannelMonTool.h.

◆ m_savePng

bool TilePaterMonTool::m_savePng {}
protectedinherited

Definition at line 206 of file TilePaterMonTool.h.

◆ m_savePs

bool TilePaterMonTool::m_savePs {}
protectedinherited

Definition at line 207 of file TilePaterMonTool.h.

◆ m_saveSvg

bool TilePaterMonTool::m_saveSvg {}
protectedinherited

Definition at line 208 of file TilePaterMonTool.h.

◆ m_storeGraph

bool TileRawChannelMonTool::m_storeGraph {}
private

Definition at line 84 of file TileRawChannelMonTool.h.

◆ m_streamNameFcn

StreamNameFcn* ManagedMonitorToolBase::m_streamNameFcn
protectedinherited

Definition at line 841 of file ManagedMonitorToolBase.h.

◆ m_summaryUpdateFrequency

int TileRawChannelMonTool::m_summaryUpdateFrequency {}
private

Definition at line 168 of file TileRawChannelMonTool.h.

◆ m_supportedIntervalsForRebooking

std::set<Interval_t> ManagedMonitorToolBase::m_supportedIntervalsForRebooking
privateinherited

Definition at line 896 of file ManagedMonitorToolBase.h.

◆ m_templateEfficiencies

std::map< Interval_t, std::vector< MgmtParams<TEfficiency> > > ManagedMonitorToolBase::m_templateEfficiencies
protectedinherited

Definition at line 676 of file ManagedMonitorToolBase.h.

◆ m_templateGraphs

std::map< Interval_t, std::vector< MgmtParams<TGraph> > > ManagedMonitorToolBase::m_templateGraphs
protectedinherited

Definition at line 668 of file ManagedMonitorToolBase.h.

◆ m_templateHistograms

std::map< Interval_t, std::vector< MgmtParams<TH1> > > ManagedMonitorToolBase::m_templateHistograms
protectedinherited

Definition at line 664 of file ManagedMonitorToolBase.h.

◆ m_templateTrees

std::map< Interval_t, std::vector< MgmtParams<TTree> > > ManagedMonitorToolBase::m_templateTrees
protectedinherited

Definition at line 672 of file ManagedMonitorToolBase.h.

◆ m_tfitMap

std::map<int, std::vector<double> > TileRawChannelMonTool::m_tfitMap
private

Definition at line 86 of file TileRawChannelMonTool.h.

◆ m_THistSvc

ServiceHandle<ITHistSvc> ManagedMonitorToolBase::m_THistSvc
protectedinherited

Definition at line 843 of file ManagedMonitorToolBase.h.

◆ m_tileHWID

const TileHWID* TilePaterMonTool::m_tileHWID {}
protectedinherited

Definition at line 202 of file TilePaterMonTool.h.

◆ m_tileID

const TileID* TilePaterMonTool::m_tileID {}
protectedinherited

Definition at line 201 of file TilePaterMonTool.h.

◆ m_tileInfo

const TileInfo* TileRawChannelMonTool::m_tileInfo {}
private

Definition at line 175 of file TileRawChannelMonTool.h.

◆ m_tileTBID

const TileTBID* TilePaterMonTool::m_tileTBID {}
protectedinherited

Definition at line 203 of file TilePaterMonTool.h.

◆ m_tileToolEmscale

ToolHandle<TileCondToolEmscale> TileRawChannelMonTool::m_tileToolEmscale
private

Definition at line 87 of file TileRawChannelMonTool.h.

◆ m_TMDB_EB_cell_names

std::string TilePaterMonTool::m_TMDB_EB_cell_names[4] = {"D5L", "D5R", "D6L", "D6R"}
protectedinherited

Definition at line 231 of file TilePaterMonTool.h.

◆ m_TMDB_LB_cell_names

std::string TilePaterMonTool::m_TMDB_LB_cell_names[8] = {"D0", "D1L", "D1R", "D2R", "D2L", "D3L", "D3R", ""}
protectedinherited

Definition at line 230 of file TilePaterMonTool.h.

◆ m_trigDecTool

PublicToolHandle<Trig::ITrigDecisionTool> ManagedMonitorToolBase::m_trigDecTool {this, "TrigDecisionTool",""}
protectedinherited

Definition at line 845 of file ManagedMonitorToolBase.h.

◆ m_triggerChainProp

std::string ManagedMonitorToolBase::m_triggerChainProp
protectedinherited

Definition at line 854 of file ManagedMonitorToolBase.h.

◆ m_triggerGroupProp

std::string ManagedMonitorToolBase::m_triggerGroupProp
protectedinherited

Definition at line 855 of file ManagedMonitorToolBase.h.

◆ m_trigLiveFractionDataKey

SG::ReadCondHandleKey<TrigLiveFractionCondData> ManagedMonitorToolBase::m_trigLiveFractionDataKey {this,"TrigLiveFractionCondDataKey","TrigLiveFractionCondData","SG Key of TrigLiveFractionCondData object"}
privateinherited

Definition at line 890 of file ManagedMonitorToolBase.h.

◆ m_trigTranslator

PublicToolHandle<ITriggerTranslatorTool> ManagedMonitorToolBase::m_trigTranslator {this,"TriggerTranslatorTool",""}
protectedinherited

Definition at line 847 of file ManagedMonitorToolBase.h.

◆ m_UpLimit

double TileRawChannelMonTool::m_UpLimit {}
private

Definition at line 77 of file TileRawChannelMonTool.h.

◆ m_useLumi

bool ManagedMonitorToolBase::m_useLumi
privateinherited

Definition at line 894 of file ManagedMonitorToolBase.h.

◆ m_useratioerror

bool TileRawChannelMonTool::m_useratioerror {}
private

Definition at line 81 of file TileRawChannelMonTool.h.

◆ m_useTrigger

bool ManagedMonitorToolBase::m_useTrigger
protectedinherited

Definition at line 857 of file ManagedMonitorToolBase.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.

◆ m_vTrigChainNames

std::vector<std::string> ManagedMonitorToolBase::m_vTrigChainNames
protectedinherited

Definition at line 680 of file ManagedMonitorToolBase.h.

◆ m_vTrigGroupNames

std::vector<std::string> ManagedMonitorToolBase::m_vTrigGroupNames
protectedinherited

Definition at line 680 of file ManagedMonitorToolBase.h.


The documentation for this class was generated from the following files:
grepfile.info
info
Definition: grepfile.py:38
TileRawChannelMonTool::m_contNameDSP
std::string m_contNameDSP
Definition: TileRawChannelMonTool.h:74
ManagedMonitorToolBase::m_nEvents
unsigned int m_nEvents
Definition: ManagedMonitorToolBase.h:863
LArG4FSStartPointFilter.part
part
Definition: LArG4FSStartPointFilter.py:21
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
TileRawChannelContainer
Definition: TileRawChannelContainer.h:13
TileRawChannelMonTool::m_med_IntegralLimit
double m_med_IntegralLimit
Definition: TileRawChannelMonTool.h:79
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
ManagedMonitorToolBase::THistSvc_deReg_fixTGraph
StatusCode THistSvc_deReg_fixTGraph(TFile *file, TGraph *theGraph, std::string &directoryName)
Fixes THistSvc->deReg(obj) when obj is TGraph instance.
Definition: ManagedMonitorToolBase.cxx:1039
TilePaterMonTool::removeTObj
StatusCode removeTObj(TObject *obj)
Definition: TilePaterMonTool.cxx:429
plotBeamSpotCompare.x1
x1
Definition: plotBeamSpotCompare.py:216
ManagedMonitorToolBase::m_templateEfficiencies
std::map< Interval_t, std::vector< MgmtParams< TEfficiency > > > m_templateEfficiencies
Definition: ManagedMonitorToolBase.h:676
ManagedMonitorToolBase::streamNameFunction
virtual StreamNameFcn * streamNameFunction()
Returns the function object that converts logical paramters into a physical stream name.
Definition: ManagedMonitorToolBase.cxx:452
TileRawChannelMonTool::m_tfitMap
std::map< int, std::vector< double > > m_tfitMap
Definition: TileRawChannelMonTool.h:86
TileRawChannelMonTool::checkDmuHeaderFormat
bool checkDmuHeaderFormat(uint32_t header)
Function to check that the DMU header format is correct bit_31 of the DMU header must be 1 and bit_17...
Definition: TileRawChannelMonTool.h:103
ManagedMonitorToolBase::m_newRun
bool m_newRun
Definition: ManagedMonitorToolBase.h:821
TileRawChannelMonTool::chi2dsp
@ chi2dsp
Definition: TileRawChannelMonTool.h:134
ManagedMonitorToolBase::m_supportedIntervalsForRebooking
std::set< Interval_t > m_supportedIntervalsForRebooking
Definition: ManagedMonitorToolBase.h:896
TileRawChannelMonTool::m_drawHists
bool m_drawHists
Definition: TileRawChannelMonTool.h:171
TileRawChannelMonTool::m_lo_IntegralLimit
double m_lo_IntegralLimit
Definition: TileRawChannelMonTool.h:78
defineDB.smd
string smd
Definition: JetTagCalibration/share/defineDB.py:44
TileRawChannelMonTool::checkDmuHeader
bool checkDmuHeader(std::vector< uint32_t > *headerVec, int dmu)
The following three functions are implemented to filter data corruption, copied from TileDigitsMonToo...
Definition: TileRawChannelMonTool.cxx:1950
PlotCalibFromCool.norm
norm
Definition: PlotCalibFromCool.py:100
ManagedMonitorToolBase::m_path
std::string m_path
Definition: ManagedMonitorToolBase.h:852
ymin
double ymin
Definition: listroot.cxx:63
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
checkFileSG.line
line
Definition: checkFileSG.py:75
sendEI_SPB.ch
ch
Definition: sendEI_SPB.py:35
ManagedMonitorToolBase::getHist
virtual StatusCode getHist(TH1 *&h, const std::string &hName, const std::string &system, Interval_t interval)
Returns a TH1 via the pointer passed as the first argument.
Definition: ManagedMonitorToolBase.cxx:1410
ManagedMonitorToolBase::m_newEventsBlock
bool m_newEventsBlock
Definition: ManagedMonitorToolBase.h:822
TilePaterMonTool::NO_ROB
@ NO_ROB
Definition: TilePaterMonTool.h:62
algorithm
std::string algorithm
Definition: hcg.cxx:82
mean
void mean(std::vector< double > &bins, std::vector< double > &values, const std::vector< std::string > &files, const std::string &histname, const std::string &tplotname, const std::string &label="")
Definition: dependence.cxx:254
get_generator_info.result
result
Definition: get_generator_info.py:21
header
Definition: hcg.cxx:526
TileDCSDataPlotter.max1
max1
Definition: TileDCSDataPlotter.py:884
athena.path
path
python interpreter configuration --------------------------------------—
Definition: athena.py:128
runLayerRecalibration.chain
chain
Definition: runLayerRecalibration.py:175
TileRawChannelMonTool::NsumDsp
@ NsumDsp
Definition: TileRawChannelMonTool.h:138
PowhegControl_ttHplus_NLO.ss
ss
Definition: PowhegControl_ttHplus_NLO.py:83
AddEmptyComponent.histName
string histName
Definition: AddEmptyComponent.py:64
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:24
TilePaterMonTool::initialize
virtual StatusCode initialize() override
Definition: TilePaterMonTool.cxx:101
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
TilePaterMonTool::TilePaterMonTool
TilePaterMonTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: TilePaterMonTool.cxx:73
TileRawChannelMonTool::m_bigain
bool m_bigain
Definition: TileRawChannelMonTool.h:143
TileRawChannelMonTool::m_data
std::unique_ptr< Data > m_data
Definition: TileRawChannelMonTool.h:164
integral
double integral(TH1 *h)
Definition: computils.cxx:58
TilePaterMonTool::ALL_00
@ ALL_00
Definition: TilePaterMonTool.h:62
ManagedMonitorToolBase::higStat
@ higStat
Definition: ManagedMonitorToolBase.h:114
TilePaterMonTool::bookGraphAsymmErrors
TGraphAsymmErrors * bookGraphAsymmErrors(const std::string &dir, const std::string &nam, const std::string &tit, int N, float *X, float *Y, float *X_errors1, float *X_errors2, float *Y_errors1, float *Y_errors2)
Definition: TilePaterMonTool.cxx:476
ManagedMonitorToolBase::lumiBlock
@ lumiBlock
Definition: ManagedMonitorToolBase.h:113
TileRawChannelMonTool::bookHists
virtual StatusCode bookHists() override
Calls bookHists( true, true, true ) and initializes lumiBlock and run numbers.
Definition: TileRawChannelMonTool.cxx:124
ManagedMonitorToolBase::m_endOfLumiBlock
bool m_endOfLumiBlock
Definition: ManagedMonitorToolBase.h:823
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
TileRawChannelMonTool::m_runType
int m_runType
Definition: TileRawChannelMonTool.h:72
PixelAthClusterMonAlgCfg.zmin
zmin
Definition: PixelAthClusterMonAlgCfg.py:169
TilePaterMonTool::m_fragIDsDemonstrators
std::vector< int > m_fragIDsDemonstrators
Definition: TilePaterMonTool.h:211
index
Definition: index.py:1
ManagedMonitorToolBase::m_THistSvc
ServiceHandle< ITHistSvc > m_THistSvc
Definition: ManagedMonitorToolBase.h:843
ManagedMonitorToolBase::m_procNEventsProp
long m_procNEventsProp
Definition: ManagedMonitorToolBase.h:851
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
ManagedMonitorToolBase::regTree
virtual StatusCode regTree(TTree *t, const std::string &system, Interval_t interval, MgmtAttr_t histo_mgmt=ATTRIB_MANAGED, const std::string &chain="", const std::string &merge="")
Registers a TTree to be included in the output stream using logical parameters that describe it.
Definition: ManagedMonitorToolBase.cxx:1547
max
constexpr double max()
Definition: ap_fixedTest.cxx:33
TilePaterMonTool::m_EBcellName
std::string m_EBcellName[48]
Definition: TilePaterMonTool.h:213
TilePaterMonTool::m_savePng
bool m_savePng
Definition: TilePaterMonTool.h:206
TileRawChannelMonTool::sumEdsp
@ sumEdsp
Definition: TileRawChannelMonTool.h:138
ReadBchFromCool.pmt
pmt
Definition: ReadBchFromCool.py:62
TilePaterMonTool::regHist
void regHist(const std::string &subDir, T *hist, Interval_t interval=run, MgmtAttr_t attribute=ATTRIB_MANAGED, const std::string &trigChain="", const std::string &mergeAlgo="")
Definition: TilePaterMonTool.cxx:47
plotmaker.hist
hist
Definition: plotmaker.py:148
min
constexpr double min()
Definition: ap_fixedTest.cxx:26
run_gep.alg_name
alg_name
Definition: run_gep.py:308
TilePaterMonTool::m_savePs
bool m_savePs
Definition: TilePaterMonTool.h:207
AthenaMonManager::fileKey
virtual std::string fileKey() const
Definition: AthenaMonManager.cxx:648
TileRawChannelMonTool::fillSummaryHistograms
StatusCode fillSummaryHistograms()
Definition: TileRawChannelMonTool.cxx:1046
TileRawChannelUnit::CesiumPicoCoulombs
@ CesiumPicoCoulombs
Definition: TileRawChannelUnit.h:19
AthenaMonManager::AOD
@ AOD
Definition: AthenaMonManager.h:49
AthenaMonManager::passOwnership
virtual void passOwnership(TObject *h, const std::string &key)
Pass ownership of a TObject to this manager so that it will be deleted appropriately.
Definition: AthenaMonManager.cxx:656
CaloCondBlobAlgs_fillNoiseFromASCII.gain
gain
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:110
TilePaterMonTool::CRC_ERR
@ CRC_ERR
Definition: TilePaterMonTool.h:62
TilePaterMonTool::m_LBcellName
std::string m_LBcellName[48]
Definition: TilePaterMonTool.h:218
ManagedMonitorToolBase::lbDuration
virtual double lbDuration(const EventContext &ctx=Gaudi::Hive::currentContext()) const
Luminosity block time (in seconds)
Definition: ManagedMonitorToolBase.cxx:1817
ManagedMonitorToolBase::m_trigDecTool
PublicToolHandle< Trig::ITrigDecisionTool > m_trigDecTool
Definition: ManagedMonitorToolBase.h:845
TilePaterMonTool::m_chMapEB
int m_chMapEB[48]
Definition: TilePaterMonTool.h:248
skel.it
it
Definition: skel.GENtoEVGEN.py:396
PixelAthClusterMonAlgCfg.ybins
ybins
Definition: PixelAthClusterMonAlgCfg.py:169
TileRawChannelMonTool::CisRun
@ CisRun
Definition: TileRawChannelMonTool.h:128
bin
Definition: BinsDiffFromStripMedian.h:43
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
TileRawChannelMonTool::m_bookAll
bool m_bookAll
Definition: TileRawChannelMonTool.h:69
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
AthCommonMsg< AlgTool >::msgLvl
bool msgLvl(const MSG::Level lvl) const
Definition: AthCommonMsg.h:30
ManagedMonitorToolBase::m_dataType
AthenaMonManager::DataType_t m_dataType
Definition: ManagedMonitorToolBase.h:838
TileRawChannelMonTool::drawDsp
void drawDsp(int ros, int drawer, const std::string &moduleName)
Definition: TileRawChannelMonTool.cxx:1717
TilePaterMonTool::m_chMapLB
int m_chMapLB[48]
Definition: TilePaterMonTool.h:243
ManagedMonitorToolBase::regGraph
virtual StatusCode regGraph(TGraph *g, const std::string &system, Interval_t interval, MgmtAttr_t histo_mgmt=ATTRIB_MANAGED, const std::string &chain="", const std::string &merge="")
Registers a TGraph to be included in the output stream using logical parameters that describe the gra...
Definition: ManagedMonitorToolBase.cxx:1491
JetTiledMap::N
@ N
Definition: TiledEtaPhiMap.h:44
ManagedMonitorToolBase::m_newLowStatInterval
bool m_newLowStatInterval
Definition: ManagedMonitorToolBase.h:820
TileRawChannelMonTool::ratioErrorBar
void ratioErrorBar(TH1S *hist, double &xmin, double &xmax, double mean)
Definition: TileRawChannelMonTool.cxx:1857
ManagedMonitorToolBase::fill
@ fill
Definition: ManagedMonitorToolBase.h:115
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
python.TrigTLAMonitorAlgorithm.triggers
triggers
Definition: TrigTLAMonitorAlgorithm.py:196
TileRawChannelMonTool::Unknown
@ Unknown
Definition: TileRawChannelMonTool.h:124
TileDigitsContainer
Definition: TileDigitsContainer.h:13
SG::VarHandleKey::empty
bool empty() const
Test if the key is blank.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:150
TileRawChannelMonTool::m_tileToolEmscale
ToolHandle< TileCondToolEmscale > m_tileToolEmscale
Definition: TileRawChannelMonTool.h:87
TileRawChannelMonTool::m_calibUnit
TileRawChannelUnit::UNIT m_calibUnit
Definition: TileRawChannelMonTool.h:166
TileRawChannelUnit::PicoCoulombs
@ PicoCoulombs
Definition: TileRawChannelUnit.h:18
TileRawData::adc_HWID
HWIdentifier adc_HWID(void) const
Definition: TileRawData.h:53
HWIdentifier
Definition: HWIdentifier.h:13
python.TrigEgammaMonitorHelper.TH2F
def TH2F(name, title, nxbins, bins_par2, bins_par3, bins_par4, bins_par5=None, bins_par6=None, path='', **kwargs)
Definition: TrigEgammaMonitorHelper.py:45
python.SystemOfUnits.ms
int ms
Definition: SystemOfUnits.py:132
TileRawChannel::time
float time(int ind=0) const
Definition: TileRawChannel.h:103
Trk::u
@ u
Enums for curvilinear frames.
Definition: ParamDefs.h:77
Example_ReadSampleNoise.drawer
drawer
Definition: Example_ReadSampleNoise.py:39
ManagedMonitorToolBase::registerMetadata
StatusCode registerMetadata(const std::string &streamName, const std::string &hName, const MonGroup &group)
Definition: ManagedMonitorToolBase.cxx:947
TileRawChannelMonTool::m_cispar
const uint32_t * m_cispar
Definition: TileRawChannelMonTool.h:141
ManagedMonitorToolBase::m_newHigStatInterval
bool m_newHigStatInterval
Definition: ManagedMonitorToolBase.h:820
ManagedMonitorToolBase::m_newMedStatInterval
bool m_newMedStatInterval
Definition: ManagedMonitorToolBase.h:820
TileHWID::channel
int channel(const HWIdentifier &id) const
extract channel field from HW identifier
Definition: TileHWID.h:189
ManagedMonitorToolBase::deregHist
virtual StatusCode deregHist(TH1 *h)
De-registers a TH1 from the THistSvc, but does NOT delete the object.
Definition: ManagedMonitorToolBase.cxx:1618
TileRawChannelMonTool::m_doLaserSummaryVsPMT
bool m_doLaserSummaryVsPMT
Definition: TileRawChannelMonTool.h:170
Monitored::X
@ X
Definition: HistogramFillerUtils.h:24
AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
TileRawChannelMonTool::bookSummaryHistograms
void bookSummaryHistograms(int ros, int drawer)
Definition: TileRawChannelMonTool.cxx:908
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
TileHWID::ros
int ros(const HWIdentifier &id) const
extract ros field from HW identifier
Definition: TileHWID.h:167
AthenaMonManager::environment
static Environment_t environment()
Returns the running environment of the monitoring application to help ManagedMonitorToolBase objects ...
Definition: AthenaMonManager.cxx:298
AthExHiveOpts.Time
Time
Definition: AthExHiveOpts.py:63
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:29
TilePaterMonTool::NO_FRAG
@ NO_FRAG
Definition: TilePaterMonTool.h:62
python.checkMetadata.metadata
metadata
Definition: checkMetadata.py:175
TilePaterMonTool::m_chMapEBsp
int m_chMapEBsp[48]
Definition: TilePaterMonTool.h:253
SG::makeHandle
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
Definition: ReadCondHandle.h:270
TileRawChannel::quality
float quality(int ind=0) const
Definition: TileRawChannel.h:105
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
TileRawChannelMonTool::m_storeGraph
bool m_storeGraph
Definition: TileRawChannelMonTool.h:84
PyPoolBrowser.item
item
Definition: PyPoolBrowser.py:129
ManagedMonitorToolBase::getNewStreamNameFcn
virtual StreamNameFcn * getNewStreamNameFcn() const
Definition: ManagedMonitorToolBase.cxx:2158
ManagedMonitorToolBase::m_preScaleProp
long m_preScaleProp
Definition: ManagedMonitorToolBase.h:853
TileRawChannelMonTool::m_minAmpForCorrectedTime
float m_minAmpForCorrectedTime
Definition: TileRawChannelMonTool.h:172
WriteCellNoiseToCool.gn
gn
Definition: WriteCellNoiseToCool.py:531
AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
ManagedMonitorToolBase::m_fileKey
std::string m_fileKey
Definition: ManagedMonitorToolBase.h:833
TileRawChannelMonTool::m_plotDsp
bool m_plotDsp
Definition: TileRawChannelMonTool.h:83
TilePaterMonTool::m_saveSvg
bool m_saveSvg
Definition: TilePaterMonTool.h:208
TileDQstatus
Class that holds Data Quality fragment information and provides functions to extract the data quality...
Definition: TileDQstatus.h:49
TilePaterMonTool::book1Sx
TH1S * book1Sx(const std::string &dir, const std::string &nam, const std::string &tit, int nx, const Double_t *xlgbins, Interval_t interval=run, MgmtAttr_t attribute=ATTRIB_MANAGED, const std::string &trigChain="", const std::string &mergeAlgo="")
Definition: TilePaterMonTool.cxx:203
TileRawChannelMonTool::checkDmuHeaderParity
bool checkDmuHeaderParity(uint32_t header)
Function to check that the DMU header parity is correct Parity of the DMU header should be odd Return...
Definition: TileRawChannelMonTool.h:113
TileDCSDataPlotter.tit
tit
Definition: TileDCSDataPlotter.py:890
TileHWID::adc
int adc(const HWIdentifier &id) const
extract adc field from HW identifier
Definition: TileHWID.h:193
TileRawChannelMonTool::GetTimeFitFunc
TF1 * GetTimeFitFunc(TH2S *hist2d)
Time Slope parameters for CIS runs.
Definition: TileRawChannelMonTool.cxx:1917
TilePaterMonTool::book1F
TH1F * book1F(const std::string &dir, const std::string &nam, const std::string &tit, int nx, double xmin, double xmax, Interval_t interval=run, MgmtAttr_t attribute=ATTRIB_MANAGED, const std::string &trigChain="", const std::string &mergeAlgo="")
Definition: TilePaterMonTool.cxx:170
AthenaMonManager::tier0ESD
@ tier0ESD
Definition: AthenaMonManager.h:49
ManagedMonitorToolBase::lbAverageLivefraction
virtual float lbAverageLivefraction(const EventContext &ctx=Gaudi::Hive::currentContext()) const
Average luminosity livefraction.
Definition: ManagedMonitorToolBase.cxx:1763
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
ManagedMonitorToolBase::m_templateGraphs
std::map< Interval_t, std::vector< MgmtParams< TGraph > > > m_templateGraphs
Definition: ManagedMonitorToolBase.h:668
TileRawChannelMonTool::m_useratioerror
bool m_useratioerror
Definition: TileRawChannelMonTool.h:81
AthCommonDataStore
Definition: AthCommonDataStore.h:52
AthenaMonManager::dataType
static DataType_t dataType()
Returns the data type that the monitoring application is running over to help ManagedMonitorToolBase ...
Definition: AthenaMonManager.cxx:315
TileRawChannel::amplitude
float amplitude(int ind=0) const
Definition: TileRawChannel.h:101
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
ManagedMonitorToolBase::m_manager
AthenaMonManager * m_manager
Definition: ManagedMonitorToolBase.h:829
TileRawChannelMonTool::m_intCalibUnit
int m_intCalibUnit
Definition: TileRawChannelMonTool.h:178
ManagedMonitorToolBase::m_lumiDataKey
SG::ReadCondHandleKey< LuminosityCondData > m_lumiDataKey
Definition: ManagedMonitorToolBase.h:887
ManagedMonitorToolBase::deregGraph
virtual StatusCode deregGraph(TGraph *g)
De-registers a TGraph from the THistSvc, but does NOT delete the object.
Definition: ManagedMonitorToolBase.cxx:1626
ManagedMonitorToolBase::m_streamNameFcn
StreamNameFcn * m_streamNameFcn
Definition: ManagedMonitorToolBase.h:841
TileRawChannelMonTool::PhysRun
@ PhysRun
Definition: TileRawChannelMonTool.h:124
dqt_zlumi_pandas.err
err
Definition: dqt_zlumi_pandas.py:182
StdJOSetup.msgSvc
msgSvc
Provide convenience handles for various services.
Definition: StdJOSetup.py:36
lumiFormat.i
int i
Definition: lumiFormat.py:85
xmin
double xmin
Definition: listroot.cxx:60
python.TrigEgammaMonitorHelper.TProfile
def TProfile(*args, **kwargs)
Definition: TrigEgammaMonitorHelper.py:81
ReadCellNoiseFromCool.chan
chan
Definition: ReadCellNoiseFromCool.py:52
AthenaMonManager::tier0
@ tier0
Definition: AthenaMonManager.h:49
python.CaloCondTools.g
g
Definition: CaloCondTools.py:15
TileRawChannelMonTool::m_contName
std::string m_contName
Definition: TileRawChannelMonTool.h:73
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
AthenaMonManager::online
@ online
Definition: AthenaMonManager.h:49
TileRawDataContainer::get_bsflags
uint32_t get_bsflags() const
Definition: TileRawDataContainer.h:64
TGraph1
Definition: TilePaterMonTool.cxx:370
TilePaterMonTool::book2S
TH2S * book2S(const std::string &dir, const std::string &nam, const std::string &tit, int nx, double xmin, double xmax, int ny, double ymin, double ymax, Interval_t interval=run, MgmtAttr_t attribute=ATTRIB_MANAGED, const std::string &trigChain="", const std::string &mergeAlgo="")
Definition: TilePaterMonTool.cxx:274
ManagedMonitorToolBase::file
@ file
Definition: ManagedMonitorToolBase.h:113
TileRawChannelUnit::Invalid
@ Invalid
Definition: TileRawChannelUnit.h:26
AthenaMonManager::writeAndDelete
virtual void writeAndDelete(const std::string &key)
If the TObject is owned by this manager, its Write() method is called and it is deleted.
Definition: AthenaMonManager.cxx:665
TileRawChannelMonTool::m_dac2Charge
double m_dac2Charge[3]
Definition: TileRawChannelMonTool.h:179
covarianceTool.title
title
Definition: covarianceTool.py:542
getLatestRuns.interval
interval
Definition: getLatestRuns.py:24
TileRawChannelMonTool::m_tileInfo
const TileInfo * m_tileInfo
Definition: TileRawChannelMonTool.h:175
TileRawChannelMonTool::resetSummaryHistograms
void resetSummaryHistograms()
Definition: TileRawChannelMonTool.cxx:1020
chi2
double chi2(TH1 *h0, TH1 *h1)
Definition: comparitor.cxx:523
ManagedMonitorToolBase::ATTRIB_UNMANAGED
@ ATTRIB_UNMANAGED
Definition: ManagedMonitorToolBase.h:130
TileRawChannel
Definition: TileRawChannel.h:35
PixelAthClusterMonAlgCfg.zmax
zmax
Definition: PixelAthClusterMonAlgCfg.py:169
test_pyathena.parent
parent
Definition: test_pyathena.py:15
AthenaMonManager::tier0Raw
@ tier0Raw
Definition: AthenaMonManager.h:49
TilePaterMonTool::m_TMDB_LB_cell_names
std::string m_TMDB_LB_cell_names[8]
Definition: TilePaterMonTool.h:230
TileRawChannelMonTool::m_UpLimit
double m_UpLimit
Definition: TileRawChannelMonTool.h:77
IdentifiableContainerMT::end
const_iterator end() const
return const_iterator for end of container
Definition: IdentifiableContainerMT.h:239
AthenaMonManager::user
@ user
Definition: AthenaMonManager.h:49
CHECK
#define CHECK(...)
Evaluate an expression and check for errors.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:422
ManagedMonitorToolBase::ATTRIB_MANAGED
@ ATTRIB_MANAGED
Definition: ManagedMonitorToolBase.h:130
ManagedMonitorToolBase::StreamNameFcn::getStreamName
virtual std::string getStreamName(const ManagedMonitorToolBase *tool, const MonGroup &group, const std::string &objName, bool usePreviousInterval=false)=0
A function that converts a MonGroup of logical parameters into a physical output stream name.
IdentifiableContainerMT::const_iterator
Definition: IdentifiableContainerMT.h:79
TileRawChannelMonTool::finalDsp
StatusCode finalDsp(int ros, int drawer)
Definition: TileRawChannelMonTool.cxx:1320
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
IdentifiableContainerMT::begin
const_iterator begin() const
return const_iterator for first entry
Definition: IdentifiableContainerMT.h:233
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
ManagedMonitorToolBase::medStat
@ medStat
Definition: ManagedMonitorToolBase.h:114
xAOD::double
double
Definition: CompositeParticle_v1.cxx:159
TileRawChannelMonTool::m_DQstatusKey
SG::ReadHandleKey< TileDQstatus > m_DQstatusKey
Definition: TileRawChannelMonTool.h:177
maskDeadModules.ros
ros
Definition: maskDeadModules.py:35
ManagedMonitorToolBase::m_templateTrees
std::map< Interval_t, std::vector< MgmtParams< TTree > > > m_templateTrees
Definition: ManagedMonitorToolBase.h:672
ManagedMonitorToolBase::m_metadataMap
MDMap_t m_metadataMap
Definition: ManagedMonitorToolBase.h:827
TilePaterMonTool::ALL_OK
@ ALL_OK
Definition: TilePaterMonTool.h:62
ManagedMonitorToolBase::m_endOfEventsBlock
bool m_endOfEventsBlock
Definition: ManagedMonitorToolBase.h:823
TileRawChannelUnit::UNIT
UNIT
Definition: TileRawChannelUnit.h:16
TileRawChannelMonTool::m_is12bit
bool m_is12bit
Definition: TileRawChannelMonTool.h:176
ManagedMonitorToolBase::m_trigLiveFractionDataKey
SG::ReadCondHandleKey< TrigLiveFractionCondData > m_trigLiveFractionDataKey
Definition: ManagedMonitorToolBase.h:891
TileRawChannelMonTool::drawHists
void drawHists(int ros, int drawer, const std::string &moduleName)
Definition: TileRawChannelMonTool.cxx:1437
ManagedMonitorToolBase::m_environment
AthenaMonManager::Environment_t m_environment
Definition: ManagedMonitorToolBase.h:839
TileRawChannelMonTool::Edsp
@ Edsp
Definition: TileRawChannelMonTool.h:134
beamspotman.dir
string dir
Definition: beamspotman.py:623
TileRawChannelMonTool::Tdsp
@ Tdsp
Definition: TileRawChannelMonTool.h:134
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
TilePaterMonTool::regGraph
void regGraph(const std::string &subDir, T *graph, Interval_t interval=run, MgmtAttr_t attribute=ATTRIB_MANAGED, const std::string &trigChain="", const std::string &mergeAlgo="")
Definition: TilePaterMonTool.cxx:60
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
TilePaterMonTool::book2F
TH2F * book2F(const std::string &dir, const std::string &nam, const std::string &tit, int nx, double xmin, double xmax, int ny, double ymin, double ymax, Interval_t interval=run, MgmtAttr_t attribute=ATTRIB_MANAGED, const std::string &trigChain="", const std::string &mergeAlgo="")
Definition: TilePaterMonTool.cxx:239
TileRawChannelMonTool::LaserFancyPlotting
void LaserFancyPlotting(int ros, int drawer, int maxgain, const std::string &moduleName)
Definition: TileRawChannelMonTool.cxx:1982
Monitored::Y
@ Y
Definition: HistogramFillerUtils.h:24
ManagedMonitorToolBase::m_newLumiBlock
bool m_newLumiBlock
Definition: ManagedMonitorToolBase.h:821
ManagedMonitorToolBase::m_endOfLowStat
bool m_endOfLowStat
Definition: ManagedMonitorToolBase.h:823
TileRawChannelMonTool::bookDsp
void bookDsp(int ros, int drawer)
Definition: TileRawChannelMonTool.cxx:365
TileRawChannelMonTool::Edsp_fit
@ Edsp_fit
Definition: TileRawChannelMonTool.h:134
ManagedMonitorToolBase::m_lbDurationDataKey
SG::ReadCondHandleKey< LBDurationCondData > m_lbDurationDataKey
Definition: ManagedMonitorToolBase.h:889
DiTauMassTools::HistInfo::RMS
@ RMS
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:35
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
TileRawChannelMonTool::m_summaryUpdateFrequency
int m_summaryUpdateFrequency
Definition: TileRawChannelMonTool.h:168
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
TileRawChannelMonTool::sumTdsp_fit
@ sumTdsp_fit
Definition: TileRawChannelMonTool.h:138
charge
double charge(const T &p)
Definition: AtlasPID.h:756
TileRawChannelMonTool::m_book2D
bool m_book2D
Definition: TileRawChannelMonTool.h:70
TileRawChannelMonTool::Tdsp_fit
@ Tdsp_fit
Definition: TileRawChannelMonTool.h:134
TilePaterMonTool::m_fragIDsToIgnoreDMUerrors
std::vector< int > m_fragIDsToIgnoreDMUerrors
Definition: TilePaterMonTool.h:210
item
Definition: ItemListSvc.h:43
TileDQstatus::cispar
const uint32_t * cispar() const
CIS parameters.
Definition: TileDQstatus.h:152
ManagedMonitorToolBase::lowStat
@ lowStat
Definition: ManagedMonitorToolBase.h:114
SCT_CalibAlgs::nbins
@ nbins
Definition: SCT_CalibNumbers.h:10
TilePaterMonTool::book2D
TH2D * book2D(const std::string &nam, const std::string &tit, int nx, double xmin, double xmax, int ny, double ymin, double ymax)
Implicit version of book2D.
Definition: TilePaterMonTool.h:73
TileRawChannelMonTool::m_efitThresh
double m_efitThresh
Definition: TileRawChannelMonTool.h:88
LArCellBinning.xbins
int xbins
Definition: LArCellBinning.py:163
TilePaterMonTool::isDisconnected
bool isDisconnected(int ros, int drawer, int ch)
Definition: TilePaterMonTool.h:259
ManagedMonitorToolBase::m_managerNameProp
std::string m_managerNameProp
Definition: ManagedMonitorToolBase.h:831
ManagedMonitorToolBase::run
@ run
Definition: ManagedMonitorToolBase.h:115
ManagedMonitorToolBase::m_endOfRun
bool m_endOfRun
Definition: ManagedMonitorToolBase.h:823
TileRawChannelMonTool::fillDsp
StatusCode fillDsp(std::map< int, std::vector< double > > &efitMap, std::map< int, std::vector< double > > &tfitMap)
Definition: TileRawChannelMonTool.cxx:804
TileCalibUtils::getDrawerString
static std::string getDrawerString(unsigned int ros, unsigned int drawer)
Return the drawer name, e.g.
Definition: TileCalibUtils.cxx:145
TileRawChannelMonTool::m_DownLimit
double m_DownLimit
Definition: TileRawChannelMonTool.h:76
TileRawChannelMonTool::LasRun
@ LasRun
Definition: TileRawChannelMonTool.h:125
ManagedMonitorToolBase::m_newLowStat
bool m_newLowStat
Definition: ManagedMonitorToolBase.h:821
TileRawChannelMonTool::m_overlaphists
bool m_overlaphists
Definition: TileRawChannelMonTool.h:71
DeMoScan.index
string index
Definition: DeMoScan.py:364
AthenaPoolExample_Copy.streamName
string streamName
Definition: AthenaPoolExample_Copy.py:39
TilePaterMonTool::m_cabling
const TileCablingService * m_cabling
Definition: TilePaterMonTool.h:204
lumiFormat.lumi
lumi
Definition: lumiFormat.py:106
TileRawData::cell_ID_index
Identifier cell_ID_index(int &index, int &pmt) const
Definition: TileRawData.cxx:65
a
TList * a
Definition: liststreamerinfos.cxx:10
CaloLCW_tf.group
group
Definition: CaloLCW_tf.py:28
h
TileHWID::drawer
int drawer(const HWIdentifier &id) const
extract drawer field from HW identifier
Definition: TileHWID.h:171
python.compareTCTs.ratio
ratio
Definition: compareTCTs.py:295
CondAlgsOpts.found
int found
Definition: CondAlgsOpts.py:101
python.CaloScaleNoiseConfig.str
str
Definition: CaloScaleNoiseConfig.py:78
CaloSwCorrections.time
def time(flags, cells_name, *args, **kw)
Definition: CaloSwCorrections.py:242
ReadFloatFromCool.adc
adc
Definition: ReadFloatFromCool.py:48
TileRawDataContainer::get_unit
UNIT get_unit() const
Definition: TileRawDataContainer.h:60
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
TileRawChannelMonTool::MonoRun
@ MonoRun
Definition: TileRawChannelMonTool.h:129
AthenaMonManager::altprod
@ altprod
Definition: AthenaMonManager.h:49
ManagedMonitorToolBase::eventsBlock
@ eventsBlock
Definition: ManagedMonitorToolBase.h:113
python.envutil.filelist
filelist
print ("Checking files %s..." % fullfile)
Definition: envutil.py:133
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
TileCablingService::channel2hole
static int channel2hole(int ros, int channel)
Definition: TileCablingService.cxx:1946
DEBUG
#define DEBUG
Definition: page_access.h:11
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
TileRawChannelMonTool::PedRun
@ PedRun
Definition: TileRawChannelMonTool.h:127
TilePaterMonTool::book1D
TH1D * book1D(const std::string &nam, const std::string &tit, int nx, double xmin, double xmax)
Implicit version of book1D.
Definition: TilePaterMonTool.h:66
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
xmax
double xmax
Definition: listroot.cxx:61
ManagedMonitorToolBase::all
@ all
Definition: ManagedMonitorToolBase.h:115
beamspotnt.rms
rms
Definition: bin/beamspotnt.py:1266
ManagedMonitorToolBase::deregObject
virtual StatusCode deregObject(const std::string &objName, const std::string &system, Interval_t interval)
De-registers a TObject from the THistSvc, but does NOT delete the object.
Definition: ManagedMonitorToolBase.cxx:1634
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:623
ManagedMonitorToolBase::StreamNameFcn::getDirectoryName
virtual std::string getDirectoryName(const ManagedMonitorToolBase *tool, const MonGroup &group, const std::string &objName, const bool usePreviousInterval)=0
A function that returns TDirectory path in a file that corresponds to a given MonGroup and object nam...
TileRawChannelMonTool::m_nEventsTileMon
int m_nEventsTileMon
Definition: TileRawChannelMonTool.h:144
TileRawChannelMonTool::sumEdsp_fit
@ sumEdsp_fit
Definition: TileRawChannelMonTool.h:138
ManagedMonitorToolBase::lbAverageLuminosity
virtual float lbAverageLuminosity(const EventContext &ctx=Gaudi::Hive::currentContext()) const
Average luminosity (in ub-1 s-1 => 10^30 cm-2 s-1)
Definition: ManagedMonitorToolBase.cxx:1730
str
Definition: BTagTrackIpAccessor.cxx:11
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
python.Logging.manager
manager
Definition: PhysicsAnalysis/D3PDTools/AnaAlgorithm/python/Logging.py:92
TileRawChannelMonTool::m_infoName
std::string m_infoName
Definition: TileRawChannelMonTool.h:174
python.TrigEgammaMonitorHelper.TH1F
def TH1F(name, title, nxbins, bins_par2, bins_par3=None, path='', **kwargs)
Definition: TrigEgammaMonitorHelper.py:24
TileCalibUtils::getDrawerIdx
static unsigned int getDrawerIdx(unsigned int ros, unsigned int drawer)
Returns a drawer hash.
Definition: TileCalibUtils.cxx:60
TileRawChannelMonTool::m_corrup
bool m_corrup[5][64][2][16]
Definition: TileRawChannelMonTool.h:97
TilePaterMonTool::ALL_FF
@ ALL_FF
Definition: TilePaterMonTool.h:62
python.LumiCalcRecover.subdir
subdir
Definition: LumiCalcRecover.py:25
ManagedMonitorToolBase::m_templateHistograms
std::map< Interval_t, std::vector< MgmtParams< TH1 > > > m_templateHistograms
Definition: ManagedMonitorToolBase.h:664
TilePaterMonTool::m_tileHWID
const TileHWID * m_tileHWID
Definition: TilePaterMonTool.h:202
ManagedMonitorToolBase::ATTRIB_X_VS_LB
@ ATTRIB_X_VS_LB
Definition: ManagedMonitorToolBase.h:130
TilePaterMonTool::m_TMDB_EB_cell_names
std::string m_TMDB_EB_cell_names[4]
Definition: TilePaterMonTool.h:231
ManagedMonitorToolBase::Imp::s_svcLocator
static std::atomic< ISvcLocator * > s_svcLocator
Definition: ManagedMonitorToolBase.cxx:38
TileRawChannelMonTool::rangeErrorBar
void rangeErrorBar(double &xmin, double &max, double mean)
Definition: TileRawChannelMonTool.cxx:1841
python.PyAthena.obj
obj
Definition: PyAthena.py:132
ManagedMonitorToolBase::m_trigTranslator
PublicToolHandle< ITriggerTranslatorTool > m_trigTranslator
Definition: ManagedMonitorToolBase.h:847
TileRawChannelMonTool::m_efitMap
std::map< int, std::vector< double > > m_efitMap
Definition: TileRawChannelMonTool.h:85
TMultiGraph1
Definition: TilePaterMonTool.cxx:489
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
ManagedMonitorToolBase::regHist
virtual StatusCode regHist(TH1 *h, const std::string &system, Interval_t interval, MgmtAttr_t histo_mgmt=ATTRIB_MANAGED, const std::string &chain="", const std::string &merge="")
Registers a TH1 (including TH2, TH3, and TProfile) to be included in the output stream using logical ...
Definition: ManagedMonitorToolBase.cxx:1346
TileInfo::ADCmax
int ADCmax() const
Returns the maximum ADC output (10 bits --> 1023)
Definition: TileInfo.h:71
TilePaterMonTool::book1S
TH1S * book1S(const std::string &dir, const std::string &nam, const std::string &tit, int nx, double xmin, double xmax, Interval_t interval=run, MgmtAttr_t attribute=ATTRIB_MANAGED, const std::string &trigChain="", const std::string &mergeAlgo="")
Definition: TilePaterMonTool.cxx:192
TileRawChannelMonTool::CisRamp
@ CisRamp
Definition: TileRawChannelMonTool.h:130
merge
Definition: merge.py:1
AthenaMonManager::noOutput
@ noOutput
Definition: AthenaMonManager.h:49
TileRawChannelMonTool::m_hi_IntegralLimit
double m_hi_IntegralLimit
Definition: TileRawChannelMonTool.h:80
ManagedMonitorToolBase::intervalEnumToString
static std::string intervalEnumToString(Interval_t interval)
Converts a LevelOfDetail_t to a string of the same name.
Definition: ManagedMonitorToolBase.cxx:537
fitman.k
k
Definition: fitman.py:528
ymax
double ymax
Definition: listroot.cxx:64
ManagedMonitorToolBase::m_defaultLBDuration
float m_defaultLBDuration
Definition: ManagedMonitorToolBase.h:895
TileRawChannelMonTool::m_resetAfterSummaryUpdate
bool m_resetAfterSummaryUpdate
Definition: TileRawChannelMonTool.h:169
TileRawChannelMonTool::LedRun
@ LedRun
Definition: TileRawChannelMonTool.h:126