Added functionality to read the magnetic field value, and setting the recoparam objec...
authorkaamodt <kaamodt@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 26 Oct 2009 14:20:38 +0000 (14:20 +0000)
committerkaamodt <kaamodt@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 26 Oct 2009 14:20:38 +0000 (14:20 +0000)
HLT/TPCLib/AliHLTTPCClusterFinder.cxx
HLT/TPCLib/AliHLTTPCClusterFinder.h
HLT/TPCLib/AliHLTTPCClusterFinderComponent.cxx

index 059090e..71fffa6 100644 (file)
@@ -86,6 +86,7 @@ AliHLTTPCClusterFinder::AliHLTTPCClusterFinder()
   fDoMC(kFALSE),
   fClusterMCVector(),
   fOfflineTransform(NULL),
+  fOfflineTPCRecoParam(),
   fTimeMeanDiff(2)
 {
   //constructor  
@@ -93,6 +94,11 @@ AliHLTTPCClusterFinder::AliHLTTPCClusterFinder()
   if(!fOfflineTransform){
     HLTError("AliHLTTPCClusterFinder():  Offline transform not in AliTPCcalibDB.");
   }
+  else{
+    fOfflineTPCRecoParam.SetUseExBCorrection(1);
+    fOfflineTPCRecoParam.SetUseTOFCorrection(1);
+    fOfflineTransform->SetCurrentRecoParam(&fOfflineTPCRecoParam);
+  }
 }
 
 AliHLTTPCClusterFinder::~AliHLTTPCClusterFinder(){
index 967f53c..65ba628 100644 (file)
@@ -18,6 +18,7 @@
 #include "AliHLTTPCTransform.h"
 #include "AliHLTTPCDigitData.h"
 #include "AliHLTTPCDigitReader.h"
+#include "AliTPCRecoParam.h"
 
 class AliHLTTPCPad;
 class AliHLTTPCSpacePointData;
@@ -285,12 +286,14 @@ class AliHLTTPCClusterFinder : public AliHLTLogging {
 
   AliTPCTransform * fOfflineTransform;                             //! transient
 
+  AliTPCRecoParam fOfflineTPCRecoParam;                            //! transient
+
   Float_t fTimeMeanDiff;                                           //! transient
 
 #ifdef do_mc
   void GetTrackID(Int_t pad,Int_t time,Int_t *trackID);
 #endif
   
-  ClassDef(AliHLTTPCClusterFinder,9) //Fast cluster finder
+  ClassDef(AliHLTTPCClusterFinder,10) //Fast cluster finder
 };
 #endif
index 0c5d5c5..b11218f 100644 (file)
@@ -192,6 +192,10 @@ int AliHLTTPCClusterFinderComponent::DoInit( int argc, const char** argv )
   //Test if the OCDB entries used by AliTPCTransform is availible
   AliTPCcalibDB*  calib=AliTPCcalibDB::Instance();  
   //
+  if(!calib){
+    HLTError("AliTPCcalibCD does not exist");
+    return -ENOENT;
+  }
   AliTPCCalPad * time0TPC = calib->GetPadTime0(); 
   if(!time0TPC){
     HLTError("OCDB entry TPC/Calib/PadTime0 (AliTPCcalibDB::GetPadTime0()) is not available.");
@@ -204,7 +208,6 @@ int AliHLTTPCClusterFinderComponent::DoInit( int argc, const char** argv )
     return -ENOENT;
   }
 
-
   fClusterFinder = new AliHLTTPCClusterFinder();
 
   // first configure the default
@@ -229,6 +232,11 @@ int AliHLTTPCClusterFinderComponent::DoInit( int argc, const char** argv )
     iResult=ConfigureFromArgumentString(argc, argv);
   // return iResult;
 
+  if(iResult>=0){
+    //initialize the magnetic field from CDB
+    iResult = ConfigureFromCDBTObjString(kAliHLTCDBSolenoidBz);
+  }
+
   /*
   Int_t iResult=0;
   TString configuration="";
@@ -518,6 +526,19 @@ int AliHLTTPCClusterFinderComponent::ScanConfigurationArgument(int argc, const c
   int i=0;
   TString argument=argv[i];
 
+  if (argument.CompareTo("-solenoidBz")==0){
+    if (++i>=argc) return -EPROTO;
+    argument=argv[i];
+    AliTPCcalibDB*  calib=AliTPCcalibDB::Instance();
+    if(!calib){
+      HLTError("CalibDB not availible");
+    }
+    Float_t magneticField = argument.Atof();
+    calib->SetExBField(magneticField);
+    HLTInfo("SolenoidBz is set to %f in the calibDB",magneticField);
+    return 2;
+  }
+
   if (argument.CompareTo("-update-calibdb")==0 || argument.CompareTo("-update-transform")==0 ){
     if(fClusterFinder->UpdateCalibDB()){
       HLTDebug("CalibDB and offline transform successfully updated.");