Added the dimuon trigger decision component, its default configuration CDB entries...
[u/mrichter/AliRoot.git] / HLT / MUON / OfflineInterface / AliHLTMUONAgent.cxx
1 /**************************************************************************
2  * Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15
16 /* $Id$ */
17
18 ///
19 /// @file   AliHLTMUONAgent.cxx
20 /// @author Artur Szostak <artursz@iafrica.com>
21 /// @date   
22 /// @brief  Implementation of the AliHLTMUONAgent class.
23 ///
24
25 #include "AliHLTMUONAgent.h"
26 #include "AliHLTMUONRecHitsSource.h"
27 #include "AliHLTMUONTriggerRecordsSource.h"
28 #include "AliHLTMUONRootifierComponent.h"
29 #include "AliHLTMUONHitReconstructorComponent.h"
30 #include "AliHLTMUONTriggerReconstructorComponent.h"
31 #include "AliHLTMUONMansoTrackerFSMComponent.h"
32 #include "AliHLTMUONDecisionComponent.h"
33 #include "AliHLTMUONEmptyEventFilterComponent.h"
34 #include "AliRunLoader.h"
35
36 // The single global instance of the dimuon HLT agent.
37 AliHLTMUONAgent AliHLTMUONAgent::fgkInstance;
38
39 ClassImp(AliHLTMUONAgent);
40
41
42 AliHLTMUONAgent::AliHLTMUONAgent() : AliHLTModuleAgent("MUON")
43 {
44         ///
45         /// Default constructor.
46         ///
47 }
48
49 AliHLTMUONAgent::~AliHLTMUONAgent()
50 {
51         ///
52         /// Default destructor.
53         ///
54 }
55
56 const char* AliHLTMUONAgent::GetReconstructionChains(AliRawReader* /*rawReader*/,
57                                                      AliRunLoader* /*runloader*/
58         ) const
59 {
60         ///
61         /// Inherited from AliHLTModuleAgent.
62         /// Returns the top processing chain configurations for local event
63         /// reconstruction.
64         /// @param rawReader  [in] AliRoot rawreader instance.
65         /// @param runloader  [in] AliRoot runloader
66         /// @return string containing the top configurations separated by blanks.
67         ///
68         
69         return "dhlt-simhits";
70 }
71
72 const char* AliHLTMUONAgent::GetRequiredComponentLibraries() const
73 {
74         ///
75         /// Inherited from AliHLTModuleAgent.
76         /// Returns a list of libraries which the configurations registered by
77         /// this module agent depend on.
78         /// @return list of component libraries as a blank-separated string.
79         ///
80         
81         return "libGeom.so libMinuit.so libEG.so libTreePlayer.so libXMLIO.so "
82                 "libVMC.so libESD.so libSTEER.so libGui.so libMUONraw.so libMUONgeometry.so "
83                 "libMUONmapping.so libMUONcalib.so libMUONbase.so libMUONsim.so libAliHLTMUON.so";
84 }
85
86
87 int AliHLTMUONAgent::CreateConfigurations(
88                 AliHLTConfigurationHandler* handler,
89                 AliRawReader* /*rawReader*/,
90                 AliRunLoader* /*runloader*/
91         ) const
92 {
93         ///
94         /// Register all processing configurations belonging to the dimuon HLT
95         /// library with the AliHLTConfigurationHandler.
96         /// @param handler      the configuration handler
97         /// @param rawReader  [in] AliRoot rawreader instance.
98         /// @param runloader    AliRoot runloader
99         /// @return Zero on success and error code if failed.
100         ///
101         
102         if (handler == NULL) return 0;
103         handler->CreateConfiguration("dhlt-simhits", "DimuoRecHitsSource", NULL, "-simdata");
104         return 0;
105 }
106
107
108 int AliHLTMUONAgent::RegisterComponents(AliHLTComponentHandler* pHandler) const
109 {
110         ///
111         /// Registers all available components of this module.
112         /// @param pHandler  [in] instance of the component handler.
113         ///
114         
115         if (pHandler == NULL) return -EINVAL;
116         pHandler->AddComponent(new AliHLTMUONRecHitsSource);
117         pHandler->AddComponent(new AliHLTMUONTriggerRecordsSource);
118         pHandler->AddComponent(new AliHLTMUONRootifierComponent);
119         pHandler->AddComponent(new AliHLTMUONHitReconstructorComponent);
120         pHandler->AddComponent(new AliHLTMUONTriggerReconstructorComponent);
121         pHandler->AddComponent(new AliHLTMUONMansoTrackerFSMComponent);
122         pHandler->AddComponent(new AliHLTMUONDecisionComponent);
123         pHandler->AddComponent(new AliHLTMUONEmptyEventFilterComponent);
124         return 0;
125 }
126