Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:57:45

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 // ============================================================================
0012 #ifndef GAUDIALG_AIDA2ROOT_H
0013 #define GAUDIALG_AIDA2ROOT_H 1
0014 // ============================================================================
0015 // Include files
0016 // ============================================================================
0017 #include "GaudiKernel/Kernel.h"
0018 // ============================================================================
0019 // Forward declarations
0020 // ============================================================================
0021 namespace AIDA {
0022   class IBaseHistogram;
0023   class IHistogram;
0024   class IHistogram1D;
0025   class IHistogram2D;
0026   class IHistogram3D;
0027   class IProfile1D;
0028   class IProfile2D;
0029 } // namespace AIDA
0030 // ============================================================================
0031 // ROOT
0032 // ============================================================================
0033 class TH1D;
0034 class TH2D;
0035 class TH3D;
0036 class TProfile;
0037 class TProfile2D;
0038 class TObject;
0039 // ============================================================================
0040 namespace Gaudi {
0041   namespace Utils {
0042     // ========================================================================
0043     /** @class Aida2ROOT Aida2ROOT.h GaudiKernel/Aida2ROOT.h
0044      *
0045      *  Accessor to underlying ROOT-representation of
0046      *  transient histograms
0047      *  The actual code is imported from Bender project.
0048      *
0049      *  It relies on PI implementation of AIDA interface,
0050      *  modified by Markus FRANK.
0051      *
0052      *  @see Gaudi::H1D
0053      *  @see Gaudi::H2D
0054      *  @see Gaudi::H3D
0055      *  @see Gaudi::Profile1D
0056      *  @see Gaudi::Profile2D
0057      *
0058      *  @see AIDA::IHistogram1D
0059      *  @see AIDA::IHistogram2D
0060      *  @see AIDA::IHistogram3D
0061      *  @see AIDA::IProfile1D
0062      *  @see AIDA::IProfile2D
0063      *
0064      *  @author Vanya BELYAEV ibelyaev@physics.syr.edu
0065      *  @date   2007-01-23
0066      */
0067     class GAUDI_API Aida2ROOT {
0068     public:
0069       /// get the underlying pointer for 1D-histogram
0070       static TH1D*       aida2root( AIDA::IHistogram1D* aida );
0071       static const TH1D* aida2root( const AIDA::IHistogram1D* aida );
0072       /// get the underlying pointer for 2D-histogram
0073       static TH2D*       aida2root( AIDA::IHistogram2D* aida );
0074       static const TH2D* aida2root( const AIDA::IHistogram2D* aida );
0075       /// get the underlying pointer for 3D-histogram
0076       static TH3D*       aida2root( AIDA::IHistogram3D* aida );
0077       static const TH3D* aida2root( const AIDA::IHistogram3D* aida );
0078       /// get the underlying pointer for 1D-profile
0079       static TProfile*       aida2root( AIDA::IProfile1D* aida );
0080       static const TProfile* aida2root( const AIDA::IProfile1D* aida );
0081       /// get the underlying pointer for 2D-profile
0082       static TProfile2D*       aida2root( AIDA::IProfile2D* aida );
0083       static const TProfile2D* aida2root( const AIDA::IProfile2D* aida );
0084       /// get root representation for other cases
0085       static TObject*       aida2root( AIDA::IHistogram* aida );
0086       static const TObject* aida2root( const AIDA::IHistogram* aida );
0087     };
0088     // ========================================================================
0089   } // namespace Utils
0090   // ==========================================================================
0091 } // end of namespace Gaudi
0092 // ============================================================================
0093 // The END
0094 // ============================================================================
0095 #endif // GAUDIALG_AIDA2ROOT_H