]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliReconstruction.cxx
Map of CDB storages and list of CDB object Id's used for the reconstruction are
[u/mrichter/AliRoot.git] / STEER / AliReconstruction.cxx
index d806a6e6f956a768bafbc7b4b36309760fcf776d..677951d848229ad4fbb03f26b4f26db91be450ba 100644 (file)
@@ -241,7 +241,9 @@ AliReconstruction::AliReconstruction(const char* gAliceFilename, const char* cdb
   fAlignObjArray(NULL),
   fCDBUri(cdbUri),
   fRemoteCDBUri(""),
-  fSpecCDBUri()
+  fSpecCDBUri(), 
+  fRunQA(kTRUE) 
+
 {
 // create reconstruction object with default parameters
   
@@ -302,7 +304,8 @@ AliReconstruction::AliReconstruction(const AliReconstruction& rec) :
   fAlignObjArray(rec.fAlignObjArray),
   fCDBUri(rec.fCDBUri),
   fRemoteCDBUri(rec.fRemoteCDBUri),
-  fSpecCDBUri()
+  fSpecCDBUri(), 
+  fRunQA(kTRUE)
 {
 // copy constructor
 
@@ -914,8 +917,35 @@ Bool_t AliReconstruction::Run(const char* input)
 
   tree->GetUserInfo()->Add(esd);
   hlttree->GetUserInfo()->Add(hltesd);
+  
+  const TMap *cdbMap = AliCDBManager::Instance()->GetStorageMap();
+  const TList *cdbList = AliCDBManager::Instance()->GetRetrievedIds();
 
-
+  TMap *cdbMapCopy = new TMap(cdbMap->GetEntries());
+  cdbMapCopy->SetOwner(1);
+  cdbMapCopy->SetName("cdbMap");
+  TIter iter(cdbMap->GetTable());
+  
+  TPair* pair = 0;
+  while((pair = dynamic_cast<TPair*> (iter.Next()))){
+       TObjString* keyStr = dynamic_cast<TObjString*> (pair->Key());
+       TObjString* valStr = dynamic_cast<TObjString*> (pair->Value());
+       cdbMapCopy->Add(new TObjString(keyStr->GetName()), new TObjString(valStr->GetName()));
+  }
+  
+  TList *cdbListCopy = new TList();
+  cdbListCopy->SetOwner(1);
+  cdbListCopy->SetName("cdbList");
+  
+  TIter iter2(cdbList);
+  
+  AliCDBId* id=0;
+  while((id = dynamic_cast<AliCDBId*> (iter2.Next()))){
+       cdbListCopy->Add(id->Clone());
+  }
+    
+  tree->GetUserInfo()->Add(cdbMapCopy);
+  tree->GetUserInfo()->Add(cdbListCopy);
 
   if(fESDPar.Contains("ESD.par")){
     AliInfo("Attaching ESD.par to Tree");
@@ -950,11 +980,14 @@ Bool_t AliReconstruction::Run(const char* input)
   }
 
   //QA 
-  AliQADataMakerSteer qas ; 
-  qas.Run(AliQA::kRECPOINTS) ;
-  qas.Reset() ;
-  qas.Run(AliQA::kESDS) ;
-
+  if ( fRunQA ) {
+       AliQADataMakerSteer qas ; 
+       if (fRawReader) 
+               qas.Run(AliQA::kRAWS, input) ; 
+       qas.Run(AliQA::kRECPOINTS) ;
+       qas.Reset() ;
+       qas.Run(AliQA::kESDS) ;
+  }
   return kTRUE;
 }
 
@@ -2449,7 +2482,6 @@ void AliReconstruction::ESDFile2AODFile(TFile* esdFile, TFile* aodFile)
 
     // Tracks (primary and orphan)
     for (Int_t nTrack = 0; nTrack < nTracks; ++nTrack) {
-       
 
       if (usedTrack[nTrack]) continue;
 
@@ -2632,9 +2664,6 @@ void AliReconstruction::ESDFile2AODFile(TFile* esdFile, TFile* aodFile)
 
   aodTree->GetUserInfo()->Add(aod);
 
-  // close ESD file
-  esdFile->Close();
-
   // write the tree to the specified file
   aodFile = aodTree->GetCurrentFile();
   aodFile->cd();