3 //**************************************************************************
4 //* This file is property of and copyright by the *
5 //* ALICE Experiment at CERN, All rights reserved. *
7 //* Primary Authors: Matthias Richter <Matthias.Richter@ift.uib.no> *
8 //* for The ALICE HLT Project. *
10 //* Permission to use, copy, modify and distribute this software and its *
11 //* documentation strictly for non-commercial purposes is hereby granted *
12 //* without fee, provided that the above copyright notice appears in all *
13 //* copies and that both the copyright notice and this permission notice *
14 //* appear in the supporting documentation. The authors make no claims *
15 //* about the suitability of this software for any purpose. It is *
16 //* provided "as is" without express or implied warranty. *
17 //**************************************************************************
19 /// @file AliHLTMisc.h
20 /// @author Matthias Richter
22 /// @brief Definition of various glue functions implemented in dynamically
25 #include "AliHLTMisc.h"
27 /** ROOT macro for the implementation of ROOT specific class methods */
30 AliHLTMisc::AliHLTMisc()
32 // Abstract interface of various glue functions implemented in dynamically
35 // The HLT base library is independent from AliRoot and binds AliRoot
36 // functionality via dynamic libraries. The provided methods can be used
37 // from any module library without introducing additional dependencies.
40 AliHLTMisc::~AliHLTMisc()
45 AliHLTMisc* AliHLTMisc::fgInstance=NULL;
47 AliHLTMisc& AliHLTMisc::Instance()
49 // get global instance of the interface implementation
51 fgInstance=LoadInstance((AliHLTMisc*)NULL, "AliHLTMiscImplementation", ALIHLTMISC_LIBRARY);
55 fgInstance=new AliHLTMisc;
56 log.Logging(kHLTLogError, "AliHLTMisc::Instance", "HLT Analysis", "falling back to default AliHLTMisc instance");
61 int AliHLTMisc::InitCDB(const char* /*cdbpath*/)
63 // default method, functionality is implemented in the child class
67 int AliHLTMisc::SetCDBRunNo(int /*runNo*/)
69 // default method, functionality is implemented in the child class
73 int AliHLTMisc::GetCDBRunNo() const
75 // default method, functionality is implemented in the child class
79 AliCDBEntry* AliHLTMisc::LoadOCDBEntry(const char* /*path*/, int /*runNo*/) const
81 // default method, functionality is implemented in the child class
85 TObject* AliHLTMisc::ExtractObject(AliCDBEntry* /*entry*/) const
87 // default method, functionality is implemented in the child class
91 int AliHLTMisc::CheckOCDBEntries(const TMap* const /*pMap*/) const
93 // default method, functionality is implemented in the child class
97 int AliHLTMisc::InitMagneticField() const
99 // default method, functionality is implemented in the child class
103 AliHLTUInt64_t AliHLTMisc::GetTriggerMask(AliRawReader* /*rawReader*/) const
105 // default method, functionality is implemented in the child class
109 AliHLTUInt32_t AliHLTMisc::GetTimeStamp(AliRawReader* /*rawReader*/) const
111 // default method, functionality is implemented in the child class
115 AliHLTUInt32_t AliHLTMisc::GetEventType(AliRawReader* /*rawReader*/) const
117 // default method, functionality is implemented in the child class
121 Double_t AliHLTMisc::GetBz()
123 // default method, functionality is implemented in the child class
127 Double_t AliHLTMisc::GetBz(const Double_t */*r*/)
129 // default method, functionality is implemented in the child class
133 void AliHLTMisc::GetBxByBz(const Double_t r[3], Double_t b[3])
135 // default method, functionality is implemented in the child class
136 if (!r || !b) return;
140 const TClass* AliHLTMisc::IsAliESDHLTDecision() const
142 // default method, functionality is implemented in the child class
146 int AliHLTMisc::Copy(const AliHLTGlobalTriggerDecision* /*pDecision*/, TObject* /*pESDHLTDecision*/) const
148 // default method, functionality is implemented in the child class
152 int AliHLTMisc::InitStreamerInfos(const char* /*ocdbEntry*/) const
154 // default method, functionality is implemented in the child class
158 int AliHLTMisc::InitStreamerInfos(TObjArray* /*pSchemas*/) const
160 // default method, functionality is implemented in the child class
164 int AliHLTMisc::MergeStreamerInfo(TObjArray* /*tgt*/, const TObjArray* /*src*/, int /*iVerbosity*/) const
166 // default method, functionality is implemented in the child class
170 void AliHLTMisc::SetAliESDtrackOnlineModeFlag(bool /*mode*/) const
172 // default method, functionality is implemented in the child class
175 bool AliHLTMisc::GetAliESDtrackOnlineModeFlag() const
177 // default method, functionality is implemented in the child class
181 AliHLTMisc::AliOnlineGuard::AliOnlineGuard(bool mode)
184 // store the current value and set the flag
185 fMode=AliHLTMisc::Instance().GetAliESDtrackOnlineModeFlag();
186 AliHLTMisc::Instance().SetAliESDtrackOnlineModeFlag(mode);
189 AliHLTMisc::AliOnlineGuard::~AliOnlineGuard()
191 // restore old value of the flag
192 AliHLTMisc::Instance().SetAliESDtrackOnlineModeFlag(fMode);
195 ostream &operator<<(ostream &out, const AliHLTComponentDataType &dt)
197 // printout of AliHLTComponentDataType struct
198 char id[kAliHLTComponentDataTypefIDsize+1];
199 strncpy(id, dt.fID, kAliHLTComponentDataTypefIDsize);
200 id[kAliHLTComponentDataTypefIDsize]=0;
201 char origin[kAliHLTComponentDataTypefOriginSize+1];
202 strncpy(origin, dt.fOrigin, kAliHLTComponentDataTypefOriginSize);
203 origin[kAliHLTComponentDataTypefOriginSize]=0;
204 out << "{" << id << ":" << origin << "}";