]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/TPCLib/AliHLTTPCdEdxComponent.cxx
correcting compilation warnings, enable keyword substitution
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCdEdxComponent.cxx
index 0ae9f95d903d0e10e8fd7ac3b3d5369e530ccbdd..e6289a45c86d9897ab04d38501e886f32020859a 100644 (file)
@@ -45,7 +45,6 @@
 #include "AliTPCseed.h"
 #include "AliTPCclusterMI.h"
 #include "TGeoGlobalMagField.h"
-#include "AliMagF.h"
 
 
 /** ROOT macro for the implementation of ROOT specific class methods */
@@ -166,8 +165,7 @@ int AliHLTTPCdEdxComponent::ReadConfigurationString(  const char* arguments )
 
     if ( argument.CompareTo( "-solenoidBz" ) == 0 ) {
       if ( ( bMissingParam = ( ++i >= pTokens->GetEntries() ) ) ) break;
-      fSolenoidBz = ( ( TObjString* )pTokens->At( i ) )->GetString().Atof();
-      HLTInfo( "Magnetic Field set to: %f", fSolenoidBz );
+      HLTWarning("argument -solenoidBz is deprecated, magnetic field set up globally (%f)", GetBz());
       continue;
     }
 
@@ -235,7 +233,8 @@ int AliHLTTPCdEdxComponent::Configure( const char* cdbEntry, const char* chainId
 
   //* read magnetic field
 
-  int iResult2 = ReadCDBEntry( kAliHLTCDBSolenoidBz, chainId );
+  int iResult2 = 0;//ReadCDBEntry( kAliHLTCDBSolenoidBz, chainId );
+  fSolenoidBz=GetBz();
 
   //* read the actual CDB entry if required
 
@@ -269,13 +268,10 @@ int AliHLTTPCdEdxComponent::DoInit( int argc, const char** argv )
 
   int ret = Configure( NULL, NULL, arguments.Data() );
 
-  // set field
-  if (!TGeoGlobalMagField::Instance()->IsLocked()) {
-    AliMagF* field = new AliMagF("Maps","Maps",1.,1.,AliMagF::k5kG);
-    field->SetFactorSol(1);
-    Double_t initialFieldStrengh=field->SolenoidField();
-    field->SetFactorSol(fSolenoidBz/initialFieldStrengh); 
-    TGeoGlobalMagField::Instance()->SetField(field);  
+  // Check field
+  if (!TGeoGlobalMagField::Instance()) {
+    HLTError("magnetic field not initialized, please set up TGeoGlobalMagField and AliMagF");
+    return -ENODEV;
   }
   
   //AliTPCTransform *transform = AliTPCcalibDB::Instance()->GetTransform();
@@ -427,7 +423,7 @@ int AliHLTTPCdEdxComponent::DoEvent
 
       // set the clusters
       
-      for( Int_t ic=0; ic<currTrack->fNPoints; ic++){      
+      for( UInt_t ic=0; ic<currTrack->fNPoints; ic++){     
        UInt_t id = currTrack->fPointIDs[ic];
        int iSlice = id>>25;
        int iPatch = (id>>22)&0x7; 
@@ -458,7 +454,7 @@ int AliHLTTPCdEdxComponent::DoEvent
        tTPC.SetClusterPointer( row, c );
        
        AliTPCTrackerPoint &point = *( tTPC.GetTrackPoint( row ) );
-       tTPC.Propagate( TMath::DegToRad()*(sec%18*20.+10.), fSolenoidBz, c->GetX() );
+       tTPC.Propagate( TMath::DegToRad()*(sec%18*20.+10.), c->GetX(), fSolenoidBz );
        Double_t angle2 = tTPC.GetSnp()*tTPC.GetSnp();
        angle2 = (angle2<1) ?TMath::Sqrt(angle2/(1-angle2)) :10.; 
        point.SetAngleY( angle2 );
@@ -467,15 +463,19 @@ int AliHLTTPCdEdxComponent::DoEvent
 
       // Cook dEdx
 
-      if( outSize+sizeof( AliHLTFloat32_t ) > maxBufferSize ){
+      if( outSize+3*sizeof( AliHLTFloat32_t ) > maxBufferSize ){
         HLTWarning( "Output buffer size %d exceed", maxBufferSize );
         iResult = -ENOSPC;
         break;
       }
-     *outPtr = tTPC.CookdEdx( 0.02, 0.6 );      
-      outPtr++;
-      outSize+=sizeof( AliHLTFloat32_t );    
-      outBlock.fSize+=sizeof( AliHLTFloat32_t );  
+
+      tTPC.CookdEdx( 0.02, 0.6 );      
+      outPtr[0] = tTPC.GetdEdx();
+      outPtr[1] = tTPC.GetSDEDX(0);
+      outPtr[2] = tTPC.GetNCDEDX(0);
+      outPtr+=3;
+      outSize+=3*sizeof( AliHLTFloat32_t );    
+      outBlock.fSize+=3*sizeof( AliHLTFloat32_t );  
 
       unsigned int step = sizeof( AliHLTExternalTrackParam ) + currTrack->fNPoints * sizeof( unsigned int );
       currTrack = ( AliHLTExternalTrackParam* )( (( Byte_t * )currTrack) + step );