Update by Theodor
authorrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 26 Nov 2009 09:57:15 +0000 (09:57 +0000)
committerrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 26 Nov 2009 09:57:15 +0000 (09:57 +0000)
- some needed changes in TrackV1 and Definitions for upcoming changes in the TRDEsdWriter
- TrackerV1: correct output data size
- cleanup for the offline mode

HLT/TRD/AliHLTTRDClusterizerComponent.cxx
HLT/TRD/AliHLTTRDClusterizerComponent.h
HLT/TRD/AliHLTTRDDefinitions.cxx
HLT/TRD/AliHLTTRDDefinitions.h
HLT/TRD/AliHLTTRDOfflineClusterizerComponent.cxx
HLT/TRD/AliHLTTRDOfflineTrackerV1Component.cxx
HLT/TRD/AliHLTTRDOfflineTrackerV1Component.h
HLT/TRD/AliHLTTRDTrackerV1Component.cxx
HLT/TRD/AliHLTTRDTrackerV1Component.h

index 09e88df..081053b 100644 (file)
@@ -83,7 +83,8 @@ AliHLTTRDClusterizerComponent::AliHLTTRDClusterizerComponent()
   fgeometryFileName(""),
   fProcessTracklets(kFALSE),
   fHLTstreamer(kTRUE),
-  fTC(kFALSE)
+  fTC(kFALSE),
+  fOffline(kFALSE)
 {
   // Default constructor
 
index 803cfcd..3e1a141 100644 (file)
@@ -65,7 +65,7 @@ protected:
   int Configure(const char* arguments);
   int SetParams();
        
-private:
+protected:
   /** copy constructor prohibited */
   AliHLTTRDClusterizerComponent(const AliHLTTRDClusterizerComponent&);
   /** assignment operator prohibited */
@@ -90,8 +90,9 @@ private:
   Bool_t fProcessTracklets; // write the L! tracklets to output
   Bool_t fHLTstreamer;      // use FastStreamer
   Bool_t fTC;               // using tail cancellation
+  Bool_t fOffline;          // mode to compare HLT data with offline
 
-  ClassDef(AliHLTTRDClusterizerComponent, 4)
+  ClassDef(AliHLTTRDClusterizerComponent, 5)
 
 };
 #endif
index 0c53fcc..209d33f 100644 (file)
@@ -31,7 +31,7 @@ const AliHLTComponentDataType AliHLTTRDDefinitions::fgkClusterDataType = { sizeo
 
 const AliHLTComponentDataType AliHLTTRDDefinitions::fgkTRDSATracksDataType = { sizeof(AliHLTComponentDataType), {'T','R','A','C','K','S','S','A'},{'T','R','D',' '}};;
 
-const AliHLTComponentDataType AliHLTTRDDefinitions::fgkTRDSAEsdDataType = { sizeof(AliHLTComponentDataType), {'S','A','E','S','D','T','R','D'},{'T','R','D',' '}};;
+const AliHLTComponentDataType AliHLTTRDDefinitions::fgkTRDOffTracksDataType = { sizeof(AliHLTComponentDataType), {'O','F','F','T','R','A','C','K'},{'T','R','D',' '}};;
 
 const AliHLTComponentDataType AliHLTTRDDefinitions::fgkMCMtrackletDataType = { sizeof(AliHLTComponentDataType), {'M','C','M','T','R','L','E','T'},{'T','R','D',' '}};;
 
index b5f0101..824ef62 100644 (file)
@@ -30,7 +30,7 @@ public:
   
   static const AliHLTComponentDataType fgkClusterDataType; // TRD Cluster Data
   static const AliHLTComponentDataType fgkTRDSATracksDataType; // Stand Alone tracks
-  static const AliHLTComponentDataType fgkTRDSAEsdDataType; // Stand Alone tracks
+  static const AliHLTComponentDataType fgkTRDOffTracksDataType; // Stand Alone tracks for offline comparation
   static const AliHLTComponentDataType fgkMCMtrackletDataType; // MCM tracklet Data
   static const AliHLTComponentDataType fgkMCMcalibrationDataType; // MCM Calibration data
   static const AliHLTComponentDataType fgkCalibrationDataType; // Calibration with TRDtracks
index 2ed990c..65b6ec4 100644 (file)
@@ -37,7 +37,7 @@ AliHLTTRDOfflineClusterizerComponent::AliHLTTRDOfflineClusterizerComponent():
   AliHLTTRDClusterizerComponent()
 {
   // Default constructor
-
+  fOffline = kTRUE;
 }
 
 AliHLTTRDOfflineClusterizerComponent::~AliHLTTRDOfflineClusterizerComponent()
@@ -65,21 +65,15 @@ int AliHLTTRDOfflineClusterizerComponent::DoInit( int argc, const char** argv )
 }
 
 void AliHLTTRDOfflineClusterizerComponent::SetOfflineParams(){
-  HLTFatal("You have entered the OFFLINE configuration!");
-  HLTFatal("This program shall NOT run on the HLT cluster like this!");
   if(!AliCDBManager::Instance()->IsDefaultStorageSet()){
     HLTFatal("You are resetting the Default Storage of the CDBManager!");
     HLTFatal("Let's hope that this program is NOT running on the HLT cluster!");
     AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
-  }else{
-    HLTError("DefaultStorage was already set!");
   }
   if(AliCDBManager::Instance()->GetRun()<0){
     HLTFatal("You are resetting the CDB run number to 0!");
     HLTFatal("Let's hope that this program is NOT running on the HLT cluster!");
     AliCDBManager::Instance()->SetRun(0);
-  }else{
-    HLTError("Run Number was already set!");
   }
 }
 
