Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
TArrayS.h
Go to the documentation of this file.
1 // @(#)root/cont:$Id$
2 // Author: Rene Brun 06/03/95
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef ROOT_TArrayS
13 #define ROOT_TArrayS
14 
15 
16 //////////////////////////////////////////////////////////////////////////
17 // //
18 // TArrayS //
19 // //
20 // Array of shorts (16 bits per element). //
21 // //
22 //////////////////////////////////////////////////////////////////////////
23 
24 #include "TArray.h"
25 
26 
27 class TArrayS : public TArray {
28 
29 public:
30  Short_t *fArray; //[fN] Array of fN shorts
31 
32  TArrayS();
33  TArrayS(Int_t n);
34  TArrayS(Int_t n, const Short_t *array);
35  TArrayS(const TArrayS &array);
36  TArrayS &operator=(const TArrayS &rhs);
37  virtual ~TArrayS();
38 
39  void Adopt(Int_t n, Short_t *array);
40  void AddAt(Short_t c, Int_t i);
41  Short_t At(Int_t i) const ;
42  void Copy(TArrayS &array) const {array.Set(fN,fArray);}
43  const Short_t *GetArray() const { return fArray; }
44  Short_t *GetArray() { return fArray; }
45  Double_t GetAt(Int_t i) const { return At(i); }
46  Stat_t GetSum() const {Stat_t sum=0; for (Int_t i=0;i<fN;i++) sum+=fArray[i]; return sum;}
47  void Reset() {memset(fArray, 0,fN*sizeof(Short_t));}
48  void Reset(Short_t val) {for (Int_t i=0;i<fN;i++) fArray[i] = val;}
49  void Set(Int_t n);
50  void Set(Int_t n, const Short_t *array);
51  void SetAt(Double_t v, Int_t i) { AddAt((Short_t)v, i); }
52  Short_t &operator[](Int_t i);
53  Short_t operator[](Int_t i) const;
54 
55  ClassDef(TArrayS,1) //Array of shorts
56 };
57 
58 #if defined R__TEMPLATE_OVERLOAD_BUG
59 template <>
60 #endif
61 inline TBuffer &operator>>(TBuffer &buf, TArrayS *&obj)
62 {
63  // Read TArrayS object from buffer.
64 
65  obj = (TArrayS *) TArray::ReadArray(buf, TArrayS::Class());
66  return buf;
67 }
68 
69 #if defined R__TEMPLATE_OVERLOAD_BUG
70 template <>
71 #endif
72 inline TBuffer &operator<<(TBuffer &buf, const TArrayS *obj)
73 {
74  // Write a TArrayS object into buffer
75  return buf << (const TArray*)obj;
76 }
77 
78 inline Short_t TArrayS::At(Int_t i) const
79 {
80  if (!BoundsOk("TArrayS::At", i)) return 0;
81  return fArray[i];
82 }
83 
84 inline Short_t &TArrayS::operator[](Int_t i)
85 {
86  if (!BoundsOk("TArrayS::operator[]", i))
87  i = 0;
88  return fArray[i];
89 }
90 
91 inline Short_t TArrayS::operator[](Int_t i) const
92 {
93  if (!BoundsOk("TArrayS::operator[]", i)) return 0;
94  return fArray[i];
95 }
96 
97 #endif