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";
31 //_____________________________________________________________________________
32 AliTPCSensorTempArray::AliTPCSensorTempArray():AliDCSSensorArray(),
33 fAmandaString(kAmandaString)
36 // AliTPCSensorTempArray default constructor
40 //_____________________________________________________________________________
41 AliTPCSensorTempArray::AliTPCSensorTempArray(Int_t prevRun) :
42 AliDCSSensorArray(prevRun,"TPC/Calib/Temperature"),
43 fAmandaString(kAmandaString)
46 //_____________________________________________________________________________
47 AliTPCSensorTempArray::AliTPCSensorTempArray(UInt_t startTime, UInt_t endTime,
50 fAmandaString(kAmandaString)
53 // AliTPCSensorTempArray default constructor
55 char *expPath = gSystem->ExpandPathName(filepath);
56 TString filename(expPath);
58 filename.Append(kFname);
59 fSensors = AliTPCSensorTemp::ReadList(filename.Data());
60 fStartTime = TTimeStamp(startTime);
61 fEndTime = TTimeStamp(endTime);
65 //_____________________________________________________________________________
66 AliTPCSensorTempArray::AliTPCSensorTempArray(const char *fname) :
68 fAmandaString(kAmandaString)
71 // AliTPCSensorTempArray constructor
73 fSensors = AliTPCSensorTemp::ReadList(fname);
74 fSensors->BypassStreamer(kFALSE);
78 //_____________________________________________________________________________
79 AliTPCSensorTempArray::AliTPCSensorTempArray(const AliTPCSensorTempArray &c):
81 fAmandaString(c.fAmandaString)
84 // AliTPCSensorTempArray copy constructor
89 ///_____________________________________________________________________________
90 AliTPCSensorTempArray::~AliTPCSensorTempArray()
93 // AliTPCSensorTempArray destructor
97 //_____________________________________________________________________________
98 AliTPCSensorTempArray &AliTPCSensorTempArray::operator=(const AliTPCSensorTempArray &c)
101 // Assignment operator
104 if (this != &c) ((AliTPCSensorTempArray &) c).Copy(*this);
109 //_____________________________________________________________________________
110 void AliTPCSensorTempArray::Copy(TObject &c) const
118 //_____________________________________________________________________________
119 void AliTPCSensorTempArray::ReadSensors(const char *fname)
122 // Read list of temperature sensors from text file
124 fSensors = AliTPCSensorTemp::ReadList(fname);
126 //_____________________________________________________________________________
127 void AliTPCSensorTempArray::SetGraph(TMap *map)
130 // Read graphs from DCS maps
132 AliDCSSensorArray::SetGraph(map,fAmandaString.Data());
134 //_____________________________________________________________________________
135 void AliTPCSensorTempArray::MakeSplineFit(TMap *map)
138 // Make spline fits from DCS maps
140 AliDCSSensorArray::MakeSplineFit(map,fAmandaString.Data());
144 //_____________________________________________________________________________
145 TMap* AliTPCSensorTempArray::ExtractDCS(TMap *dcsMap)
148 // Extract temperature graphs from DCS maps
151 TMap *values = AliDCSSensorArray::ExtractDCS(dcsMap,fAmandaString.Data());
155 //_____________________________________________________________________________
156 AliTPCSensorTemp* AliTPCSensorTempArray::GetSensor(Int_t type, Int_t side, Int_t sector, Int_t num)
159 // Return sensor information for sensor specified by type, side, sector and num
161 Int_t nsensors = fSensors->GetEntries();
162 for (Int_t isensor=0; isensor<nsensors; isensor++) {
163 AliTPCSensorTemp *entry = (AliTPCSensorTemp*)fSensors->At(isensor);
164 if (entry->GetSide() == side &&
165 entry->GetType() == type &&
166 entry->GetSector() == sector &&
167 entry->GetNum() == num ) return entry;
171 //_____________________________________________________________________________
173 AliTPCSensorTemp* AliTPCSensorTempArray::GetSensor(Int_t IdDCS){
174 return dynamic_cast<AliTPCSensorTemp*>(AliDCSSensorArray::GetSensor(IdDCS));
176 //_____________________________________________________________________________
178 AliTPCSensorTemp* AliTPCSensorTempArray::GetSensor(Double_t x, Double_t y, Double_t z){
179 return dynamic_cast<AliTPCSensorTemp*>(AliDCSSensorArray::GetSensor(x,y,z));