reading of prediction processor values; reading of noise map from CDB; some histogram...
authorrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 15 Aug 2008 09:03:46 +0000 (09:03 +0000)
committerrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 15 Aug 2008 09:03:46 +0000 (09:03 +0000)
HLT/TPCLib/AliHLTTPCNoiseMap.cxx
HLT/TPCLib/AliHLTTPCNoiseMap.h
HLT/TPCLib/AliHLTTPCNoiseMapComponent.cxx
HLT/TPCLib/AliHLTTPCSliceTrackerComponent.cxx
HLT/TPCLib/AliHLTTPCSliceTrackerComponent.h

index 42e4c7a..966615d 100644 (file)
@@ -55,9 +55,8 @@ AliHLTTPCNoiseMap* AliHLTTPCNoiseMap::Instance(){
   return pNoiseMapInstance; // address of sole instance
 }
 
-AliTPCCalPad* AliHLTTPCNoiseMap::ReadNoiseMap(){
+AliTPCCalPad* AliHLTTPCNoiseMap::ReadNoiseMap(Int_t runNo){
 // see header file for class documentation
-  
   const char* pathNoiseMap = "TPC/Calib/PadNoise";
   AliTPCCalPad *padNoise = NULL;
 
@@ -67,15 +66,32 @@ AliTPCCalPad* AliHLTTPCNoiseMap::ReadNoiseMap(){
     //AliCDBEntry *pEntry = AliCDBManager::Instance()->Get(path); // read from the default storage 
     // for local testing purposes
     
-    AliCDBStorage *stor   = AliCDBManager::Instance()->GetStorage(pathNoiseMap);
-    AliCDBEntry   *pEntry = stor->Get(pathNoiseMap,AliCDBManager::Instance()->GetRun());
+    AliCDBStorage *stor = AliCDBManager::Instance()->GetDefaultStorage();
+    if(!stor){
+       HLTError("Cannot get HCDB default storage.");
+       return NULL;
+    }
+    
+    AliCDBPath path(pathNoiseMap);
+    Int_t version    = stor->GetLatestVersion(pathNoiseMap, runNo);
+    Int_t subVersion = stor->GetLatestSubVersion(pathNoiseMap, runNo, version);
     
+    //HLTInfo("RunNo %d, version %d, subversion %d", runNo, version, subVersion);
+    
+    AliCDBEntry *pEntry = stor->Get(path, runNo, version, subVersion);
+        
     if(pEntry){ 
        padNoise = (AliTPCCalPad*)pEntry->GetObject();
-       TObjString *pString = dynamic_cast<TObjString*>(pEntry->GetObject());
-       if(pString){ HLTInfo("received configuration object string: \'%s\'", pString->GetString().Data()); }
+       if(padNoise){
+                TObjString *pString = dynamic_cast<TObjString*>(pEntry->GetObject());
+                if(pString){ 
+           HLTInfo("received configuration object string: \'%s\'", pString->GetString().Data()); }
+         }
     } // end if pEntry 
-    else { HLTError("cannot fetch object \"%s\" from CDB", pathNoiseMap); } 
+    else { 
+       HLTError("cannot fetch object \"%s\" from CDB", pathNoiseMap); 
+    } 
   } // end if pathNoiseMap
   return padNoise;
+  
 }
index 15bb2fb..fdc9523 100644 (file)
@@ -40,7 +40,7 @@ public:
   static AliHLTTPCNoiseMap* Instance();
   
   /** method to retrieve the noise map from HCDB */
-  AliTPCCalPad* ReadNoiseMap();
+  AliTPCCalPad* ReadNoiseMap(Int_t runNo);
 
 private:
   /** standard constructor prohibited */
index 23c1a80..eee031a 100644 (file)
@@ -34,6 +34,7 @@ using namespace std;
 
 #include "AliCDBEntry.h"
 #include "AliCDBManager.h"
+#include "AliCDBStorage.h"
 #include "AliHLTTPCNoiseMap.h"
 
 #include "AliTPCCalPad.h"
@@ -202,8 +203,16 @@ int AliHLTTPCNoiseMapComponent::DoInit( int argc, const char** argv ) {
   
   if(fApplyNoiseMap){
      AliHLTTPCNoiseMap *nm = AliHLTTPCNoiseMap::Instance();
-     AliTPCCalPad *noisePad = nm->ReadNoiseMap();
-     fHistCDBMap = noisePad->MakeHisto2D(1);
+     if(!nm) { 
+         HLTWarning("AliHLTTPCNoiseMap instance not existent."); 
+     }
+     else {
+         AliTPCCalPad *noisePad = nm->ReadNoiseMap(GetRunNo());
+         if(noisePad) {
+           fHistCDBMap = noisePad->MakeHisto2D(1);
+           
+        }
+     }
   }
 
 //   if(fApplyNoiseMap){
@@ -214,6 +223,19 @@ int AliHLTTPCNoiseMapComponent::DoInit( int argc, const char** argv ) {
 //     //fHistCDBMap = noisePad->MakeHisto2D(1); //side C
 //   }
    
+  if(fPlotSideA){
+     fHistSideA = new TH2F("fHistSideA","TPC Side A",250,-250,250,250,-250,250);               
+     fHistSideA->SetXTitle("global X (cm)"); fHistSideA->SetYTitle("global Y (cm)");
+  }   
+  
+  if(fPlotSideC){    
+     fHistSideC = new TH2F("fHistSideC","TPC Side C",250,-250,250,250,-250,250);
+     fHistSideC->SetXTitle("global X (cm)"); fHistSideC->SetYTitle("global Y (cm)");
+  }
+  fHistMaxSignal = new TH2F("fHistMaxSignal","maximum signal",   250,-250,250,250,-250,250);
+  fHistTotSignal = new TH2F("fHistTotSignal","total signal",     250,-250,250,250,-250,250);
+  fHistPadRMS    = new TH2F("fHistPadRMS",   "RMS",              250,-250,250,250,-250,250);
  
 //   HLTDebug("using AliHLTTPCDigitReaderDecoder");
 //   pDigitReader = new AliHLTTPCDigitReaderDecoder(); // double-loop
@@ -224,35 +246,30 @@ int AliHLTTPCNoiseMapComponent::DoInit( int argc, const char** argv ) {
 } // end DoInit()
 
 int AliHLTTPCNoiseMapComponent::DoDeinit() { 
-// see header file for class documentation       
-    return 0;
+// see header file for class documentation  
+
+  if(fHistMaxSignal) delete fHistMaxSignal; fHistMaxSignal = NULL;
+  if(fHistTotSignal) delete fHistTotSignal; fHistTotSignal = NULL;
+  if(fHistPadRMS)    delete fHistPadRMS;    fHistPadRMS    = NULL;
+  if(fHistSideA)     delete fHistSideA;     fHistSideA     = NULL;
+  if(fHistSideC)     delete fHistSideC;     fHistSideC     = NULL;
+       
+  return 0;
 }
 
 int AliHLTTPCNoiseMapComponent::DoEvent(const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& /*trigData*/){
 // see header file for class documentation
  
-  HLTInfo("--- Entering DoEvent() in TPCNoiseMap ---");
+  //HLTInfo("--- Entering DoEvent() in TPCNoiseMap ---");
  
   if(GetFirstInputBlock( kAliHLTDataTypeSOR ) || GetFirstInputBlock( kAliHLTDataTypeEOR )) return 0;
-  
-  if(fPlotSideA){
-     fHistSideA = new TH2F("fHistSideA","TPC Side A",250,-250,250,250,-250,250);               
-     fHistSideA->SetXTitle("global X (cm)"); fHistSideA->SetYTitle("global Y (cm)");
-  }   
-  
-  if(fPlotSideC){    
-     fHistSideC = new TH2F("fHistSideC","TPC Side C",250,-250,250,250,-250,250);
-     fHistSideC->SetXTitle("global X (cm)"); fHistSideC->SetYTitle("global Y (cm)");
-  }
-  
+   
   const AliHLTComponentBlockData *iter = NULL;
 
   Float_t xyz[3]; 
   Int_t thissector, thisrow;
-
-  fHistMaxSignal = new TH2F("fHistMaxSignal","maximum signal",   250,-250,250,250,-250,250);
-  fHistTotSignal = new TH2F("fHistTotSignal","total signal",     250,-250,250,250,-250,250);
-  fHistPadRMS    = new TH2F("fHistPadRMS",   "RMS",              250,-250,250,250,-250,250);
+  
+  ResetHistograms();
   
   for(iter = GetFirstInputBlock(kAliHLTDataTypeDDLRaw|kAliHLTDataOriginTPC); iter != NULL; iter = GetNextInputBlock()){
       
@@ -348,7 +365,7 @@ int AliHLTTPCNoiseMapComponent::DoEvent(const AliHLTComponentEventData& evtData,
 
 void AliHLTTPCNoiseMapComponent::MakeHistosPublic() {
 // see header file for class documentation
-  
 //   TFile *outputfile = new TFile("test.root","RECREATE");
 //   fHistSignal->Write();
 //   outputfile->Save();
@@ -367,11 +384,11 @@ void AliHLTTPCNoiseMapComponent::MakeHistosPublic() {
     
   //PushBack( (TObject*) &histos, kAliHLTDataTypeHistogram, fSpecification);    
  
-  if(fHistMaxSignal) delete fHistMaxSignal; fHistMaxSignal = NULL;
-  if(fHistTotSignal) delete fHistTotSignal; fHistTotSignal = NULL;
-  if(fHistPadRMS)    delete fHistPadRMS;    fHistPadRMS    = NULL;
-  if(fHistSideA)     delete fHistSideA;     fHistSideA     = NULL;
-  if(fHistSideC)     delete fHistSideC;     fHistSideC     = NULL;
+//   if(fHistMaxSignal) delete fHistMaxSignal; fHistMaxSignal = NULL;
+//   if(fHistTotSignal) delete fHistTotSignal; fHistTotSignal = NULL;
+//   if(fHistPadRMS)    delete fHistPadRMS;    fHistPadRMS    = NULL;
+//   if(fHistSideA)     delete fHistSideA;     fHistSideA     = NULL;
+//   if(fHistSideC)     delete fHistSideC;     fHistSideC     = NULL;
   
 }
 
@@ -447,26 +464,39 @@ int AliHLTTPCNoiseMapComponent::Reconfigure(const char* cdbEntry, const char* ch
   int iResult=0;
   const char* path="HLT/ConfigTPC/TPCNoiseMapComponent";
   const char* defaultNotify="";
-  if (cdbEntry) {
-      path=cdbEntry;
-      defaultNotify=" (default)";
+  if(cdbEntry){
+      path          = cdbEntry;
+      defaultNotify = "(manual operator entry)";
   }
   
-  if (path) {
-    HLTInfo("reconfigure from entry %s%s, chain id %s", path, defaultNotify,(chainId!=NULL && chainId[0]!=0)?chainId:"<none>");
-    AliCDBEntry *pEntry = AliCDBManager::Instance()->Get(path/*,GetRunNo()*/);
-    if (pEntry) {
-      TObjString* pString=dynamic_cast<TObjString*>(pEntry->GetObject());
-      if (pString) {
-       HLTInfo("received configuration object string: \'%s\'", pString->GetString().Data());
-       iResult=Configure(pString->GetString().Data());
-      } else {
-       HLTError("configuration object \"%s\" has wrong type, required TObjString", path);
-      }
-    } else {
-      HLTError("cannot fetch object \"%s\" from CDB", path);
-    }
-  }
+  if(path){          
+     HLTInfo("reconfigure from entry %s%s, chain id %s", path, defaultNotify,(chainId!=NULL && chainId[0]!=0)?chainId:"<none>" );
+     
+     AliCDBPath argumentPath(path);
+     AliCDBStorage *stor = AliCDBManager::Instance()->GetDefaultStorage();
+        
+     if(stor){
+        Int_t version    = stor->GetLatestVersion(path, GetRunNo());
+        Int_t subVersion = stor->GetLatestSubVersion(path, GetRunNo(), version);
+        AliCDBEntry *pEntry = stor->Get(argumentPath,GetRunNo(), version, subVersion);
+
+        if(pEntry){
+            TObjString* pString = dynamic_cast<TObjString*>(pEntry->GetObject());
+            if(pString){
+               HLTInfo("received configuration object string: \'%s\'", pString->GetString().Data());
+               iResult = Configure(pString->GetString().Data());
+            } // if pString is valid
+           else {
+               HLTError("configuration object \"%s\" has wrong type, required TObjString", path);
+            }
+        } // if pEntry is valid
+       else {
+           HLTError("cannot fetch object \"%s\" from CDB", path);
+        }
+     } // if stor is valid
+  } // if path is valid
   
   return iResult;
+
+
 }
index 164cd11..695f949 100644 (file)
@@ -47,6 +47,7 @@ using namespace std;
 #include "TObjArray.h"
 #include "AliCDBEntry.h"
 #include "AliCDBManager.h"
+#include "AliCDBStorage.h"
 //#include "AliHLTTPC.h"
 //#include <stdlib.h>
 //#include <cerrno>
@@ -813,9 +814,49 @@ int AliHLTTPCSliceTrackerComponent::Configure(const char* arguments)
   return iResult;
 }
 
+int AliHLTTPCSliceTrackerComponent::ReadPreprocessorValues(const char* modules)
+{
+  // see header file for class documentation
+  
+  int iResult = 0;
+  TString str(modules);
+  if(str.Contains("HLT") || str.Contains("TPC") || str.Contains("GRP")){
+  
+    const char* pathBField=kAliHLTCDBSolenoidBz;
+    if (pathBField) {
+
+      HLTInfo("reconfigure B-Field from entry %s, modules %s", pathBField,(modules!=NULL && modules[0]!=0)?modules:"<none>");
+      //AliCDBEntry *pEntry = AliCDBManager::Instance()->Get(pathBField/*,GetRunNo()*/);
+      
+      AliCDBPath path(pathBField);
+      
+      AliCDBStorage *stor = AliCDBManager::Instance()->GetDefaultStorage();
+      Int_t version    = stor->GetLatestVersion(pathBField, GetRunNo());
+      Int_t subVersion = stor->GetLatestSubVersion(pathBField, GetRunNo(), version);
+      AliCDBEntry *pEntry = stor->Get(path,GetRunNo(), version, subVersion);
+      
+      HLTImportant("RunNo %d, Version %d, subversion %d", GetRunNo(), version, subVersion);
+      
+      if (pEntry) {
+       TObjString* pString=dynamic_cast<TObjString*>(pEntry->GetObject());
+       if (pString) {
+         HLTImportant("received configuration object string: \'%s\'", pString->GetString().Data());
+         iResult=Configure(pString->GetString().Data());
+       } else {
+         HLTError("configuration object \"%s\" has wrong type, required TObjString", pathBField);
+       }
+      } else {
+       HLTError("cannot fetch object \"%s\" from CDB", pathBField);
+      }
+    }
+  }  
+  return iResult;
+}
+
 int AliHLTTPCSliceTrackerComponent::Reconfigure(const char* cdbEntry, const char* chainId)
 {
   // see header file for class documentation
+
   int iResult=0;
   const char* path="HLT/ConfigTPC/SliceTrackerComponent";
   const char* defaultNotify="";
@@ -835,7 +876,7 @@ int AliHLTTPCSliceTrackerComponent::Reconfigure(const char* cdbEntry, const char
        HLTError("configuration object \"%s\" has wrong type, required TObjString", path);
       }
     } else {
-      HLTError("can not fetch object \"%s\" from CDB", path);
+      HLTError("cannot fetch object \"%s\" from CDB", path);
     }
   }
 
@@ -853,11 +894,12 @@ int AliHLTTPCSliceTrackerComponent::Reconfigure(const char* cdbEntry, const char
        HLTError("configuration object \"%s\" has wrong type, required TObjString", path);
       }
     } else {
-      HLTError("can not fetch object \"%s\" from CDB", path);
+      HLTError("cannot fetch object \"%s\" from CDB", path);
     }
   }
   
   return iResult;
+
 }
 
 void AliHLTTPCSliceTrackerComponent::SetTrackerParam1()
index 53340f3..02c71df 100644 (file)
@@ -131,7 +131,8 @@ protected:
               AliHLTUInt32_t& size, AliHLTComponentBlockDataList& outputBlocks );
 
   int Reconfigure(const char* cdbEntry, const char* chainId);
-
+  int ReadPreprocessorValues(const char* modules);
+  
   using AliHLTProcessor::DoEvent;
   
 private: