]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/AliArrayS.cxx
Changes due to a new class AliComplexCluster. Forward declarations.
[u/mrichter/AliRoot.git] / TPC / AliArrayS.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 /*
17 $Log$
18 Revision 1.1.4.2  2000/04/10 11:32:37  kowal2
19
20 "ROOT"-based class with some extra functionality
21
22 */
23
24 ///////////////////////////////////////////////////////////////////////
25 //   Added additional functionality  to original TArrayS              //
26 //   multiple inheritance from TObject to be possible use automatic   //
27 //   branch mechanism for tree
28 //   function Expand to be possible expand array without deleting     //
29 //   array contents                                                  //                  //
30 //                                                                   //
31 //  Origin:  Marian Ivanov, Uni. of Bratislava, ivanov@fmph.uniba.sk // 
32 //                                                                   //  
33 ///////////////////////////////////////////////////////////////////////
34 #include "AliArrayS.h"
35 ClassImp(AliArrayS)
36 void AliArrayS::Expand(Int_t n)
37 {
38   //
39   // Set array size of TArrayS object to n integers and copy old array
40   // If n<0 leave array unchanged.
41   // user are responsible for apropriate size of array
42   // 
43   if (n < 0) return;  
44   fArray = (Short_t*)  TStorage::ReAlloc(fArray, n * sizeof(UShort_t),fN * sizeof(UShort_t));
45   if (fArray!=0) fN= n; 
46   else fN =0;
47 }
48
49
50
51 void AliArrayS::Streamer(TBuffer &R__b)
52 {
53    // Stream an object of class AliTPC.
54
55    if (R__b.IsReading()) {
56       Version_t R__v = R__b.ReadVersion(); if (R__v) { }
57       TObject::Streamer(R__b);     
58       //read pad parameters
59       R__b >> fN;
60       if (fArray!=0){
61         delete [] fArray;
62         fArray =0;
63       }
64       if (fN>0){
65         fArray = new Short_t[fN];
66         R__b.ReadFastArray(fArray,fN); 
67       }
68    } else {
69       R__b.WriteVersion(AliArrayS::IsA());
70       TObject::Streamer(R__b);   
71       R__b << fN;      
72       if (fN>0) R__b.WriteFastArray(fArray,fN); 
73    }
74 }
75