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
25 * @class AliHLTHOMERSourceDesc
26 * This class contains the information of 1 homer source: hostname, port for the HOMER
27 * interface as well as data specifications. It used in order to fill these sources in
28 * TLists. ( It has to inherit from TObject ). Further more it knows if this source was
29 * selected for read from a user. Mainly used in the AliEVEHOMERManager, as source
32 * @ingroup alihlt_homer
34 class AliHLTHOMERSourceDesc : public TNamed {
38 /** standard constructor */
39 AliHLTHOMERSourceDesc();
42 * @param hostname hostname of the source
43 * @param port port of the source
45 AliHLTHOMERSourceDesc( TString hostname, Int_t port );
48 virtual ~AliHLTHOMERSourceDesc();
52 /** Set selection state
53 * @param state state, either kTRUE or kFALSE
55 void SetState( Bool_t state ) { fSelected = state; }
57 /** Checks if Source is selected to readout
58 * @return returns state, either kTRUE or kFALSE
60 Bool_t IsSelected() { return fSelected; }
62 /** Select this source */
63 void Select() { fSelected = kTRUE; }
65 /** Deselect this source */
66 void Deselect() { fSelected = kFALSE; }
70 /** Set node name of this source
71 * @param hostname hostname of the source
72 * @param port port of the source
74 void SetHostnamePort( TString hostname, Int_t port ) { fHostname = hostname; fPort = port; }
76 /** Set name/obj name of this source
77 * @param s1 source name
78 * @param s2 source class name, default is ""
80 void SetSourceName( TString s1, TString s2="" ) { fSourceName = s1; fClassName = s2; }
82 /** Set detector, sub detector and sub sub detector of this source
83 * @param s1 detector name
84 * @param s2 subdetector name
85 * @param s3 subsubdetector name
87 void SetDetectors( TString s1, TString s2, TString s3 ) { fDetector = s1; fSubDetector = s2; fSubSubDetector = s3; }
89 /** Set HLT specification anf HLT data type of this source
90 * @param ul HLT specification
91 * @param s HLT data type
93 void SetSourceType( ULong_t ul, TString s ) { fSpecification = ul, fDataType = s; }
97 /** Get node name of this source
100 TString GetHostname() { return fHostname; }
102 /** Get node name of this source
105 Int_t GetPort() { return fPort; }
107 /** Get name of this source
110 TString GetSourceName() { return fSourceName; }
112 /** Get object name of this source
115 TString GetClassName() { return fClassName; }
117 /** Get detector of this source
120 TString GetDetector() { return fDetector; }
122 /** Get sub detector of this source
123 * @return subdetector
125 TString GetSubDetector() { return fSubDetector; }
127 /** Get sub sub detector of this source
128 * @return subsubdetector
130 TString GetSubSubDetector() { return fSubSubDetector; }
132 /** Get HLT data type of this source
133 * @return HLT data type
135 TString GetDataType() { return fDataType; }
137 /** Get HLT specification of this source
138 * @return HLT specification
140 ULong_t GetSpecification() { return fSpecification; }
144 /** copy constructor prohibited */
145 AliHLTHOMERSourceDesc(const AliHLTHOMERSourceDesc&);
147 /** assignment operator prohibited */
148 AliHLTHOMERSourceDesc& operator=(const AliHLTHOMERSourceDesc&);
150 /** is selected to read out */
151 Bool_t fSelected; // see above
153 /** Name of HOMER Node */
154 TString fHostname; // see above
156 /** Name of HOMER port */
157 Int_t fPort; // see above
159 /** Name of Source */
160 TString fSourceName; // see above
162 /** Object Name of Source */
163 TString fClassName; // see above
165 /** Detector Name, e.g. PHOS
166 * corresponds to HLT origin
168 TString fDetector; // see above
170 /** SubDetector Name e.g. MODULE */
171 TString fSubDetector; // see above
173 /** SubSubDetector Name e.g. PARTITION */
174 TString fSubSubDetector; // see above
176 /** HLT Specification */
177 ULong_t fSpecification; // see above
180 TString fDataType; // see above
182 ClassDef( AliHLTHOMERSourceDesc, 0 )