52ac4787fa1e08cf33a37cd732cb69f0fd8159b9
[u/mrichter/AliRoot.git] / TRD / AliTRDdigitsParam.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: AliTRDdigitsParam.cxx 34070 2009-08-04 15:34:53Z cblume $ */
17
18 ///////////////////////////////////////////////////////////////////////////////
19 //                                                                           //
20 // Class containing parameters for digits                                    //
21 //                                                                           //
22 ///////////////////////////////////////////////////////////////////////////////
23
24 #include "AliLog.h"
25
26 #include "AliTRDdigitsParam.h"
27 #include "AliTRDcalibDB.h"
28
29 ClassImp(AliTRDdigitsParam)
30
31 //_____________________________________________________________________________
32 AliTRDdigitsParam::AliTRDdigitsParam()
33   :TObject()
34   ,fCheckOCDB(kTRUE)
35   ,fNTimeBins(0)
36 {
37   //
38   // Default constructor
39   //
40
41   for (Int_t i = 0; i < 540; i++) {
42     fPretriggerPhase[i] = 0;
43   }
44
45 }
46
47 //_____________________________________________________________________________
48 AliTRDdigitsParam::~AliTRDdigitsParam() 
49 {
50   //
51   // Destructor
52   //
53
54 }
55
56 //_____________________________________________________________________________
57 AliTRDdigitsParam::AliTRDdigitsParam(const AliTRDdigitsParam &p)
58   :TObject(p)
59   ,fCheckOCDB(p.fCheckOCDB)
60   ,fNTimeBins(p.fNTimeBins)
61 {
62   //
63   // Copy constructor
64   //
65
66   for (Int_t i = 0; i < 540; i++) {
67     fPretriggerPhase[i] = p.fPretriggerPhase[i];
68   }
69
70 }
71
72 //_____________________________________________________________________________
73 AliTRDdigitsParam &AliTRDdigitsParam::operator=(const AliTRDdigitsParam &p)
74 {
75   //
76   // Assignment operator
77   //
78
79   if (this != &p) {
80     ((AliTRDdigitsParam &) p).Copy(*this);
81   }
82
83   return *this;
84
85 }
86
87 //_____________________________________________________________________________
88 void AliTRDdigitsParam::Copy(TObject &p) const
89 {
90   //
91   // Copy function
92   //
93   
94   AliTRDdigitsParam *target = dynamic_cast<AliTRDdigitsParam*> (&p);
95   if (!target) {
96     return;
97   }  
98
99   target->fCheckOCDB = fCheckOCDB;
100   target->fNTimeBins = fNTimeBins;
101
102   for (Int_t i = 0; i < 540; i++) {
103     target->fPretriggerPhase[i] = fPretriggerPhase[i];
104   }
105
106 }
107
108 //_____________________________________________________________________________
109 Bool_t AliTRDdigitsParam::SetNTimeBins(Int_t ntb)
110 {
111   //
112   // Sets the number of time bins
113   // Per default an automatic consistency check with the corresponding
114   // OCDB entry is performed. This check can be disabled by setting
115   // SetCheckOCDB(kFALSE)
116   //
117
118   fNTimeBins = ntb;
119
120   if (fCheckOCDB) {
121     Int_t nTimeBinsOCDB = AliTRDcalibDB::Instance()->GetNumberOfTimeBins();
122     if (fNTimeBins == nTimeBinsOCDB) {
123       return kTRUE;
124     }
125     else {
126       AliWarning(Form("Number of timebins does not match OCDB value (%d, %d)"
127                      ,fNTimeBins,nTimeBinsOCDB));
128       return kFALSE;
129     }
130   }
131   else {
132     return kTRUE;
133   }
134
135 }