The present commit corresponds to an important change in the way the
[u/mrichter/AliRoot.git] / TRD / AliTRDarrayS.cxx
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line 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. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15
16 /* $Id: AliTRDarrayS.cxx,v Exp $ */
17
18 ///////////////////////////////////////////////////////////////////////
19 //                                                                   //  
20 // Added additional functionality to the original TArrayS.           //
21 //  - Multiple inheritance from TObject                              //
22 //  - Function Expand() allows to expand the array without           //
23 //    deleting the array contents                                    //
24 //                                                                   //
25 // Origin:  Marian Ivanov, Uni. of Bratislava, ivanov@fmph.uniba.sk  // 
26 //                                                                   //  
27 ///////////////////////////////////////////////////////////////////////
28
29 #include "AliTRDarrayS.h"
30
31 ClassImp(AliTRDarrayS)
32
33 //_____________________________________________________________________________
34 AliTRDarrayS::AliTRDarrayS():TArrayS()
35 {
36   //
37   // Default constructor
38   //
39
40 }
41
42 //_____________________________________________________________________________
43 AliTRDarrayS::~AliTRDarrayS()
44 {
45   //
46   // Default destructor
47   //
48
49   if (fArray) {
50     delete [] fArray;
51     fArray = 0;
52   }
53
54 }
55
56 //_____________________________________________________________________________
57 void AliTRDarrayS::Copy(TObject &a) const
58 {
59   //
60   // Copy function
61   //
62
63   TObject::Copy(a);
64   TArrayS::Copy(((TArrayS &) a));
65
66 }
67
68 //_____________________________________________________________________________
69 void AliTRDarrayS::Expand(Int_t n)
70 {
71   //
72   // Sets the  array size of the TArrayF object to <n> integers and copies
73   // the old array.
74   // If n < 0 leave the array unchanged.
75   // The user is responsible for the appropriate size of the array.
76   //
77
78   if (n < 0) {
79     return;  
80   }
81
82   fArray = (Short_t *) TStorage::ReAlloc(fArray
83                                         ,n *sizeof(Short_t)
84                                         ,fN*sizeof(Short_t));
85
86   if (fArray != 0) {
87     fN = n;
88   } 
89
90 }
91