next50 trigger mask in AliHLTGlobalEsdConverterComponent
[u/mrichter/AliRoot.git] / TRD / AliTRDUshortInfo.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: AliTRDUshortInfo.cxx 27946 2008-08-13 15:26:24Z cblume $ */
17
18 ///////////////////////////////////////////////////////////////////////////////
19 //                                                                           //
20 //  Calibration base class for a single ROC                                  //
21 //  Contains one UShort_t value per pad                                      //
22 //  However, values are set and get as float, there are stored internally as //
23 //  (UShort_t) value * 10000                                                 //
24 //                                                                           //
25 ///////////////////////////////////////////////////////////////////////////////
26
27 #include "AliTRDUshortInfo.h"
28
29 ClassImp(AliTRDUshortInfo)
30
31 //_____________________________________________________________________________
32 AliTRDUshortInfo::AliTRDUshortInfo()
33   :TObject()
34   ,fSize(0)
35   ,fData(0)
36 {
37   //
38   // Default constructor
39   //
40
41 }
42
43 //_____________________________________________________________________________
44 AliTRDUshortInfo::AliTRDUshortInfo(Int_t n)
45   :TObject()
46   ,fSize(n)
47   ,fData(0)
48 {
49   //
50   // Constructor that initializes a given size
51   //
52   
53   fData = new UShort_t[fSize];
54   for(Int_t k = 0; k < fSize; k++){
55     fData[k] = 0;
56   }
57
58 }
59
60 //_____________________________________________________________________________
61 AliTRDUshortInfo::AliTRDUshortInfo(const AliTRDUshortInfo &c)
62   :TObject(c)
63   ,fSize(c.fSize)
64   ,fData(0)
65 {
66   //
67   // AliTRDUshortInfo copy constructor
68   //
69
70   Int_t iBin = 0;
71
72   fData = new UShort_t[fSize];
73   for (iBin = 0; iBin < fSize; iBin++) {
74     fData[iBin] = ((AliTRDUshortInfo &) c).fData[iBin];
75   }
76
77 }
78
79 //_____________________________________________________________________________
80 AliTRDUshortInfo::~AliTRDUshortInfo()
81 {
82   //
83   // AliTRDUshortInfo destructor
84   //
85
86   if (fData) {
87     delete [] fData;
88     fData = 0;
89   }
90
91 }
92
93 //_____________________________________________________________________________
94 AliTRDUshortInfo &AliTRDUshortInfo::operator=(const AliTRDUshortInfo &c)
95 {
96   //
97   // Assignment operator
98   //
99
100   if (this == &c) {
101     return *this;
102   }
103
104   fSize = c.fSize;
105
106   if (fData) {
107     delete [] fData;
108   }
109   fData = new UShort_t[fSize];
110   for (Int_t iBin = 0; iBin < fSize; iBin++) {
111     fData[iBin] = c.fData[iBin];
112   }
113
114   return *this;
115
116 }
117
118 //_____________________________________________________________________________
119 void AliTRDUshortInfo::Copy(TObject &c) const
120 {
121   //
122   // Copy function
123   //
124   
125   Int_t iBin = 0;
126
127   ((AliTRDUshortInfo &) c).fSize = fSize;
128
129   if (((AliTRDUshortInfo &) c).fData) delete [] ((AliTRDUshortInfo &) c).fData;
130   ((AliTRDUshortInfo &) c).fData = new UShort_t[fSize];
131   for (iBin = 0; iBin < fSize; iBin++) {
132     ((AliTRDUshortInfo &) c).fData[iBin] = fData[iBin];
133   }
134   
135   TObject::Copy(c);
136
137 }
138
139 //_____________________________________________________________________________
140 void AliTRDUshortInfo::SetSize(Int_t n)
141 {
142   //
143   // Set the size
144   //
145
146   if(fData) delete [] fData;
147   fData = new UShort_t[n];
148
149   fSize = n;
150   
151 }