2 #ifndef ALIHLTHOMERSOURCEDESC_H
3 #define ALIHLTHOMERSOURCEDESC_H
5 /* This file is property of and copyright by the ALICE HLT Project *
6 * ALICE Experiment at CERN, All rights reserved. *
7 * See cxx source for full Copyright notice */
9 /** @file AliHLTHOMERSourceDesc.h
10 @author Jochen Thaeder
12 @brief Container for HOMER Sources
15 // see below for class documentation
17 // refer to README to build package
19 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
22 * @defgroup alihlt_homer HOMER handling for AliROOT
23 * This section describes the handling of HOMER Sources, Blocks
24 * and the HOMER Reader inside the HLT and AliROOT
31 * @class AliHLTHOMERSourceDesc
32 * This class contains the information of 1 homer source: hostname, port for the HOMER
33 * interface as well as data specifications. It used in order to fill these sources in
34 * TLists. ( It has to inherit from TObject ). Further more it knows if this source was
35 * selected for read from a user. Mainly used in the AliEVEHOMERManager, as source
38 * @ingroup alihlt_homer
40 class AliHLTHOMERSourceDesc : public TNamed {
44 /** standard constructor */
45 AliHLTHOMERSourceDesc();
48 * @param hostname hostname of the source
49 * @param port port of the source
51 AliHLTHOMERSourceDesc( TString hostname, Int_t port );
54 virtual ~AliHLTHOMERSourceDesc();
58 /** Set selection state
59 * @param state state, either kTRUE or kFALSE
61 void SetState( Bool_t state ) { fSelected = state; }
63 /** Checks if Source is selected to readout
64 * @return returns state, either kTRUE or kFALSE
66 Bool_t IsSelected() { return fSelected; }
68 /** Select this source */
69 void Select() { fSelected = kTRUE; }
71 /** Deselect this source */
72 void Deselect() { fSelected = kFALSE; }
76 /** Set node name of this source
77 * @param hostname hostname of the source
78 * @param port port of the source
80 void SetHostnamePort( TString hostname, Int_t port ) { fHostname = hostname; fPort = port; }
82 /** Set name/obj name of this source
83 * @param s1 source name
84 * @param s2 source class name, default is ""
86 void SetSourceName( TString s1, TString s2="" ) { fSourceName = s1; fClassName = s2; }
88 /** Set detector, sub detector and sub sub detector of this source
89 * @param s1 detector name
90 * @param s2 subdetector name
91 * @param s3 subsubdetector name
93 void SetDetectors( TString s1, TString s2, TString s3 ) { fDetector = s1; fSubDetector = s2; fSubSubDetector = s3; }
95 /** Set HLT specification anf HLT data type of this source
96 * @param ul HLT specification
97 * @param s HLT data type
99 void SetSourceType( ULong_t ul, TString s ) { fSpecification = ul, fDataType = s; }
103 /** Get node name of this source
106 TString GetHostname() { return fHostname; }
108 /** Get node name of this source
111 Int_t GetPort() { return fPort; }
113 /** Get name of this source
116 TString GetSourceName() { return fSourceName; }
118 /** Get object name of this source
121 TString GetClassName() { return fClassName; }
123 /** Get detector of this source
126 TString GetDetector() { return fDetector; }
128 /** Get sub detector of this source
129 * @return subdetector
131 TString GetSubDetector() { return fSubDetector; }
133 /** Get sub sub detector of this source
134 * @return subsubdetector
136 TString GetSubSubDetector() { return fSubSubDetector; }
138 /** Get HLT data type of this source
139 * @return HLT data type
141 TString GetDataType() { return fDataType; }
143 /** Get HLT specification of this source
144 * @return HLT specification
146 ULong_t GetSpecification() { return fSpecification; }
150 /** copy constructor prohibited */
151 AliHLTHOMERSourceDesc(const AliHLTHOMERSourceDesc&);
153 /** assignment operator prohibited */
154 AliHLTHOMERSourceDesc& operator=(const AliHLTHOMERSourceDesc&);
156 /** is selected to read out */
157 Bool_t fSelected; // see above
159 /** Name of HOMER Node */
160 TString fHostname; // see above
162 /** Name of HOMER port */
163 Int_t fPort; // see above
165 /** Name of Source */
166 TString fSourceName; // see above
168 /** Object Name of Source */
169 TString fClassName; // see above
171 /** Detector Name, e.g. PHOS
172 * corresponds to HLT origin
174 TString fDetector; // see above
176 /** SubDetector Name e.g. MODULE */
177 TString fSubDetector; // see above
179 /** SubSubDetector Name e.g. PARTITION */
180 TString fSubSubDetector; // see above
182 /** HLT Specification */
183 ULong_t fSpecification; // see above
186 TString fDataType; // see above
188 ClassDef( AliHLTHOMERSourceDesc, 0 )