speedup Tracker by not initializing AliESDEvent completely and thus speeding up the...
authorrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sat, 13 Feb 2010 13:32:37 +0000 (13:32 +0000)
committerrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sat, 13 Feb 2010 13:32:37 +0000 (13:32 +0000)
HLT/TRD/AliHLTTRDTrackerV1Component.cxx
HLT/TRD/AliHLTTRDTrackerV1Component.h

index 2c04dd9..032a783 100644 (file)
@@ -1,4 +1,4 @@
-// $Id: AliHLTTRDTrackerV1Component.cxx 23618 2008-01-29 13:07:38Z hristov $
+// $Id$
 
 //**************************************************************************
 //* This file is property of and copyright by the ALICE HLT Project        * 
@@ -51,7 +51,20 @@ using namespace std;
 #include <string>
 
 ClassImp(AliHLTTRDTrackerV1Component)
-    
+
+void AliHLTTRDTrackerV1Component::AliHLTTRDESDEvent::CreateStdContent()
+{
+  TClonesArray* tracksArray = new TClonesArray("AliESDtrack",0);
+  tracksArray->SetName(AliESDEvent::fgkESDListName[AliESDEvent::kTracks]);
+  AddObject(tracksArray);
+  GetStdContent();
+}
+
+void AliHLTTRDTrackerV1Component::AliHLTTRDESDEvent::Streamer(TBuffer &/*R__b*/)
+{
+  AliFatal("class is for internal us only and not for streaming");
+}
+
 AliHLTTRDTrackerV1Component::AliHLTTRDTrackerV1Component():
   AliHLTProcessor(),
   fOutputPercentage(100), // By default we copy to the output exactly what we got as input 
@@ -128,10 +141,9 @@ int AliHLTTRDTrackerV1Component::DoInit( int argc, const char** argv )
 
   fReconstructor = new AliTRDReconstructor();
   HLTDebug("TRDReconstructor at 0x%x", fReconstructor);
-
-  fESD = new AliESDEvent;
+  fESD = new AliHLTTRDESDEvent();
   fESD->CreateStdContent();
-  
+
   TString configuration="";
   TString argument="";
   for (int i=0; i<argc && iResult>=0; i++) {
index e3335c6..fd19adb 100644 (file)
     @brief  Declaration of a TRDTracker component. */
 
 #include "AliHLTProcessor.h"
+#include "AliESDEvent.h"
 
 class TFile;
-
 class TGeoManager;
 class AliCDBManager;
 class AliMagF;
 class AliTRDtrackerV1;
 class AliTRDrecoParam;
 class AliTRDReconstructor;
-class AliESDEvent;
 class TClonesArray;
+class TBuffer;
 
 /**
  * @class AliHLTTRDTrackerV1Component
@@ -32,6 +32,19 @@ class TClonesArray;
 
 class AliHLTTRDTrackerV1Component : public AliHLTProcessor
 {
+protected:
+
+  class AliHLTTRDESDEvent : public AliESDEvent
+  {
+    // Here we use our own slim version of AliESDEvent 
+    // by overwriting AliESDEvent::CreateStdContent
+  public:
+    void CreateStdContent();
+
+    // streamer function is prohibited, class for internal use only
+    void Streamer(TBuffer &R__b);
+  };
+
 public:
   AliHLTTRDTrackerV1Component();
   virtual ~AliHLTTRDTrackerV1Component();
@@ -66,7 +79,7 @@ protected:
   
   int Configure(const char* arguments);
   int SetParams();
-       
+
 protected:
   /** copy constructor prohibited */
   AliHLTTRDTrackerV1Component(const AliHLTTRDTrackerV1Component&);
@@ -79,8 +92,8 @@ protected:
        
   AliTRDtrackerV1 *fTracker;//! Offline-pure/HLT tracker V1
   AliTRDrecoParam *fRecoParam; //! Offline reco params
-  AliTRDReconstructor * fReconstructor;
-  AliESDEvent*     fESD;
+  AliTRDReconstructor* fReconstructor;
+  AliHLTTRDESDEvent* fESD;
 
   TClonesArray* fClusterArray;