///////////////////////////////////////////////////////////////////////////////
/// \class RAT::GeoSolidCollectionFactory
///
/// \brief  Factory for solid collections.
///
/// \author Phil G Jones <p.g.jones@qmul.ac.uk>
/// \author Aksel Hallin <aksel.hallin@ualberta.ca> -- contact person
///
/// REVISION HISTORY:\n
/// 	2013-11-27 : P G Jones - New file. \n
///
/// \details Factory for solids that are collected together without individual
/// translations. Basically a helper factory.
///
///////////////////////////////////////////////////////////////////////////////

#ifndef __RAT_GeoSolidCollectionFactory_hh__
#define __RAT_GeoSolidCollectionFactory_hh__

#include <RAT/GeoSolidFactory.hh>

#include <string>

class G4VSolid;
class G4LogicalVolume;
class G4Material;

namespace RAT
{

class GeoSolidCollectionFactory : public GeoSolidFactory
{
public:
  /// Construct a GeoSolidCollectionFactory, name the factory solidCollection
  GeoSolidCollectionFactory() : GeoSolidFactory( "solidCollection" ) { }

  /// Construct the physical volume
  ///
  /// @param[in] table defines the volume
  /// @param[in] checkOverlaps when placing
  virtual void Construct( DBLinkPtr table,
                          const bool checkOverlaps );
};

} //::RAT

#endif