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 **************************************************************************/
18 #include "AliMUONCalibrationData.h"
20 #include "AliCDBEntry.h"
21 #include "AliCDBManager.h"
22 #include "AliCDBStorage.h"
23 #include "AliMUONCalibParam.h"
25 #include "AliMUONV3DStore.h"
26 #include "Riostream.h"
28 ClassImp(AliMUONCalibrationData)
30 //_____________________________________________________________________________
31 AliMUONCalibrationData::AliMUONCalibrationData(Int_t runNumber,
32 Bool_t deferredInitialization)
35 fRunNumber(runNumber),
39 if ( deferredInitialization == kFALSE )
47 //_____________________________________________________________________________
48 AliMUONCalibrationData::~AliMUONCalibrationData()
54 //_____________________________________________________________________________
56 AliMUONCalibrationData::GetEntry(const char* path) const
58 AliInfo(Form("Fetching %s from Condition DataBase for run %d",path,fRunNumber));
60 AliCDBManager* man = AliCDBManager::Instance();
61 if (!man->IsDefaultStorageSet())
63 AliError("No default CDB storage set !");
68 AliCDBStorage* storage = man->GetDefaultStorage();
70 AliCDBEntry* entry = storage->Get(path,fRunNumber);
74 //_____________________________________________________________________________
76 AliMUONCalibrationData::Gain(Int_t detElemId,
77 Int_t manuId, Int_t manuChannel) const
79 AliMUONCalibParam* gain =
80 static_cast<AliMUONCalibParam*>(Gains()->Get(detElemId,manuId,manuChannel));
83 AliError(Form("Could not get gain for detElemId=%d manuId=%d "
84 "manuChannel=%d",detElemId,manuId,manuChannel));
89 //_____________________________________________________________________________
91 AliMUONCalibrationData::Gains() const
95 AliCDBEntry* entry = GetEntry("MUON/Calib/Gains");
98 fGains = dynamic_cast<AliMUONV3DStore*>(entry->GetObject());
101 AliError("Gains not of the expected type !!!");
106 AliError("Could not get gains !");
112 //_____________________________________________________________________________
114 AliMUONCalibrationData::IsValid() const
119 //_____________________________________________________________________________
121 AliMUONCalibrationData::Pedestals() const
125 AliCDBEntry* entry = GetEntry("MUON/Calib/Pedestals");
128 fPedestals = dynamic_cast<AliMUONV3DStore*>(entry->GetObject());
131 AliError("fPedestals not of the expected type !!!");
136 AliError("Could not get pedestals !");
142 //_____________________________________________________________________________
144 AliMUONCalibrationData::Print(Option_t*) const
146 cout << "RunNumber " << RunNumber()
147 << " fGains=" << fGains
148 << " fPedestals=" << fPedestals
152 //_____________________________________________________________________________
154 AliMUONCalibrationData::RunNumber() const
159 //_____________________________________________________________________________
161 AliMUONCalibrationData::Pedestal(Int_t detElemId,
162 Int_t manuId, Int_t manuChannel) const
164 AliMUONCalibParam* ped =
165 static_cast<AliMUONCalibParam*>(Pedestals()->Get(detElemId,manuId,manuChannel));
168 AliError(Form("Could not get pedestal for detElemId=%d manuId=%d "
169 "manuChannel=%d",detElemId,manuId,manuChannel));