]>
Commit | Line | Data |
---|---|---|
9acda34c | 1 | #ifndef ALIHLTMUONROOTIFIERCOMPONENT_H |
2 | #define ALIHLTMUONROOTIFIERCOMPONENT_H | |
3 | /* This file is property of and copyright by the ALICE HLT Project * | |
4 | * ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
6 | ||
7 | /* $Id$ */ | |
8 | ||
9 | /** | |
10 | * @file AliHLTMUONRootifierComponent.h | |
11 | * @author Artur Szostak <artursz@iafrica.com> | |
12 | * @date | |
13 | * @brief Component for converting dHLT raw data into ROOT objects. | |
14 | */ | |
15 | ||
16 | #include "AliHLTProcessor.h" | |
17 | ||
18 | // Temporary solution for grouping together objects for the same event. | |
19 | #include "TObjArray.h" | |
20 | class AliHLTMUONEvent : public TObject | |
21 | { | |
22 | public: | |
23 | ||
24 | AliHLTMUONEvent(AliHLTEventID_t eventId = AliHLTEventID_t(-1)) | |
25 | : fEventId(eventId) | |
26 | { | |
27 | fArray.SetOwner(kTRUE); | |
28 | } | |
29 | ||
30 | virtual ~AliHLTMUONEvent() {} | |
31 | ||
32 | AliHLTEventID_t EventID() const { return fEventId; } | |
33 | const TObjArray& Array() const { return fArray; } | |
34 | ||
35 | // Takes ownership of the object. | |
36 | void Add(TObject* obj) { fArray.Add(obj); } | |
37 | ||
38 | virtual void Print(Option_t* option = NULL) const | |
39 | { | |
40 | cout << "################## EVENT: " << fEventId << " ##################" << endl; | |
41 | for (Int_t i = 0; i < fArray.GetEntriesFast(); i++) | |
42 | if (fArray[i] != NULL) fArray[i]->Print(option); | |
43 | } | |
44 | ||
45 | private: | |
46 | ||
47 | AliHLTEventID_t fEventId; | |
48 | TObjArray fArray; | |
49 | ||
50 | ClassDef(AliHLTMUONEvent, 1); // Container class for dHLT event results. | |
51 | }; | |
52 | ||
53 | ||
54 | /** | |
55 | * Converts dHLT raw data blocks into ROOT objects. | |
56 | */ | |
57 | class AliHLTMUONRootifierComponent : public AliHLTProcessor | |
58 | { | |
59 | public: | |
60 | ||
61 | AliHLTMUONRootifierComponent(); | |
62 | virtual ~AliHLTMUONRootifierComponent(); | |
63 | ||
64 | int DoEvent(const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData); | |
65 | ||
66 | virtual const char* GetComponentID(); | |
67 | ||
68 | virtual void GetInputDataTypes(vector<AliHLTComponentDataType>& list); | |
69 | virtual AliHLTComponentDataType GetOutputDataType(); | |
70 | ||
71 | virtual void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier); | |
72 | ||
73 | virtual AliHLTComponent* Spawn(); | |
74 | ||
75 | protected: | |
76 | ||
77 | virtual int DoInit(int argc, const char** argv); | |
78 | virtual int DoDeinit(); | |
79 | ||
80 | private: | |
81 | ||
82 | // Prevent copying of these objects. | |
83 | AliHLTMUONRootifierComponent(const AliHLTMUONRootifierComponent& /*object*/); | |
84 | AliHLTMUONRootifierComponent& operator = (const AliHLTMUONRootifierComponent& /*object*/); | |
85 | ||
86 | ClassDef(AliHLTMUONRootifierComponent, 0); // Converter component of dHLT raw data. | |
87 | }; | |
88 | ||
89 | #endif // ALIHLTMUONROOTIFIERCOMPONENT_H |