@@ -92,6 +86,8 @@ int AliHLTTRDOfflineClusterizerComponent::DoEvent(const AliHLTComponent_EventDat
                                                  AliHLTComponent_TriggerData& trigData, AliHLTUInt8_t* outputPtr, 
                                                  AliHLTUInt32_t& size, vector<AliHLTComponent_BlockData>& outputBlocks )
 {
+  if ( GetFirstInputBlock( kAliHLTDataTypeSOR ) || GetFirstInputBlock( kAliHLTDataTypeEOR ) )
+    return 0;
   return AliHLTTRDClusterizerComponent::DoEvent(evtData, blocks, trigData, outputPtr, size, outputBlocks );
 }
 
index 9e5a3b8..3399be2 100644 (file)
 
 #include "AliHLTTRDOfflineTrackerV1Component.h"
 #include "AliCDBManager.h"
+#include "AliTRDrecoParam.h"
+#include "AliHLTTRDDefinitions.h"
 
 ClassImp(AliHLTTRDOfflineTrackerV1Component)
     
-AliHLTTRDOfflineTrackerV1Component::AliHLTTRDOfflineTrackerV1Component():
-  AliHLTTRDTrackerV1Component()
+AliHLTTRDOfflineTrackerV1Component::AliHLTTRDOfflineTrackerV1Component()
+  :AliHLTTRDTrackerV1Component()
 {
   // Default constructor
-
+  fOffline=kTRUE;
 }
 
 AliHLTTRDOfflineTrackerV1Component::~AliHLTTRDOfflineTrackerV1Component()
@@ -40,6 +42,22 @@ AliHLTTRDOfflineTrackerV1Component::~AliHLTTRDOfflineTrackerV1Component()
   // Work is Done in DoDeInit()
 }
 
+int AliHLTTRDOfflineTrackerV1Component::GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList)
+{
+  // Get the output data types
+  tgtList.clear();
+  AliHLTTRDTrackerV1Component::GetOutputDataTypes(tgtList);
+  tgtList.push_back(AliHLTTRDDefinitions::fgkTRDOffTracksDataType);
+  return tgtList.size();
+}
+
+void AliHLTTRDOfflineTrackerV1Component::GetOutputDataSize( unsigned long& constBase, double& inputMultiplier )
+{
+  // Get the output data size
+  constBase = 1000000;
+  inputMultiplier = 4*((double)fOutputPercentage);
+}
+
 AliHLTComponent* AliHLTTRDOfflineTrackerV1Component::Spawn()
 {
   // Spawn function, return new instance of this class
@@ -48,8 +66,11 @@ AliHLTComponent* AliHLTTRDOfflineTrackerV1Component::Spawn()
 
 int AliHLTTRDOfflineTrackerV1Component::DoInit( int argc, const char** argv )
 {
+  int iResult = 0;
   SetOfflineParams();
-  return AliHLTTRDTrackerV1Component::DoInit(argc, argv);
+  iResult=AliHLTTRDTrackerV1Component::DoInit(argc, argv);
+  fRecoParam->SetStreamLevel(AliTRDrecoParam::kTracker, 1); //in order to have the friends written
+  return iResult;
 }
 
 const char* AliHLTTRDOfflineTrackerV1Component::GetComponentID()
@@ -59,21 +80,15 @@ const char* AliHLTTRDOfflineTrackerV1Component::GetComponentID()
 }
 
 void AliHLTTRDOfflineTrackerV1Component::SetOfflineParams(){
-  HLTFatal("You have entered the OFFLINE configuration!");
-  HLTFatal("This program shall NOT run on the HLT cluster like this!");
   if(!AliCDBManager::Instance()->IsDefaultStorageSet()){
     HLTFatal("You are resetting the Default Storage of the CDBManager!");
     HLTFatal("Let's hope that this program is NOT running on the HLT cluster!");
     AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
-  }else{
-    HLTError("DefaultStorage was already set!");
   }
   if(AliCDBManager::Instance()->GetRun()<0){
     HLTFatal("You are resetting the CDB run number to 0!");
     HLTFatal("Let's hope that this program is NOT running on the HLT cluster!");
     AliCDBManager::Instance()->SetRun(0);
-  }else{
-    HLTError("Run Number was already set!");
   }
 }
 
