#include "AliMUONPainterDataRegistry.h"
#include "AliMpManuIterator.h"
#include "AliMUON2DMap.h"
#include "AliMUONCalibParamND.h"
#include "AliMUONTrackerData.h"
#include "AliMUONVTrackerDataMaker.h"
#include "AliLog.h"
#include <THashList.h>
#include <TObjArray.h>
#include <TString.h>
#include <Riostream.h>
using std::cout;
using std::endl;
ClassImp(AliMUONPainterDataRegistry)
AliMUONPainterDataRegistry* AliMUONPainterDataRegistry::fgInstance(0x0);
AliMUONPainterDataRegistry::AliMUONPainterDataRegistry() : TObject(), TQObject(),
fDataMakers(new TObjArray),
fZombies(new TObjArray),
fInteractiveReadOutConfig(0x0)
{
fDataMakers->SetOwner(kTRUE);
fZombies->SetOwner(kTRUE);
}
AliMUONPainterDataRegistry::~AliMUONPainterDataRegistry()
{
delete fDataMakers;
delete fInteractiveReadOutConfig;
}
void
AliMUONPainterDataRegistry::CreateInteractiveReadOutConfig() const
{
fInteractiveReadOutConfig = new AliMUONTrackerData("IROC","IROC",1);
fInteractiveReadOutConfig->SetDimensionName(0,"Switch");
fInteractiveReadOutConfig->DisableChannelLevel();
AliMpManuIterator it;
Int_t detElemId;
Int_t manuId;
AliMUON2DMap store(true);
while ( it.Next(detElemId,manuId) )
{
AliMUONVCalibParam* param = new AliMUONCalibParamND(1,64,detElemId,manuId,1);
store.Add(param);
}
fInteractiveReadOutConfig->Add(store);
}
AliMUONVTrackerDataMaker*
AliMUONPainterDataRegistry::DataMaker(Int_t i) const
{
if ( i >= 0 && i <= fDataMakers->GetLast() )
{
return static_cast<AliMUONVTrackerDataMaker*>(fDataMakers->At(i));
}
else
{
AliError(Form("Index out of bounds : %d / %d",i,fDataMakers->GetLast()+1));
return 0x0;
}
}
AliMUONVTrackerData*
AliMUONPainterDataRegistry::DataSource(Int_t i) const
{
AliMUONVTrackerDataMaker* maker = DataMaker(i);
if ( maker ) return maker->Data();
return 0x0;
}
void
AliMUONPainterDataRegistry::DataMakerWasRegistered(const AliMUONVTrackerDataMaker* data)
{
Long_t param[] = { (Long_t)data };
Emit("DataMakerWasRegistered(AliMUONVTrackerDataMaker*)",param);
}
void
AliMUONPainterDataRegistry::DataMakerWasUnregistered(const AliMUONVTrackerDataMaker* data)
{
Long_t param[] = { (Long_t)data };
Emit("DataMakerWasUnregistered(AliMUONVTrackerDataMaker*)",param);
}
void
AliMUONPainterDataRegistry::DataSourceWasRegistered(const AliMUONVTrackerData* data)
{
Long_t param[] = { (Long_t)data };
Emit("DataSourceWasRegistered(AliMUONVTrackerData*)",param);
}
void
AliMUONPainterDataRegistry::DataSourceWasUnregistered(const AliMUONVTrackerData* data)
{
Long_t param[] = { (Long_t)data };
Emit("DataSourceWasUnregistered(AliMUONVTrackerData*)",param);
}
AliMUONVTrackerData*
AliMUONPainterDataRegistry::DataSource(const char* name) const
{
for ( Int_t i = 0; i < NumberOfDataMakers(); ++i )
{
AliMUONVTrackerData* data = DataMaker(i)->Data();
if ( data )
{
TString dname(data->GetName());
if ( dname == name ) return data;
}
}
return 0x0;
}
AliMUONPainterDataRegistry*
AliMUONPainterDataRegistry::Instance()
{
if ( !fgInstance ) fgInstance = new AliMUONPainterDataRegistry;
return fgInstance;
}
AliMUONVTrackerData*
AliMUONPainterDataRegistry::InteractiveReadOutConfig() const
{
if (!fInteractiveReadOutConfig) CreateInteractiveReadOutConfig();
return fInteractiveReadOutConfig;
}
void
AliMUONPainterDataRegistry::Print(Option_t* opt) const
{
TString sopt(opt);
sopt.ToUpper();
cout << "Number of data readers = " << NumberOfDataMakers() << endl;
if ( sopt.Contains("FULL") || sopt.Contains("READER") || sopt.Contains("DATA") )
{
TIter next(fDataMakers);
AliMUONVTrackerDataMaker* reader;
while ( ( reader = static_cast<AliMUONVTrackerDataMaker*>(next()) ) )
{
if ( sopt.Contains("DATA") )
{
AliMUONVTrackerData* data = reader->Data();
if ( data ) data->Print();
}
else
{
reader->Print();
}
}
}
}
void
AliMUONPainterDataRegistry::Register(AliMUONVTrackerDataMaker* reader)
{
fDataMakers->AddLast(reader);
DataMakerWasRegistered(reader);
if ( reader->Data() ) DataSourceWasRegistered(reader->Data());
}
Int_t
AliMUONPainterDataRegistry::NumberOfDataMakers() const
{
return fDataMakers->GetLast()+1;
}
void
AliMUONPainterDataRegistry::DeleteZombies()
{
fZombies->Delete();
}
Bool_t
AliMUONPainterDataRegistry::Unregister(AliMUONVTrackerDataMaker* reader)
{
if (!reader) return kFALSE;
if ( reader->Data() )
{
DataSourceWasUnregistered(reader->Data());
reader->Data()->Destroyed();
}
DataMakerWasUnregistered(reader);
TObject* o = fDataMakers->Remove(reader);
fZombies->Add(o);
return ( o != 0x0 );
}
AliMUONPainterDataRegistry.cxx:1 AliMUONPainterDataRegistry.cxx:2 AliMUONPainterDataRegistry.cxx:3 AliMUONPainterDataRegistry.cxx:4 AliMUONPainterDataRegistry.cxx:5 AliMUONPainterDataRegistry.cxx:6 AliMUONPainterDataRegistry.cxx:7 AliMUONPainterDataRegistry.cxx:8 AliMUONPainterDataRegistry.cxx:9 AliMUONPainterDataRegistry.cxx:10 AliMUONPainterDataRegistry.cxx:11 AliMUONPainterDataRegistry.cxx:12 AliMUONPainterDataRegistry.cxx:13 AliMUONPainterDataRegistry.cxx:14 AliMUONPainterDataRegistry.cxx:15 AliMUONPainterDataRegistry.cxx:16 AliMUONPainterDataRegistry.cxx:17 AliMUONPainterDataRegistry.cxx:18 AliMUONPainterDataRegistry.cxx:19 AliMUONPainterDataRegistry.cxx:20 AliMUONPainterDataRegistry.cxx:21 AliMUONPainterDataRegistry.cxx:22 AliMUONPainterDataRegistry.cxx:23 AliMUONPainterDataRegistry.cxx:24 AliMUONPainterDataRegistry.cxx:25 AliMUONPainterDataRegistry.cxx:26 AliMUONPainterDataRegistry.cxx:27 AliMUONPainterDataRegistry.cxx:28 AliMUONPainterDataRegistry.cxx:29 AliMUONPainterDataRegistry.cxx:30 AliMUONPainterDataRegistry.cxx:31 AliMUONPainterDataRegistry.cxx:32 AliMUONPainterDataRegistry.cxx:33 AliMUONPainterDataRegistry.cxx:34 AliMUONPainterDataRegistry.cxx:35 AliMUONPainterDataRegistry.cxx:36 AliMUONPainterDataRegistry.cxx:37 AliMUONPainterDataRegistry.cxx:38 AliMUONPainterDataRegistry.cxx:39 AliMUONPainterDataRegistry.cxx:40 AliMUONPainterDataRegistry.cxx:41 AliMUONPainterDataRegistry.cxx:42 AliMUONPainterDataRegistry.cxx:43 AliMUONPainterDataRegistry.cxx:44 AliMUONPainterDataRegistry.cxx:45 AliMUONPainterDataRegistry.cxx:46 AliMUONPainterDataRegistry.cxx:47 AliMUONPainterDataRegistry.cxx:48 AliMUONPainterDataRegistry.cxx:49 AliMUONPainterDataRegistry.cxx:50 AliMUONPainterDataRegistry.cxx:51 AliMUONPainterDataRegistry.cxx:52 AliMUONPainterDataRegistry.cxx:53 AliMUONPainterDataRegistry.cxx:54 AliMUONPainterDataRegistry.cxx:55 AliMUONPainterDataRegistry.cxx:56 AliMUONPainterDataRegistry.cxx:57 AliMUONPainterDataRegistry.cxx:58 AliMUONPainterDataRegistry.cxx:59 AliMUONPainterDataRegistry.cxx:60 AliMUONPainterDataRegistry.cxx:61 AliMUONPainterDataRegistry.cxx:62 AliMUONPainterDataRegistry.cxx:63 AliMUONPainterDataRegistry.cxx:64 AliMUONPainterDataRegistry.cxx:65 AliMUONPainterDataRegistry.cxx:66 AliMUONPainterDataRegistry.cxx:67 AliMUONPainterDataRegistry.cxx:68 AliMUONPainterDataRegistry.cxx:69 AliMUONPainterDataRegistry.cxx:70 AliMUONPainterDataRegistry.cxx:71 AliMUONPainterDataRegistry.cxx:72 AliMUONPainterDataRegistry.cxx:73 AliMUONPainterDataRegistry.cxx:74 AliMUONPainterDataRegistry.cxx:75 AliMUONPainterDataRegistry.cxx:76 AliMUONPainterDataRegistry.cxx:77 AliMUONPainterDataRegistry.cxx:78 AliMUONPainterDataRegistry.cxx:79 AliMUONPainterDataRegistry.cxx:80 AliMUONPainterDataRegistry.cxx:81 AliMUONPainterDataRegistry.cxx:82 AliMUONPainterDataRegistry.cxx:83 AliMUONPainterDataRegistry.cxx:84 AliMUONPainterDataRegistry.cxx:85 AliMUONPainterDataRegistry.cxx:86 AliMUONPainterDataRegistry.cxx:87 AliMUONPainterDataRegistry.cxx:88 AliMUONPainterDataRegistry.cxx:89 AliMUONPainterDataRegistry.cxx:90 AliMUONPainterDataRegistry.cxx:91 AliMUONPainterDataRegistry.cxx:92 AliMUONPainterDataRegistry.cxx:93 AliMUONPainterDataRegistry.cxx:94 AliMUONPainterDataRegistry.cxx:95 AliMUONPainterDataRegistry.cxx:96 AliMUONPainterDataRegistry.cxx:97 AliMUONPainterDataRegistry.cxx:98 AliMUONPainterDataRegistry.cxx:99 AliMUONPainterDataRegistry.cxx:100 AliMUONPainterDataRegistry.cxx:101 AliMUONPainterDataRegistry.cxx:102 AliMUONPainterDataRegistry.cxx:103 AliMUONPainterDataRegistry.cxx:104 AliMUONPainterDataRegistry.cxx:105 AliMUONPainterDataRegistry.cxx:106 AliMUONPainterDataRegistry.cxx:107 AliMUONPainterDataRegistry.cxx:108 AliMUONPainterDataRegistry.cxx:109 AliMUONPainterDataRegistry.cxx:110 AliMUONPainterDataRegistry.cxx:111 AliMUONPainterDataRegistry.cxx:112 AliMUONPainterDataRegistry.cxx:113 AliMUONPainterDataRegistry.cxx:114 AliMUONPainterDataRegistry.cxx:115 AliMUONPainterDataRegistry.cxx:116 AliMUONPainterDataRegistry.cxx:117 AliMUONPainterDataRegistry.cxx:118 AliMUONPainterDataRegistry.cxx:119 AliMUONPainterDataRegistry.cxx:120 AliMUONPainterDataRegistry.cxx:121 AliMUONPainterDataRegistry.cxx:122 AliMUONPainterDataRegistry.cxx:123 AliMUONPainterDataRegistry.cxx:124 AliMUONPainterDataRegistry.cxx:125 AliMUONPainterDataRegistry.cxx:126 AliMUONPainterDataRegistry.cxx:127 AliMUONPainterDataRegistry.cxx:128 AliMUONPainterDataRegistry.cxx:129 AliMUONPainterDataRegistry.cxx:130 AliMUONPainterDataRegistry.cxx:131 AliMUONPainterDataRegistry.cxx:132 AliMUONPainterDataRegistry.cxx:133 AliMUONPainterDataRegistry.cxx:134 AliMUONPainterDataRegistry.cxx:135 AliMUONPainterDataRegistry.cxx:136 AliMUONPainterDataRegistry.cxx:137 AliMUONPainterDataRegistry.cxx:138 AliMUONPainterDataRegistry.cxx:139 AliMUONPainterDataRegistry.cxx:140 AliMUONPainterDataRegistry.cxx:141 AliMUONPainterDataRegistry.cxx:142 AliMUONPainterDataRegistry.cxx:143 AliMUONPainterDataRegistry.cxx:144 AliMUONPainterDataRegistry.cxx:145 AliMUONPainterDataRegistry.cxx:146 AliMUONPainterDataRegistry.cxx:147 AliMUONPainterDataRegistry.cxx:148 AliMUONPainterDataRegistry.cxx:149 AliMUONPainterDataRegistry.cxx:150 AliMUONPainterDataRegistry.cxx:151 AliMUONPainterDataRegistry.cxx:152 AliMUONPainterDataRegistry.cxx:153 AliMUONPainterDataRegistry.cxx:154 AliMUONPainterDataRegistry.cxx:155 AliMUONPainterDataRegistry.cxx:156 AliMUONPainterDataRegistry.cxx:157 AliMUONPainterDataRegistry.cxx:158 AliMUONPainterDataRegistry.cxx:159 AliMUONPainterDataRegistry.cxx:160 AliMUONPainterDataRegistry.cxx:161 AliMUONPainterDataRegistry.cxx:162 AliMUONPainterDataRegistry.cxx:163 AliMUONPainterDataRegistry.cxx:164 AliMUONPainterDataRegistry.cxx:165 AliMUONPainterDataRegistry.cxx:166 AliMUONPainterDataRegistry.cxx:167 AliMUONPainterDataRegistry.cxx:168 AliMUONPainterDataRegistry.cxx:169 AliMUONPainterDataRegistry.cxx:170 AliMUONPainterDataRegistry.cxx:171 AliMUONPainterDataRegistry.cxx:172 AliMUONPainterDataRegistry.cxx:173 AliMUONPainterDataRegistry.cxx:174 AliMUONPainterDataRegistry.cxx:175 AliMUONPainterDataRegistry.cxx:176 AliMUONPainterDataRegistry.cxx:177 AliMUONPainterDataRegistry.cxx:178 AliMUONPainterDataRegistry.cxx:179 AliMUONPainterDataRegistry.cxx:180 AliMUONPainterDataRegistry.cxx:181 AliMUONPainterDataRegistry.cxx:182 AliMUONPainterDataRegistry.cxx:183 AliMUONPainterDataRegistry.cxx:184 AliMUONPainterDataRegistry.cxx:185 AliMUONPainterDataRegistry.cxx:186 AliMUONPainterDataRegistry.cxx:187 AliMUONPainterDataRegistry.cxx:188 AliMUONPainterDataRegistry.cxx:189 AliMUONPainterDataRegistry.cxx:190 AliMUONPainterDataRegistry.cxx:191 AliMUONPainterDataRegistry.cxx:192 AliMUONPainterDataRegistry.cxx:193 AliMUONPainterDataRegistry.cxx:194 AliMUONPainterDataRegistry.cxx:195 AliMUONPainterDataRegistry.cxx:196 AliMUONPainterDataRegistry.cxx:197 AliMUONPainterDataRegistry.cxx:198 AliMUONPainterDataRegistry.cxx:199 AliMUONPainterDataRegistry.cxx:200 AliMUONPainterDataRegistry.cxx:201 AliMUONPainterDataRegistry.cxx:202 AliMUONPainterDataRegistry.cxx:203 AliMUONPainterDataRegistry.cxx:204 AliMUONPainterDataRegistry.cxx:205 AliMUONPainterDataRegistry.cxx:206 AliMUONPainterDataRegistry.cxx:207 AliMUONPainterDataRegistry.cxx:208 AliMUONPainterDataRegistry.cxx:209 AliMUONPainterDataRegistry.cxx:210 AliMUONPainterDataRegistry.cxx:211 AliMUONPainterDataRegistry.cxx:212 AliMUONPainterDataRegistry.cxx:213 AliMUONPainterDataRegistry.cxx:214 AliMUONPainterDataRegistry.cxx:215 AliMUONPainterDataRegistry.cxx:216 AliMUONPainterDataRegistry.cxx:217 AliMUONPainterDataRegistry.cxx:218 AliMUONPainterDataRegistry.cxx:219 AliMUONPainterDataRegistry.cxx:220 AliMUONPainterDataRegistry.cxx:221 AliMUONPainterDataRegistry.cxx:222 AliMUONPainterDataRegistry.cxx:223 AliMUONPainterDataRegistry.cxx:224 AliMUONPainterDataRegistry.cxx:225 AliMUONPainterDataRegistry.cxx:226 AliMUONPainterDataRegistry.cxx:227 AliMUONPainterDataRegistry.cxx:228 AliMUONPainterDataRegistry.cxx:229 AliMUONPainterDataRegistry.cxx:230 AliMUONPainterDataRegistry.cxx:231 AliMUONPainterDataRegistry.cxx:232 AliMUONPainterDataRegistry.cxx:233 AliMUONPainterDataRegistry.cxx:234 AliMUONPainterDataRegistry.cxx:235 AliMUONPainterDataRegistry.cxx:236 AliMUONPainterDataRegistry.cxx:237 AliMUONPainterDataRegistry.cxx:238 AliMUONPainterDataRegistry.cxx:239 AliMUONPainterDataRegistry.cxx:240 AliMUONPainterDataRegistry.cxx:241 AliMUONPainterDataRegistry.cxx:242 AliMUONPainterDataRegistry.cxx:243 AliMUONPainterDataRegistry.cxx:244 AliMUONPainterDataRegistry.cxx:245 AliMUONPainterDataRegistry.cxx:246 AliMUONPainterDataRegistry.cxx:247 AliMUONPainterDataRegistry.cxx:248 AliMUONPainterDataRegistry.cxx:249 AliMUONPainterDataRegistry.cxx:250 AliMUONPainterDataRegistry.cxx:251 AliMUONPainterDataRegistry.cxx:252 AliMUONPainterDataRegistry.cxx:253 AliMUONPainterDataRegistry.cxx:254 AliMUONPainterDataRegistry.cxx:255 AliMUONPainterDataRegistry.cxx:256 AliMUONPainterDataRegistry.cxx:257 AliMUONPainterDataRegistry.cxx:258 AliMUONPainterDataRegistry.cxx:259 AliMUONPainterDataRegistry.cxx:260 AliMUONPainterDataRegistry.cxx:261 AliMUONPainterDataRegistry.cxx:262 AliMUONPainterDataRegistry.cxx:263 AliMUONPainterDataRegistry.cxx:264 AliMUONPainterDataRegistry.cxx:265 AliMUONPainterDataRegistry.cxx:266 AliMUONPainterDataRegistry.cxx:267 AliMUONPainterDataRegistry.cxx:268 AliMUONPainterDataRegistry.cxx:269 AliMUONPainterDataRegistry.cxx:270 AliMUONPainterDataRegistry.cxx:271 AliMUONPainterDataRegistry.cxx:272 AliMUONPainterDataRegistry.cxx:273 AliMUONPainterDataRegistry.cxx:274 AliMUONPainterDataRegistry.cxx:275 AliMUONPainterDataRegistry.cxx:276 AliMUONPainterDataRegistry.cxx:277 AliMUONPainterDataRegistry.cxx:278 AliMUONPainterDataRegistry.cxx:279 AliMUONPainterDataRegistry.cxx:280 AliMUONPainterDataRegistry.cxx:281