]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/MUON/OnlineAnalysis/AliHLTMUONFullTrackerComponent.h
Adding new tracker to handle all chambers for dHLT. (Indra)
[u/mrichter/AliRoot.git] / HLT / MUON / OnlineAnalysis / AliHLTMUONFullTrackerComponent.h
1 #ifndef ALIHLTMUONFULLTRACKERCOMPONENT_H
2 #define ALIHLTMUONFULLTRACKERCOMPONENT_H
3
4 //* This file is property of and copyright by the ALICE HLT Project        * 
5 //* ALICE Experiment at CERN, All rights reserved.                         *
6 //* See cxx source for full Copyright notice                               */
7
8
9 /// \ingroup libAliHLTMUON.so
10 /// \class AliHLTMUONFullTrackerComponent
11 /// \brief Component to handle full tracker
12 ///
13 //  Indranil Das, email : indra.das@saha.ac.in | indra.ehep@gmail.com , Saha Institute of Nuclear Physics
14
15 #include "AliHLTMUONProcessor.h"
16 #include "AliHLTMUONFullTracker.h"
17 #include <cassert>
18
19 class AliHLTMUONFullTrackerComponent : public AliHLTMUONProcessor {
20  public:
21   /// Constructor
22   AliHLTMUONFullTrackerComponent();
23   /// Destructor
24   virtual ~AliHLTMUONFullTrackerComponent();
25
26   /// Get the component ID
27   const char* GetComponentID();
28   /// Get Output Data Types
29   void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
30   /// Get Output Data Types
31   AliHLTComponentDataType GetOutputDataType();
32   /// Output Data Types
33   virtual int GetOutputDataTypes(AliHLTComponentDataTypeList& list);
34   /// Output Data Sizes
35   virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
36   /// Spawn
37   AliHLTComponent* Spawn();
38
39  protected:
40   // AliHLTComponent interface functions
41   int DoInit( int argc, const char** argv );
42   /// DeInitialisation
43   int DoDeinit();
44   /// Process events
45   int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks, 
46                AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, 
47                AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
48   /// Reconfigure
49   int Reconfigure(const char* cdbEntry, const char* chainId);
50   /// Read preprocessor values
51   int ReadPreprocessorValues(const char* modules);
52
53   using AliHLTProcessor::DoEvent;
54
55  private:
56
57   // Do not allow copying of this class.
58   /// Not implemented.
59   AliHLTMUONFullTrackerComponent(const AliHLTMUONFullTrackerComponent& /*obj*/);
60   /// Not implemented.
61   AliHLTMUONFullTrackerComponent& operator = (const AliHLTMUONFullTrackerComponent& /*obj*/);
62
63   /**
64    * Configure the component.
65    * Parse a string for the configuration arguments and set the component
66    * properties.
67    *
68    * This function illustrates the scanning of an argument string. The string
69    * was presumably fetched from the CDB.
70    */
71   int Configure(const char* arguments);
72   /// % of output data blocks
73   unsigned fOutputPercentage; // see above
74   /// Pointer to the full tracker
75   AliHLTMUONFullTracker *fTracker;
76   
77   ClassDef(AliHLTMUONFullTrackerComponent, 0)
78     };
79 #endif