]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/EveHLT/AliEveHOMERSourceMap.cxx
Coverity
[u/mrichter/AliRoot.git] / EVE / EveHLT / AliEveHOMERSourceMap.cxx
1 // $Id$
2 // Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007
3
4 /**************************************************************************
5  * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
6  * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for          *
7  * full copyright notice.                                                 *
8  **************************************************************************/
9
10 #include "AliEveHOMERSourceMap.h"
11
12 //______________________________________________________________________
13 //
14 // AliEveHOMERSourceMap is an abstract container for HLT HOMER sources,
15 // see AliHLTHOMERSourceDesc.
16 //
17 // The concrete implementations AliEveHOMERSourceMapByDet and
18 // AliEveHOMERSourceMapByType allow retrieval of HOMER sources in proper
19 // order as required for their display in EVE object browser.
20 // 
21
22 ClassImp(AliEveHOMERSourceMap)
23
24 AliEveHOMERSourceMap::AliEveHOMERSourceMap(ESourceGrouping_e grouping) :
25   fGrouping(grouping)
26 {
27   // Constructor.
28 }
29
30 AliEveHOMERSourceMap* AliEveHOMERSourceMap::Create(ESourceGrouping_e grouping)
31 {
32   // Static constructor - instantiates appropriate sub-class.
33
34   switch (grouping)
35   {
36     case kSG_ByDet:  return new AliEveHOMERSourceMapByDet(grouping);
37     case kSG_ByType: return new AliEveHOMERSourceMapByType(grouping);
38   }
39   return 0;
40 }
41
42 Int_t AliEveHOMERSourceMap::iterator::level()
43 {
44   // Returns the depth in iteration:
45   // Det / Sub-Det / Sub-Sub-Det / Data-Type.
46
47   const AliEveHOMERSource::SourceId& sid = id();
48
49   Int_t lvl = 0;
50   if ( ! sid.fDet.IsNull())   ++lvl;
51   if ( ! sid.fSDet.IsNull())  ++lvl;
52   if ( ! sid.fSSDet.IsNull()) ++lvl;
53   if ( ! sid.fType.IsNull())  ++lvl;
54   return lvl;
55 }
56
57 void AliEveHOMERSourceMap::PrintXXX()
58 {
59   // Print entries in the map.
60
61   for (iterator i = begin(); i != end(); ++i)
62   {
63     printf("%*s%s [state=%d, handle=0x%lx] {ssdet='%s'}\n", 4*i.level(), "",
64            i.description().Data(), i.state().fState,
65            (ULong_t) i.state().fHandle,
66            i.id().fSSDet.Data());
67   }
68 }