]>
Commit | Line | Data |
---|---|---|
8026dac6 | 1 | /******************************************************************************* |
2 | * Copyright(c) 2003, IceCube Experiment at the South Pole. All rights reserved. | |
3 | * | |
4 | * Author: The IceCube RALICE-based Offline Project. | |
5 | * Contributors are mentioned in the code where appropriate. | |
6 | * | |
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 | *******************************************************************************/ | |
00b6d74f | 15 | |
16 | // $Id$ | |
17 | ||
18 | /////////////////////////////////////////////////////////////////////////// | |
19 | // Class IceDOM | |
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. | |
23 | // | |
24 | // See IceGOM for some usage examples. | |
25 | // | |
26 | //--- Author: Nick van Eijndhoven 23-jun-2004 Utrecht University | |
27 | //- Modified: NvE $Date$ Utrecht University | |
28 | /////////////////////////////////////////////////////////////////////////// | |
29 | ||
30 | #include "IceDOM.h" | |
31 | #include "Riostream.h" | |
32 | ||
33 | ClassImp(IceDOM) // Class implementation to enable ROOT I/O | |
34 | ||
35 | IceDOM::IceDOM() : IceGOM() | |
36 | { | |
37 | // Default constructor. | |
38 | } | |
39 | /////////////////////////////////////////////////////////////////////////// | |
40 | IceDOM::~IceDOM() | |
41 | { | |
42 | // Default destructor. | |
43 | } | |
44 | /////////////////////////////////////////////////////////////////////////// | |
45 | IceDOM::IceDOM(const IceDOM& m) : IceGOM(m) | |
46 | { | |
47 | // Copy constructor. | |
48 | } | |
49 | /////////////////////////////////////////////////////////////////////////// | |
50 | TObject* IceDOM::Clone(const char* name) const | |
51 | { | |
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. | |
60 | ||
61 | IceDOM* m=new IceDOM(*this); | |
62 | if (name) | |
63 | { | |
64 | if (strlen(name)) m->SetName(name); | |
65 | } | |
66 | return m; | |
67 | } | |
68 | /////////////////////////////////////////////////////////////////////////// |