7ea03bc98a66e13152208432f28bac7cb7802177
[u/mrichter/AliRoot.git] / HLT / MUON / OnlineAnalysis / AliHLTMUONHitReconstructorComponent.h
1 #ifndef ALIHLTMUONHITRECONSTRUCTORCOMPONENT_H
2 #define ALIHLTMUONHITREONSTRUCTORCCOMPONENT_H
3 /**************************************************************************
4  * This file is property of and copyright by the ALICE HLT Project        * 
5  * All rights reserved.                                                   *
6  *                                                                        *
7  * Primary Authors:                                                       *
8  *   Indranil Das <indra.das@saha.ac.in>                                  *
9  *                                                                        *
10  * Permission to use, copy, modify and distribute this software and its   *
11  * documentation strictly for non-commercial purposes is hereby granted   *
12  * without fee, provided that the above copyright notice appears in all   *
13  * copies and that both the copyright notice and this permission notice   *
14  * appear in the supporting documentation. The authors make no claims     *
15  * about the suitability of this software for any purpose. It is          * 
16  * provided "as is" without express or implied warranty.                  *
17  **************************************************************************/
18
19 /* $Id$ */
20
21 ///*  @file   AliHLTMUONHitReconstructorComponent.h
22 // *  @author Indranil Das <indra.das@saha.ac.in> | <indra.ehep@gmail.com>
23 // *  @date   
24 // *  @brief  Hit Reconstruction processing component for the dimuon HLT. 
25 // */
26
27 #include "AliHLTProcessor.h"
28 #include <TString.h>
29 #include "AliHLTMUONHitReconstructor.h"
30
31 #if __GNUC__ && __GNUC__ < 3
32 #define std
33 #endif
34
35
36 class AliHLTMUONHitReconstructorComponent : public AliHLTProcessor
37 {
38     public:
39         AliHLTMUONHitReconstructorComponent();
40         virtual ~AliHLTMUONHitReconstructorComponent();
41
42         // Public functions to implement AliHLTComponent's interface.
43         // These functions are required for the registration process
44
45         const char* GetComponentID();
46         void GetInputDataTypes(std::vector<AliHLTComponentDataType>& list);
47         AliHLTComponentDataType GetOutputDataType();
48         virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
49         AliHLTComponent* Spawn();
50         
51     protected:
52         
53         // Protected functions to implement AliHLTComponent's interface.
54         // These functions provide initialization as well as the actual processing
55         // capabilities of the component. 
56
57         int DoInit(int argc, const char** argv);
58         int DoDeinit();
59         int DoEvent(
60                         const AliHLTComponentEventData& evtData,
61                         const AliHLTComponentBlockData* blocks,
62                         AliHLTComponentTriggerData& trigData,
63                         AliHLTUInt8_t* outputPtr, 
64                         AliHLTUInt32_t& size,
65                         std::vector<AliHLTComponentBlockData>& outputBlocks
66                 );
67         
68     private:
69         
70         AliHLTMUONHitReconstructor* fHitRec;
71         bool ReadLookUpTable(AliHLTMUONHitReconstructor::DHLTLut* lookupTable, const char* lutpath);
72         bool ReadBusPatchToDetElemFile(BusToDetElem& busToDetElem, BusToDDL& busToDDL, const char* buspatchmappath);
73
74         TString fDDLDir;
75         Int_t fDDL;
76         bool fReaderType;
77         bool fWarnForUnexpecedBlock;  // Flag indicating if we should log a warning if we got a block of an unexpected type.
78
79         ClassDef(AliHLTMUONHitReconstructorComponent, 0)
80 };
81
82 #endif // ALIHLTMUONHITRECONSTRUCTORCOMPONENT_H