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 an IceCube In-ice Digital Optical Module (IDOM).
21 // Basically this class provides an IceCube tailored user interface
22 // to the functionality of the class AliDevice via the generic IceDOM
23 // and IceGOM classes.
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(IceIDOM) // Class implementation to enable ROOT I/O
36 IceIDOM::IceIDOM() : IceDOM()
38 // Default constructor.
40 ///////////////////////////////////////////////////////////////////////////
43 // Default destructor.
45 ///////////////////////////////////////////////////////////////////////////
46 IceIDOM::IceIDOM(const IceIDOM& m) : IceDOM(m)
50 ///////////////////////////////////////////////////////////////////////////
51 TObject* IceIDOM::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 IceIDOM objects or objects derived from IceIDOM
59 // via tha AddDevice memberfunction, provided these derived classes also have
60 // a proper Clone memberfunction.
62 IceIDOM* m=new IceIDOM(*this);
65 if (strlen(name)) m->SetName(name);
69 ///////////////////////////////////////////////////////////////////////////