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)
29 //_____________________________________________________________________________
30 AliTPCSensorTempArray::AliTPCSensorTempArray():AliDCSSensorArray()
33 // AliTPCSensorTempArray default constructor
37 //_____________________________________________________________________________
38 AliTPCSensorTempArray::AliTPCSensorTempArray(Int_t run) : AliDCSSensorArray()
41 // Read configuration from OCDB
46 AliCDBManager::Instance()->Get("TPC/Config/Temperature",run);
47 TTree *tree = (TTree*) entry->GetObject();
48 fSensors = AliTPCSensorTemp::ReadTree(tree);
49 fSensors->BypassStreamer(kFALSE);
52 //_____________________________________________________________________________
53 AliTPCSensorTempArray::AliTPCSensorTempArray(UInt_t startTime, UInt_t endTime,
58 // AliTPCSensorTempArray constructor for Shuttle preprocessor
59 // (confTree read from OCDB)
61 fSensors = AliTPCSensorTemp::ReadTree(confTree);
62 fSensors->BypassStreamer(kFALSE);
63 fStartTime = TTimeStamp(startTime);
64 fEndTime = TTimeStamp(endTime);
67 //_____________________________________________________________________________
68 AliTPCSensorTempArray::AliTPCSensorTempArray(const char *fname) :
72 // AliTPCSensorTempArray constructor
74 fSensors = AliTPCSensorTemp::ReadList(fname);
75 fSensors->BypassStreamer(kFALSE);
79 //_____________________________________________________________________________
80 AliTPCSensorTempArray::AliTPCSensorTempArray(const AliTPCSensorTempArray &c):
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 *dbEntry)
122 // Read list of temperature sensors from text file
124 AliCDBEntry *entry = AliCDBManager::Instance()->Get(dbEntry);
125 TTree *tree = (TTree*) entry->GetObject();
126 fSensors = AliTPCSensorTemp::ReadTree(tree);
130 //_____________________________________________________________________________
131 AliTPCSensorTemp* AliTPCSensorTempArray::GetSensor(Int_t type, Int_t side, Int_t sector, Int_t num)
134 // Return sensor information for sensor specified by type, side, sector and num
136 Int_t nsensors = fSensors->GetEntries();
137 for (Int_t isensor=0; isensor<nsensors; isensor++) {
138 AliTPCSensorTemp *entry = (AliTPCSensorTemp*)fSensors->At(isensor);
139 if (entry->GetSide() == side &&
140 entry->GetType() == type &&
141 entry->GetSector() == sector &&
142 entry->GetNum() == num ) return entry;
146 //_____________________________________________________________________________
148 AliTPCSensorTemp* AliTPCSensorTempArray::GetSensor(Int_t IdDCS){
149 return dynamic_cast<AliTPCSensorTemp*>(AliDCSSensorArray::GetSensor(IdDCS));
151 //_____________________________________________________________________________
153 AliTPCSensorTemp* AliTPCSensorTempArray::GetSensor(Double_t x, Double_t y, Double_t z){
154 return dynamic_cast<AliTPCSensorTemp*>(AliDCSSensorArray::GetSensor(x,y,z));