Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-31 09:21:49

0001 //
0002 // ********************************************************************
0003 // * License and Disclaimer                                           *
0004 // *                                                                  *
0005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
0006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
0007 // * conditions of the Geant4 Software License,  included in the file *
0008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
0009 // * include a list of copyright holders.                             *
0010 // *                                                                  *
0011 // * Neither the authors of this software system, nor their employing *
0012 // * institutes,nor the agencies providing financial support for this *
0013 // * work  make  any representation or  warranty, express or implied, *
0014 // * regarding  this  software system or assume any liability for its *
0015 // * use.  Please see the license in the file  LICENSE  and URL above *
0016 // * for the full disclaimer and the limitation of liability.         *
0017 // *                                                                  *
0018 // * This  code  implementation is the result of  the  scientific and *
0019 // * technical work of the GEANT4 collaboration.                      *
0020 // * By using,  copying,  modifying or  distributing the software (or *
0021 // * any work based  on the software)  you  agree  to acknowledge its *
0022 // * use  in  resulting  scientific  publications,  and indicate your *
0023 // * acceptance of all terms of the Geant4 Software license.          *
0024 // ********************************************************************
0025 //
0026 /*
0027  * =============================================================================
0028  *
0029  *       Filename:  CexmcException.hh
0030  *
0031  *    Description:  cexmc exceptions
0032  *
0033  *        Version:  1.0
0034  *        Created:  04.11.2009 00:00:58
0035  *       Revision:  none
0036  *       Compiler:  gcc
0037  *
0038  *         Author:  Alexey Radkov (), 
0039  *        Company:  PNPI
0040  *
0041  * =============================================================================
0042  */
0043 
0044 #ifndef CEXMC_EXCEPTION_HH
0045 #define CEXMC_EXCEPTION_HH
0046 
0047 #include <stdexcept>
0048 #include <G4Types.hh>
0049 
0050 
0051 enum  CexmcExceptionType
0052 {
0053     CexmcUnknownException,
0054     CexmcSystemException,
0055     CexmcEventActionIsNotInitialized,
0056     CexmcCmdLineParseException,
0057     CexmcPreinitException,
0058     CexmcFileCompressException,
0059     CexmcReadProjectIncomplete,
0060     CexmcProjectExists,
0061     CexmcCmdIsNotAllowed,
0062     CexmcBadAngularRange,
0063     CexmcBadThreshold,
0064     CexmcBadCalorimeterTriggerAlgorithm,
0065     CexmcBadOCVetoAlgorithm,
0066     CexmcBadOCVetoFraction,
0067     CexmcCalorimeterRegionNotInitialized,
0068     CexmcCalorimeterGeometryDataNotInitialized,
0069     CexmcMultipleDetectorRoles,
0070     CexmcKinematicsException,
0071     CexmcPoorEventData,
0072     CexmcIncompatibleGeometry,
0073     CexmcIncompleteProductionModel,
0074     CexmcIncompatibleProductionModel,
0075     CexmcBeamAndIncidentParticlesMismatch,
0076     CexmcInvalidAngularRange,
0077 #ifdef CEXMC_USE_CUSTOM_FILTER
0078     CexmcCFBadSource,
0079     CexmcCFParseError,
0080     CexmcCFUninitialized,
0081     CexmcCFUninitializedVector,
0082     CexmcCFUnexpectedContext,
0083     CexmcCFUnexpectedFunction,
0084     CexmcCFUnexpectedVariable,
0085     CexmcCFUnexpectedVariableUsage,
0086     CexmcCFUnexpectedVectorIndex,
0087 #endif
0088     CexmcWeirdException
0089 };
0090 
0091 
0092 class  CexmcException : public std::exception
0093 {
0094     public:
0095         explicit CexmcException( CexmcExceptionType  type );
0096 
0097         ~CexmcException() throw();
0098 
0099     public:
0100         const char *  what( void ) const throw();
0101 
0102     private:
0103         CexmcExceptionType  type;
0104 };
0105 
0106 
0107 void  ThrowExceptionIfProjectIsRead( CexmcExceptionType  type,
0108                                      G4bool  extraCond = true );
0109 
0110 
0111 #endif
0112