Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-02-21 10:00:30

0001 /***********************************************************************************\
0002 * (c) Copyright 1998-2019 CERN for the benefit of the LHCb and ATLAS collaborations *
0003 *                                                                                   *
0004 * This software is distributed under the terms of the Apache version 2 licence,     *
0005 * copied verbatim in the file "LICENSE".                                            *
0006 *                                                                                   *
0007 * In applying this licence, CERN does not waive the privileges and immunities       *
0008 * granted to it by virtue of its status as an Intergovernmental Organization        *
0009 * or submit itself to any jurisdiction.                                             *
0010 \***********************************************************************************/
0011 #ifndef HISTOGRAMSVC_BASE_H
0012 #define HISTOGRAMSVC_BASE_H
0013 
0014 #include "GaudiKernel/Kernel.h"
0015 #include <iostream>
0016 
0017 class TObject;
0018 
0019 /*
0020  *    Gaudi namespace declaration
0021  */
0022 namespace Gaudi {
0023 
0024   /**@class HistogramBase HistogramBase.h HistogramSvc/HistogramBase.h
0025    *
0026    *   Common base class for all histograms
0027    *   Use is solely functional to minimize dynamic_casts inside HistogramSvc
0028    *
0029    *   @author  M.Frank
0030    *   @version 1.0
0031    */
0032   class GAUDI_API HistogramBase {
0033   public:
0034     /// ROOT object implementation
0035     virtual TObject* representation() const = 0;
0036     /// Adopt ROOT histogram representation
0037     virtual void adoptRepresentation( TObject* rep ) = 0;
0038     /// Print histogram to output stream
0039     virtual std::ostream& print( std::ostream& s ) const = 0;
0040     /// Write (binary) histogram to output stream
0041     virtual std::ostream& write( std::ostream& s ) const = 0;
0042     /// Write (binary) histogram to file
0043     virtual int write( const char* file_name ) const = 0;
0044     virtual ~HistogramBase()                         = default;
0045   }; // class
0046 
0047 } // namespace Gaudi
0048 
0049 #endif // HISTOGRAMSVC_BASE_H