ALIROOT-5433 Transition to CDHv3 in HLT
[u/mrichter/AliRoot.git] / HLT / MUON / AliHLTMUONEvent.h
CommitLineData
450e0b36 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 */
6
1d8ae082 7// $Id: $
450e0b36 8
9///
10/// @file AliHLTMUONRootifierComponent.h
11/// @author Artur Szostak <artursz@iafrica.com>
12/// @date 9 May 2008
13/// @brief Declaration of class for storing ROOTified data objects for one event.
14///
15
16#include "TObjArray.h"
17#include "AliHLTMUONDataTypes.h"
18
19class AliHLTMUONDecision;
20
21
22class AliHLTMUONEvent : public TObject
23{
24public:
25
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))
92aebaf3 29 : TObject(), fEventId(eventId), fArray()
450e0b36 30 {
31 fArray.SetOwner(kTRUE);
32 }
33
f30da7b8 34 /// Copy constructor performs a deep copy of the object.
35 AliHLTMUONEvent(const AliHLTMUONEvent& event);
36
37 /// The assignment operator performs a deep copy of the object.
38 AliHLTMUONEvent& operator = (const AliHLTMUONEvent& event);
39
450e0b36 40 /// Default destructor.
41 virtual ~AliHLTMUONEvent() {}
42
43 /// Returns the corresponding event ID for the data objects.
44 AliHLTEventID_t EventID() const { return fEventId; }
45
46 /// Returns the array of data objects for this event.
47 const TObjArray& Array() const { return fArray; }
48
49 /// Returns the array of data objects for this event.
50 const TObjArray& DataObjects() const { return fArray; }
51
52 /// Finds the decision object in the array of dHLT objects.
53 const AliHLTMUONDecision* FindDecision() const;
54
27414e93 55 /**
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
59 * method.
60 * \returns The pointer to the found object or NULL if none was found.
61 */
62 virtual TObject* FindObject(const char* name) const
63 {
64 return fArray.FindObject(name);
65 }
66
67 /**
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.
72 */
73 virtual TObject* FindObject(const TObject* obj) const
74 {
75 return fArray.FindObject(obj);
76 }
77
450e0b36 78 /// Adds an object to the event.
79 /// \note This method takes ownership of the object.
80 void Add(TObject* obj) { fArray.Add(obj); }
81
82 /// Inherited method for printing information about all objects in the event.
83 virtual void Print(Option_t* option = NULL) const;
f30da7b8 84
85 /// Inherited method for clearing the event.
86 virtual void Clear(Option_t* option = "");
87
88 /// Inherited method for deep copying the event.
89 virtual void Copy(TObject& object) const;
450e0b36 90
91private:
92
42d1b43c 93 /// Performs a deep copy of the event. Assumes this event is already cleared and empty.
94 void DeepCopy(const AliHLTMUONEvent& event);
95
450e0b36 96 AliHLTEventID_t fEventId; ///< The event ID.
97 TObjArray fArray; ///< Array of event objects.
98
92aebaf3 99 ClassDef(AliHLTMUONEvent, 3); // Container class for dHLT event results.
450e0b36 100};
101
102#endif // ALIHLTMUONEVENT_H