@@ -86,6 +101,7 @@ int AliHLTTRDOfflineTrackerV1Component::DoEvent(const AliHLTComponent_EventData&
                                                  AliHLTComponent_TriggerData& trigData, AliHLTUInt8_t* outputPtr, 
                                                  AliHLTUInt32_t& size, vector<AliHLTComponent_BlockData>& outputBlocks )
 {
+  if ( GetFirstInputBlock( kAliHLTDataTypeSOR ) || GetFirstInputBlock( kAliHLTDataTypeEOR ) )
+    return 0;
   return AliHLTTRDTrackerV1Component::DoEvent(evtData, blocks, trigData, outputPtr, size, outputBlocks );
 }
-
index eb2bdda..848ef69 100644 (file)
@@ -21,13 +21,15 @@ public:
   virtual ~AliHLTTRDOfflineTrackerV1Component();
 
   const char* GetComponentID();
+  int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList);
+  virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
   AliHLTComponent* Spawn();
 
   int DoInit( int argc, const char** argv );
   int DoDeinit();
   int DoEvent( const AliHLTComponent_EventData& evtData, const AliHLTComponent_BlockData* blocks, 
-              AliHLTComponent_TriggerData& trigData, AliHLTUInt8_t* outputPtr, 
-              AliHLTUInt32_t& size, vector<AliHLTComponent_BlockData>& outputBlocks );
+              AliHLTComponent_TriggerData& trigData, AliHLTUInt8_t* outputPtr, 
+              AliHLTUInt32_t& size, vector<AliHLTComponent_BlockData>& outputBlocks );
 
 protected:
   void SetOfflineParams();
index ab333c3..b9f7666 100644 (file)
@@ -75,7 +75,8 @@ AliHLTTRDTrackerV1Component::AliHLTTRDTrackerV1Component():
   fgeometryFileName(""),
   fieldStrength(-101),
   fSlowTracking(kFALSE),
-  fOutputV1Tracks(kTRUE)
+  fOutputV1Tracks(kTRUE),
+  fOffline(kFALSE)
 {
   // Default constructor
 
@@ -261,7 +262,7 @@ int AliHLTTRDTrackerV1Component::DoEvent( const AliHLTComponentEventData& evtDat
       TClonesArray* trdTracks;
       trdTracks = fTracker->GetListOfTracks();
       
-      if(nTracks>0){
+      if(!fOffline && nTracks>0){
        HLTDebug("We have an output ESDEvent: 0x%x with %i tracks", fESD, nTracks);
        AliHLTUInt32_t addedSize = AliHLTTRDUtils::AddESDToOutput(fESD, outputPtr+offset);
        totalSize += addedSize;
@@ -296,7 +297,13 @@ int AliHLTTRDTrackerV1Component::DoEvent( const AliHLTComponentEventData& evtDat
          offset = totalSize;
        }
       }
-      
+      if(fOffline){
+       if(trdTracks)
+         PushBack(trdTracks, AliHLTTRDDefinitions::fgkTRDOffTracksDataType, 0); 
+       else
+         PushBack(new TObject, AliHLTTRDDefinitions::fgkTRDOffTracksDataType, 0);
+      }
+
       HLTDebug("totalSize: %i", totalSize);
       
 //       if ( totalSize > allocSize )
index f794e63..cdbeb49 100644 (file)
@@ -13,7 +13,6 @@
 #include "AliHLTProcessor.h"
 
 class TFile;
-class TTree;
 
 class TGeoManager;
 class AliCDBManager;
@@ -68,7 +67,7 @@ protected:
   int Configure(const char* arguments);
   int SetParams();
        
-private:
+protected:
   /** copy constructor prohibited */
   AliHLTTRDTrackerV1Component(const AliHLTTRDTrackerV1Component&);
   /** assignment operator prohibited */
@@ -85,16 +84,17 @@ private:
 
   TClonesArray* fClusterArray;
 
-  Int_t fRecoParamType;     // default will be the low flux
-  Int_t fNtimeBins;         // number of time bins for the tracker to use
-  Int_t fMagneticField;     // magnetic field: 0==OFF and 1==ON
-  Int_t fPIDmethod;          // 0=LikelyHood(LH) 1=NeuronalNetwork(NN) 2=TruncatedMean(TM)
+  Int_t fRecoParamType;       // default will be the low flux
+  Int_t fNtimeBins;           // number of time bins for the tracker to use
+  Int_t fMagneticField;       // magnetic field: 0==OFF and 1==ON
+  Int_t fPIDmethod;           // 0=LikelyHood(LH) 1=NeuronalNetwork(NN) 2=TruncatedMean(TM)
   TString fgeometryFileName;
   Double_t fieldStrength;
   Bool_t fSlowTracking;
   Bool_t fOutputV1Tracks;
+  Bool_t fOffline;            // mode to compare HLT data with offline
 
-  ClassDef(AliHLTTRDTrackerV1Component, 3)
+  ClassDef(AliHLTTRDTrackerV1Component, 4)
 
 };
 #endif