1 #ifndef ALIHLTMUONEVENT_H
2 #define ALIHLTMUONEVENT_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 */
10 /// @file AliHLTMUONRootifierComponent.h
11 /// @author Artur Szostak <artursz@iafrica.com>
13 /// @brief Declaration of class for storing ROOTified data objects for one event.
16 #include "TObjArray.h"
17 #include "AliHLTMUONDataTypes.h"
19 class AliHLTMUONDecision;
22 class AliHLTMUONEvent : public TObject
26 /// AliHLTMUONEvent class contructor.
27 /// \param eventId The event identifier number for this event. Set to -1 by default.
28 AliHLTMUONEvent(AliHLTEventID_t eventId = AliHLTEventID_t(-1))
29 : TObject(), fEventId(eventId), fArray()
31 fArray.SetOwner(kTRUE);
34 /// Copy constructor performs a deep copy of the object.
35 AliHLTMUONEvent(const AliHLTMUONEvent& event);
37 /// The assignment operator performs a deep copy of the object.
38 AliHLTMUONEvent& operator = (const AliHLTMUONEvent& event);
40 /// Default destructor.
41 virtual ~AliHLTMUONEvent() {}
43 /// Returns the corresponding event ID for the data objects.
44 AliHLTEventID_t EventID() const { return fEventId; }
46 /// Returns the array of data objects for this event.
47 const TObjArray& Array() const { return fArray; }
49 /// Returns the array of data objects for this event.
50 const TObjArray& DataObjects() const { return fArray; }
52 /// Finds the decision object in the array of dHLT objects.
53 const AliHLTMUONDecision* FindDecision() const;
56 * Overloaded to find the object given by name in the array of event objects.
57 * \param name The name of the object to find. This will be the class
58 * name if the object in the array does not overload the GetName
60 * \returns The pointer to the found object or NULL if none was found.
62 virtual TObject* FindObject(const char* name) const
64 return fArray.FindObject(name);
68 * Overloaded to find the object for which obj->IsEqual() is true in
69 * the array of event objects.
70 * \param obj The object to compare to.
71 * \returns The pointer to the found object or NULL if none was found.
73 virtual TObject* FindObject(const TObject* obj) const
75 return fArray.FindObject(obj);
78 /// Adds an object to the event.
79 /// \note This method takes ownership of the object.
80 void Add(TObject* obj) { fArray.Add(obj); }
82 /// Inherited method for printing information about all objects in the event.
83 virtual void Print(Option_t* option = NULL) const;
85 /// Inherited method for clearing the event.
86 virtual void Clear(Option_t* option = "");
88 /// Inherited method for deep copying the event.
89 virtual void Copy(TObject& object) const;
93 /// Performs a deep copy of the event. Assumes this event is already cleared and empty.
94 void DeepCopy(const AliHLTMUONEvent& event);
96 AliHLTEventID_t fEventId; ///< The event ID.
97 TObjArray fArray; ///< Array of event objects.
99 ClassDef(AliHLTMUONEvent, 3); // Container class for dHLT event results.
102 #endif // ALIHLTMUONEVENT_H