correction HLT TPC simulation: reading AliTPCParam from OCDB, applies to digit to...
authorrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 21 Nov 2008 16:08:54 +0000 (16:08 +0000)
committerrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 21 Nov 2008 16:08:54 +0000 (16:08 +0000)
HLT/TPCLib/AliHLTTPCAgent.cxx
HLT/TPCLib/AliHLTTPCFileHandler.cxx

index c25bf70..a34d1e6 100644 (file)
@@ -28,6 +28,9 @@
 #include "AliHLTOUT.h"
 #include "AliHLTOUTHandlerChain.h"
 #include "AliRunLoader.h"
+#include "AliCDBManager.h"
+#include "AliCDBEntry.h"
+#include "AliTPCParam.h"
 
 /** global instance for agent registration */
 AliHLTTPCAgent gAliHLTTPCAgent;
@@ -93,6 +96,18 @@ int AliHLTTPCAgent::CreateConfigurations(AliHLTConfigurationHandler* handler,
 {
   // see header file for class documentation
   if (handler) {
+    const char* cdbEntry="TPC/Calib/Parameters";
+    AliCDBManager* pMan=AliCDBManager::Instance();
+    AliTPCParam* pTPCParam=NULL;
+    if (pMan) {
+      AliCDBEntry *pEntry = pMan->Get(cdbEntry);
+      if (pEntry && 
+         pEntry->GetObject() &&
+         (pTPCParam=dynamic_cast<AliTPCParam*>(pEntry->GetObject()))) {
+      } else {
+       HLTWarning("can not load AliTPCParam from CDB entry %s", cdbEntry);
+      }
+    }
 
     // This the tracking configuration for the full TPC
     // - 216 clusterfinders (1 per partition)
@@ -125,10 +140,15 @@ int AliHLTTPCAgent::CreateConfigurations(AliHLTConfigurationHandler* handler,
 
        // cluster finder components
        cf.Form("TPC-CF_%02d_%d", slice, part);
+       arg="";
+       if (pTPCParam) {
+         arg+=" -timebins "; arg+=pTPCParam->GetMaxTBin()+1;
+       }
        if (!rawReader) {
-         handler->CreateConfiguration(cf.Data(), "TPCClusterFinderUnpacked", publisher.Data(), "-timebins 446 -sorted");
+         arg+=" -sorted";
+         handler->CreateConfiguration(cf.Data(), "TPCClusterFinderUnpacked", publisher.Data(), arg.Data());
        } else {
-         handler->CreateConfiguration(cf.Data(), "TPCClusterFinderDecoder", publisher.Data(), "-timebins 446");
+         handler->CreateConfiguration(cf.Data(), "TPCClusterFinderDecoder", publisher.Data(), arg.Data());
        }
        if (trackerInput.Length()>0) trackerInput+=" ";
        trackerInput+=cf;
index 287646a..4e20e34 100644 (file)
@@ -46,6 +46,8 @@
 #include <AliTPCcluster.h>
 #include <AliTPCClustersRow.h>
 #include <AliSimDigits.h>
+#include "AliCDBManager.h"
+#include "AliCDBEntry.h"
 
 #include "AliHLTTPCLogging.h"
 #include "AliHLTTPCTransform.h"
@@ -250,6 +252,21 @@ void AliHLTTPCFileHandler::CloseMCOutput()
 Bool_t AliHLTTPCFileHandler::SetAliInput()
 { 
   //set ali input
+
+  // fParam is in all cases an external object
+  const char* cdbEntry="TPC/Calib/Parameters";
+  AliCDBManager* pMan=AliCDBManager::Instance();
+  if (pMan) {
+    AliCDBEntry *pEntry = pMan->Get(cdbEntry);
+    if (pEntry==NULL || 
+       pEntry->GetObject()==NULL ||
+       (fParam=dynamic_cast<AliTPCParam*>(pEntry->GetObject()))==NULL) {
+      LOG(AliHLTTPCLog::kWarning,"AliHLTTPCFileHandler::SetAliInput","File")
+       <<"can not load AliTPCParam object from OCDB entry " << cdbEntry <<ENDLOG;
+    }
+  }
+  if (!fParam) {
+  // the old solution until Nov 2008
   fInAli->CdGAFile();
   fParam = (AliTPCParam*)gFile->Get("75x40_100x60_150x60");
   if(!fParam){
@@ -259,6 +276,7 @@ Bool_t AliHLTTPCFileHandler::SetAliInput()
       <<"which might not be what you want!"<<ENDLOG;
     fParam = new AliTPCParamSR;
   }
+  }
   if(!fParam){ 
     LOG(AliHLTTPCLog::kError,"AliHLTTPCFileHandler::SetAliInput","File Open")
       <<"No AliTPCParam "<<AliHLTTPCTransform::GetParamName()<<" in File "<<gFile->GetName()<<ENDLOG;