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