1 /*******************************************************************************
2 * Copyright(c) 2003, IceCube Experiment at the South Pole. All rights reserved.
4 * Author: The IceCube RALICE-based Offline Project.
5 * Contributors are mentioned in the code where appropriate.
7 * Permission to use, copy, modify and distribute this software and its
8 * documentation strictly for non-commercial purposes is hereby granted
9 * without fee, provided that the above copyright notice appears in all
10 * copies and that both the copyright notice and this permission notice
11 * appear in the supporting documentation.
12 * The authors make no claims about the suitability of this software for
13 * any purpose. It is provided "as is" without express or implied warranty.
14 *******************************************************************************/
18 ///////////////////////////////////////////////////////////////////////////
20 // Signal/Hit handling of a generic IceCube Digital Optical Module (DOM).
21 // Basically this class provides an IceCube tailored user interface
22 // to the functionality of the class AliDevice via the generic IceGOM class.
24 // See IceGOM for some usage examples.
26 //--- Author: Nick van Eijndhoven 23-jun-2004 Utrecht University
27 //- Modified: NvE $Date$ Utrecht University
28 ///////////////////////////////////////////////////////////////////////////
31 #include "Riostream.h"
33 ClassImp(IceDOM) // Class implementation to enable ROOT I/O
35 IceDOM::IceDOM() : IceGOM()
37 // Default constructor.
39 ///////////////////////////////////////////////////////////////////////////
42 // Default destructor.
44 ///////////////////////////////////////////////////////////////////////////
45 IceDOM::IceDOM(const IceDOM& m) : IceGOM(m)
49 ///////////////////////////////////////////////////////////////////////////
50 TObject* IceDOM::Clone(const char* name) const
52 // Make a deep copy of the current object and provide the pointer to the copy.
53 // This memberfunction enables automatic creation of new objects of the
54 // correct type depending on the object type, a feature which may be very useful
55 // for containers like AliEvent when adding objects in case the
56 // container owns the objects. This feature allows e.g. AliEvent
57 // to store either IceDOM objects or objects derived from IceDOM
58 // via tha AddDevice memberfunction, provided these derived classes also have
59 // a proper Clone memberfunction.
61 IceDOM* m=new IceDOM(*this);
64 if (strlen(name)) m->SetName(name);
68 ///////////////////////////////////////////////////////////////////////////