46 fValidFileIds.SetOwner(1);
47 fSelections.SetOwner(1);
68 while ((aSelection = (
AliCDBId*) iter.Next())) {
71 AliDebug(2,Form(
"Using selection criterion: %s ", aSelection->
ToString().Data()));
81 AliDebug(2,
"Looking for objects with most recent version");
95 Int_t nId = list->GetEntries();
99 for(
int i=nId-1;i>=0;i--){
100 key = (TKey*) list->At(i);
105 AliInfo(Form(
"Selection criteria list filled with %d entries",
fSelections.GetEntries()));
119 while((anId = (
AliCDBId*) iter.Next())){
121 AliWarning(
"This selection is more general than a previous one and will hide it!");
141 Int_t firstRun, Int_t lastRun, Int_t version, Int_t subVersion){
154 while ((aSelection = (
AliCDBId*) iter.Next())) {
171 Int_t firstRun, Int_t lastRun){
200 while ((aSelection = (
AliCDBId*) iter.Next())) {
201 AliInfo(Form(
"index %d -> selection: %s",index++, aSelection->
ToString().Data()));
219 AliError(Form(
"Unspecified query: %s",
225 Bool_t oldStatus = TH1::AddDirectoryStatus();
226 TH1::AddDirectory(kFALSE);
230 if (oldStatus != kFALSE)
231 TH1::AddDirectory(kTRUE);
242 Int_t version, Int_t subVersion) {
245 return Get(
AliCDBId(path, runNumber, runNumber, version, subVersion));
254 return Get(
AliCDBId(path, runRange, version, subVersion));
268 AliError(Form(
"Unspecified run or runrange: %s",
274 Bool_t oldStatus = TH1::AddDirectoryStatus();
275 TH1::AddDirectory(kFALSE);
279 if (oldStatus != kFALSE)
280 TH1::AddDirectory(kTRUE);
282 Int_t nEntries = result->GetEntries();
284 AliInfo(Form(
"%d objects retrieved. Request was: %s",
285 nEntries, query.
ToString().Data()));
286 for(
int i=0; i<nEntries;i++){
294 for(
int i = 0; i<result->GetEntries(); i++){
306 Int_t version, Int_t subVersion) {
315 const AliCDBRunRange& runRange, Int_t version, Int_t subVersion) {
334 AliError(Form(
"Unspecified query: %s",
346 Int_t version, Int_t subVersion) {
349 return GetId(
AliCDBId(path, runNumber, runNumber, version, subVersion));
366 AliError(
"Null Entry! No storage will be done!");
372 return Put(&anEntry, mirrors, type);
385 AliError(
"No valid object in CDB entry!");
390 AliError(Form(
"Invalid entry ID: %s",
396 AliError(Form(
"Unspecified entry ID: %s",
404 AliError(Form(
"It is forbidden to store %s data into a folder of type %s!",
411 TString strMirrors(mirrors);
412 if(!strMirrors.IsNull() && !strMirrors.IsWhitespace())
420 static const Int_t order[8] = { 14, 16, 9, 11, 0, 2, 4, 6 };
424 for (Int_t i=0; i<8; i++) {
425 buf[0] = guid[order[i]];
426 buf[1] = guid[order[i]+1];
427 timeval |= strtol(buf, 0x0, 16);
428 if (timeval & 0xFF00000000000000) {
429 timeval &= 0x0FFFFFFFFFFFFFFF;
435 return (timeval - 0x01b21dd213814000L) / 10000000;
450 AliError(Form(
"Filter not valid: %s", pathFilter));
457 AliInfo(Form(
"Querying files valid for run %d and path \"%s\" into CDB storage \"%s://%s\"",
461 AliDebug(3, Form(
"Clearing list of CDB Id's previously loaded for path \"%s\"", pathFilter));
468 AliDebug(3,Form(
"Removing id \"%s\" matching: \"%s\"", rmPath.
GetPath().Data(), pathFilter));
487 AliInfo(Form(
"**** QueryCDB Parameters **** \n\t<%s>\n",
493 TString message =
"**** Id's of valid objects found *****\n";
498 while ((anId = dynamic_cast<AliCDBId*>(iter.Next()))) {
499 message += Form(
"\t%s\n", anId->
ToString().Data());
501 message += Form(
"\n\tTotal: %d objects found\n",
fValidFileIds.GetEntriesFast());
502 AliInfo(Form(
"%s", message.Data()));
508 if (
fRun > -1)
AliFatal(
"Cannot call SetMaxDate() after run was set!");
533 TString storageType =
GetType();
534 if(storageType !=
"alien"){
535 AliWarning(Form(
"The current storage is of type \"%s\". Setting of SEs to \"%s\" skipped!",storageType.Data(),mirrors));
538 AliError(
"We should never get here!! AliCDBGrid must have masked this virtual method!");
547 TString storageType =
GetType();
548 if(storageType !=
"alien"){
549 AliWarning(Form(
"The current storage is of type \"%s\" and cannot handle SEs. Returning empty string!",storageType.Data()));
552 AliError(
"We should never get here!! AliCDBGrid must have masked this virtual method!");
560 TObject *obj = (TObject*) entry->
GetObject();
562 AliError(
"Cannot retrieve the object:");
567 if (!strcmp(obj->ClassName(),TTree::Class_Name())) {
569 AliWarning(
"Entry contains a TTree! Loading baskets...");
571 TTree*
tree =
dynamic_cast<TTree*
> (obj);
576 tree->SetDirectory(0);
578 else if (!strcmp(obj->ClassName(),TNtuple::Class_Name())){
580 AliWarning(
"Entry contains a TNtuple! Loading baskets...");
582 TNtuple* ntu =
dynamic_cast<TNtuple*
> (obj);
587 ntu->SetDirectory(0);
Bool_t IsAnyRange() const
AliCDBEntry * Get(const AliCDBId &query)
const TString & GetPath() const
Bool_t Comprises(const AliCDBPath &other) const
Bool_t Put(TObject *object, AliCDBId &id, AliCDBMetaData *metaData, const char *mirrors="", AliCDBManager::DataType type=AliCDBManager::kPrivate)
void RemoveAllSelections()
virtual AliCDBEntry * GetEntry(const AliCDBId &query)=0
void ReadSelectionFromFile(const char *fileName)
const TString & GetType() const
time_t GuidToCreationTimestamp(const TString &guid) const
AliCDBParam * GetCondParam() const
const TString & GetBaseFolder() const
void SetMaxDate(time_t maxDate)
Bool_t Comprises(const AliCDBId &other) const
const AliCDBPath & GetAliCDBPath() const
virtual const char * GetMirrorSEs() const
TString fileName(const char *dir, int runNumber, const char *da, int i, const char *type)
#define AliWarning(message)
Bool_t Drain(AliCDBEntry *entry)
TList * GetAll(const AliCDBId &query)
void PrintMetaData() const
static const char * GetDataTypeName(DataType type)
TString fBaseFolder
Local, Grid: base folder name - Dump: file name.
virtual TList * GetEntries(const AliCDBId &query)=0
virtual TList * GetIdListFromFile(const char *fileName)=0
void GetSelection(AliCDBId *id)
AliCDBParam * GetRefParam() const
virtual AliCDBId * GetEntryId(const AliCDBId &query)=0
AliCDBId * GetId(const AliCDBId &query)
virtual Bool_t PutEntry(AliCDBEntry *entry, const char *mirrors="")=0
void QueryCDB(Int_t run, const char *pathFilter="*", Int_t version=-1, AliCDBMetaData *mdFilter=0)
virtual void SetMirrorSEs(const char *mirrors)
#define AliFatal(message)
virtual void QueryValidFiles()=0
void AddSelection(const AliCDBId &selection)
void LoadTreeFromFile(AliCDBEntry *entry) const
#define AliDebug(logLevel, message)
AliCDBManager::DataType GetDataType() const
const TString & GetPath() const
Bool_t IsSpecified() const
#define AliError(message)
static AliCDBManager * Instance(TMap *entryCache=NULL, Int_t run=-1)
void PrintSelectionList()
AliCDBMetaData * fMetaDataFilter
void RemoveSelection(const AliCDBId &selection)
Int_t GetSubVersion() const