1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
17 ///////////////////////////////////////////////////////////////////////////////
19 // TPC calibration class for parameters which saved per pad //
20 // Authors: Marian Ivanov and Haavard Helstrup //
22 ///////////////////////////////////////////////////////////////////////////////
24 #include "AliTPCSensorTempArray.h"
26 ClassImp(AliTPCSensorTempArray)
28 const char kFname[] = "TempSensor.txt";
29 const char kAmandaString[] = "tpc_temp:PT_%d.Temperature";
30 const Int_t kMinGraph = 10; // minimum #points of graph to be fitted
31 const Int_t kMinPoints = 10; // minimum number of points per knot in fit
32 const Int_t kIter = 10; // number of iterations for spline fit
33 const Double_t kMaxDelta = 0.00; // precision parameter for spline fit
34 const Int_t kFitReq = 2; // fit requirement, 2 = continuous 2nd derivative
36 //_____________________________________________________________________________
37 AliTPCSensorTempArray::AliTPCSensorTempArray():AliDCSSensorArray(),
38 fAmandaString(kAmandaString)
41 // AliTPCSensorTempArray default constructor
45 //_____________________________________________________________________________
46 AliTPCSensorTempArray::AliTPCSensorTempArray(Int_t prevRun) :
47 AliDCSSensorArray(prevRun,"TPC/Calib/Temperature"),
48 fAmandaString(kAmandaString)
51 //_____________________________________________________________________________
52 AliTPCSensorTempArray::AliTPCSensorTempArray(UInt_t startTime, UInt_t endTime,
55 fAmandaString(kAmandaString)
58 // AliTPCSensorTempArray default constructor
60 char *expPath = gSystem->ExpandPathName(filepath);
61 TString filename(expPath);
63 filename.Append(kFname);
64 fSensors = AliTPCSensorTemp::ReadListInd(filename.Data(),fFirstSensor,fLastSensor);
65 fStartTime = TTimeStamp(startTime);
66 fEndTime = TTimeStamp(endTime);
70 //_____________________________________________________________________________
71 AliTPCSensorTempArray::AliTPCSensorTempArray(const char *fname) :
73 fAmandaString(kAmandaString)
76 // AliTPCSensorTempArray constructor
78 fSensors = AliTPCSensorTemp::ReadListInd(fname,fFirstSensor,fLastSensor);
79 fSensors->BypassStreamer(kFALSE);
83 //_____________________________________________________________________________
84 AliTPCSensorTempArray::AliTPCSensorTempArray(const AliTPCSensorTempArray &c):
86 fAmandaString(c.fAmandaString)
89 // AliTPCSensorTempArray copy constructor
94 ///_____________________________________________________________________________
95 AliTPCSensorTempArray::~AliTPCSensorTempArray()
98 // AliTPCSensorTempArray destructor
102 //_____________________________________________________________________________
103 AliTPCSensorTempArray &AliTPCSensorTempArray::operator=(const AliTPCSensorTempArray &c)
106 // Assignment operator
109 if (this != &c) ((AliTPCSensorTempArray &) c).Copy(*this);
114 //_____________________________________________________________________________
115 void AliTPCSensorTempArray::Copy(TObject &c) const
123 //_____________________________________________________________________________
124 void AliTPCSensorTempArray::ReadSensors(const char *fname)
127 // Read list of temperature sensors from text file
129 fSensors = AliTPCSensorTemp::ReadListInd(fname,fFirstSensor,fLastSensor);
131 //_____________________________________________________________________________
132 void AliTPCSensorTempArray::SetGraph(TMap *map)
135 // Read graphs from DCS maps
137 AliDCSSensorArray::SetGraph(map,fAmandaString.Data());
139 //_____________________________________________________________________________
140 void AliTPCSensorTempArray::MakeSplineFit(TMap *map)
143 // Make spline fits from DCS maps
145 AliDCSSensorArray::MakeSplineFit(map,fAmandaString.Data());
149 //_____________________________________________________________________________
150 TMap* AliTPCSensorTempArray::ExtractDCS(TMap *dcsMap)
153 // Extract temperature graphs from DCS maps
156 TMap *values = AliDCSSensorArray::ExtractDCS(dcsMap,fAmandaString.Data());