#include "AliMUONTriggerCrateStore.h"
#include "AliMpExMapIterator.h"
#include "AliMUONTriggerCrate.h"
#include "AliMUONLocalTriggerBoard.h"
#include "AliMUONRegionalTriggerBoard.h"
#include "AliMUONRegionalTriggerConfig.h"
#include "AliMUONGlobalCrateConfig.h"
#include "AliMUONTriggerCrateConfig.h"
#include "AliMUONCalibrationData.h"
#include "AliMUONTriggerLut.h"
#include "AliMpTriggerCrate.h"
#include "AliMpLocalBoard.h"
#include "AliMpDDLStore.h"
#include "AliMpExMap.h"
#include "AliLog.h"
#include <TString.h>
#include <TSystem.h>
#include <Riostream.h>
#include <cstdio>
ClassImp(AliMUONTriggerCrateStore)
AliMUONTriggerCrateStore::AliMUONTriggerCrateStore()
: TObject(),
fCrates(0x0),
fLocalBoards(0x0)
{
}
AliMUONTriggerCrateStore::~AliMUONTriggerCrateStore()
{
delete fCrates;
delete fLocalBoards;
}
void
AliMUONTriggerCrateStore::AddCrate(const char *name)
{
if (!fCrates)
{
AliError("Object not properly initialized");
return;
}
AliDebug(1,Form("Adding crate %s",name));
TObject* there = fCrates->GetValue(name);
if (there)
{
AliError(Form("Cannot add crate %s because it's already there !",name));
}
else
{
fCrates->Add(name,new AliMUONTriggerCrate(name,17));
}
}
AliMUONLocalTriggerBoard*
AliMUONTriggerCrateStore::LocalBoard(Int_t boardNumber) const
{
if ( !fLocalBoards )
{
AliError("Object not properly initialized");
return 0x0;
}
return static_cast<AliMUONLocalTriggerBoard*>(fLocalBoards->GetValue(boardNumber));
}
TIterator*
AliMUONTriggerCrateStore::CreateCrateIterator() const
{
return fCrates ? fCrates->CreateIterator() : 0x0;
}
TIterator*
AliMUONTriggerCrateStore::CreateLocalBoardIterator() const
{
return fLocalBoards ? fLocalBoards->CreateIterator() : 0x0;
}
AliMUONTriggerCrate*
AliMUONTriggerCrateStore::Crate(const char *name) const
{
if ( !fCrates )
{
AliError("Object not properly initialized");
return 0x0;
}
return static_cast<AliMUONTriggerCrate*>(fCrates->GetValue(name));
}
AliMUONTriggerCrate*
AliMUONTriggerCrateStore::Crate(Int_t ddl, Int_t reg) const
{
if ( !fCrates )
{
AliError("Object not properly initialized");
return 0x0;
}
TString name = GetCrateName(ddl, reg);
return static_cast<AliMUONTriggerCrate*>(fCrates->GetValue(name.Data()));
}
TString AliMUONTriggerCrateStore::GetCrateName(Int_t ddl, Int_t reg) const
{
Char_t name[10];
switch(reg) {
case 0:
case 1:
snprintf(name,10,"%d", reg+1);
break;
case 2:
strcpy(name, "2-3");
break;
case 3:
case 4:
case 5:
case 6:
case 7:
snprintf(name,10,"%d", reg);
break;
}
if (ddl == 0)
strncat(name, "R", 1);
else
strncat(name, "L", 1);
return TString(name);
}
Int_t
AliMUONTriggerCrateStore::NumberOfCrates() const
{
if ( fCrates ) return fCrates->GetSize();
return 0;
}
Int_t
AliMUONTriggerCrateStore::NumberOfLocalBoards() const
{
if ( fLocalBoards ) return fLocalBoards->GetSize();
return 0;
}
void
AliMUONTriggerCrateStore::ReadFromFile(AliMUONCalibrationData* calibData)
{
fCrates = new AliMpExMap;
fCrates->SetOwner(kTRUE);
fLocalBoards = new AliMpExMap;
fLocalBoards->SetOwner(kFALSE);
AliMUONTriggerLut* lut = calibData->TriggerLut();
if (!lut)
AliWarning("No valid trigger LUT in CDB");
AliMUONRegionalTriggerConfig* regionalConfig = calibData->RegionalTriggerConfig();
if (!regionalConfig) {
AliError("No valid regional trigger configuration in CDB");
return;
}
TIter next(AliMpDDLStore::Instance()->GetRegionalTrigger()->CreateCrateIterator());
AliMpTriggerCrate* crateMapping;
while ( ( crateMapping = static_cast<AliMpTriggerCrate*>(next()) ) )
{
TString crateName = crateMapping->GetName();
AliMUONTriggerCrate *crate = Crate(crateName.Data());
AliMUONTriggerCrateConfig* crateConfig = regionalConfig->FindTriggerCrate(crateName);
if (!crate)
{
AddCrate(crateName.Data());
crate = Crate(crateName.Data());
AliDebug(3, Form("crate name %s\n", crateName.Data()));
AliMUONRegionalTriggerBoard *rboard = new AliMUONRegionalTriggerBoard();
crate->AddBoard(rboard, 0);
}
for(Int_t iLocal = 0; iLocal < crateMapping->GetNofLocalBoards(); ++iLocal) {
Int_t localBoardId = crateMapping->GetLocalBoardId(iLocal);
if (!localBoardId) continue;
AliMpLocalBoard* localBoardMapping = AliMpDDLStore::Instance()->GetLocalBoard(localBoardId);
AliDebug(3, Form("local name %s id %d\n", localBoardMapping->GetName(), localBoardId));
Int_t slot = localBoardMapping->GetSlot();
AliMUONLocalTriggerBoard *board = new AliMUONLocalTriggerBoard(localBoardMapping);
board->SetCoinc44(crateConfig->GetCoinc());
board->SetLUT(lut);
fLocalBoards->Add(localBoardId, board);
crate->AddBoard(board, slot);
}
}
}
AliMUONTriggerCrateStore.cxx:1 AliMUONTriggerCrateStore.cxx:2 AliMUONTriggerCrateStore.cxx:3 AliMUONTriggerCrateStore.cxx:4 AliMUONTriggerCrateStore.cxx:5 AliMUONTriggerCrateStore.cxx:6 AliMUONTriggerCrateStore.cxx:7 AliMUONTriggerCrateStore.cxx:8 AliMUONTriggerCrateStore.cxx:9 AliMUONTriggerCrateStore.cxx:10 AliMUONTriggerCrateStore.cxx:11 AliMUONTriggerCrateStore.cxx:12 AliMUONTriggerCrateStore.cxx:13 AliMUONTriggerCrateStore.cxx:14 AliMUONTriggerCrateStore.cxx:15 AliMUONTriggerCrateStore.cxx:16 AliMUONTriggerCrateStore.cxx:17 AliMUONTriggerCrateStore.cxx:18 AliMUONTriggerCrateStore.cxx:19 AliMUONTriggerCrateStore.cxx:20 AliMUONTriggerCrateStore.cxx:21 AliMUONTriggerCrateStore.cxx:22 AliMUONTriggerCrateStore.cxx:23 AliMUONTriggerCrateStore.cxx:24 AliMUONTriggerCrateStore.cxx:25 AliMUONTriggerCrateStore.cxx:26 AliMUONTriggerCrateStore.cxx:27 AliMUONTriggerCrateStore.cxx:28 AliMUONTriggerCrateStore.cxx:29 AliMUONTriggerCrateStore.cxx:30 AliMUONTriggerCrateStore.cxx:31 AliMUONTriggerCrateStore.cxx:32 AliMUONTriggerCrateStore.cxx:33 AliMUONTriggerCrateStore.cxx:34 AliMUONTriggerCrateStore.cxx:35 AliMUONTriggerCrateStore.cxx:36 AliMUONTriggerCrateStore.cxx:37 AliMUONTriggerCrateStore.cxx:38 AliMUONTriggerCrateStore.cxx:39 AliMUONTriggerCrateStore.cxx:40 AliMUONTriggerCrateStore.cxx:41 AliMUONTriggerCrateStore.cxx:42 AliMUONTriggerCrateStore.cxx:43 AliMUONTriggerCrateStore.cxx:44 AliMUONTriggerCrateStore.cxx:45 AliMUONTriggerCrateStore.cxx:46 AliMUONTriggerCrateStore.cxx:47 AliMUONTriggerCrateStore.cxx:48 AliMUONTriggerCrateStore.cxx:49 AliMUONTriggerCrateStore.cxx:50 AliMUONTriggerCrateStore.cxx:51 AliMUONTriggerCrateStore.cxx:52 AliMUONTriggerCrateStore.cxx:53 AliMUONTriggerCrateStore.cxx:54 AliMUONTriggerCrateStore.cxx:55 AliMUONTriggerCrateStore.cxx:56 AliMUONTriggerCrateStore.cxx:57 AliMUONTriggerCrateStore.cxx:58 AliMUONTriggerCrateStore.cxx:59 AliMUONTriggerCrateStore.cxx:60 AliMUONTriggerCrateStore.cxx:61 AliMUONTriggerCrateStore.cxx:62 AliMUONTriggerCrateStore.cxx:63 AliMUONTriggerCrateStore.cxx:64 AliMUONTriggerCrateStore.cxx:65 AliMUONTriggerCrateStore.cxx:66 AliMUONTriggerCrateStore.cxx:67 AliMUONTriggerCrateStore.cxx:68 AliMUONTriggerCrateStore.cxx:69 AliMUONTriggerCrateStore.cxx:70 AliMUONTriggerCrateStore.cxx:71 AliMUONTriggerCrateStore.cxx:72 AliMUONTriggerCrateStore.cxx:73 AliMUONTriggerCrateStore.cxx:74 AliMUONTriggerCrateStore.cxx:75 AliMUONTriggerCrateStore.cxx:76 AliMUONTriggerCrateStore.cxx:77 AliMUONTriggerCrateStore.cxx:78 AliMUONTriggerCrateStore.cxx:79 AliMUONTriggerCrateStore.cxx:80 AliMUONTriggerCrateStore.cxx:81 AliMUONTriggerCrateStore.cxx:82 AliMUONTriggerCrateStore.cxx:83 AliMUONTriggerCrateStore.cxx:84 AliMUONTriggerCrateStore.cxx:85 AliMUONTriggerCrateStore.cxx:86 AliMUONTriggerCrateStore.cxx:87 AliMUONTriggerCrateStore.cxx:88 AliMUONTriggerCrateStore.cxx:89 AliMUONTriggerCrateStore.cxx:90 AliMUONTriggerCrateStore.cxx:91 AliMUONTriggerCrateStore.cxx:92 AliMUONTriggerCrateStore.cxx:93 AliMUONTriggerCrateStore.cxx:94 AliMUONTriggerCrateStore.cxx:95 AliMUONTriggerCrateStore.cxx:96 AliMUONTriggerCrateStore.cxx:97 AliMUONTriggerCrateStore.cxx:98 AliMUONTriggerCrateStore.cxx:99 AliMUONTriggerCrateStore.cxx:100 AliMUONTriggerCrateStore.cxx:101 AliMUONTriggerCrateStore.cxx:102 AliMUONTriggerCrateStore.cxx:103 AliMUONTriggerCrateStore.cxx:104 AliMUONTriggerCrateStore.cxx:105 AliMUONTriggerCrateStore.cxx:106 AliMUONTriggerCrateStore.cxx:107 AliMUONTriggerCrateStore.cxx:108 AliMUONTriggerCrateStore.cxx:109 AliMUONTriggerCrateStore.cxx:110 AliMUONTriggerCrateStore.cxx:111 AliMUONTriggerCrateStore.cxx:112 AliMUONTriggerCrateStore.cxx:113 AliMUONTriggerCrateStore.cxx:114 AliMUONTriggerCrateStore.cxx:115 AliMUONTriggerCrateStore.cxx:116 AliMUONTriggerCrateStore.cxx:117 AliMUONTriggerCrateStore.cxx:118 AliMUONTriggerCrateStore.cxx:119 AliMUONTriggerCrateStore.cxx:120 AliMUONTriggerCrateStore.cxx:121 AliMUONTriggerCrateStore.cxx:122 AliMUONTriggerCrateStore.cxx:123 AliMUONTriggerCrateStore.cxx:124 AliMUONTriggerCrateStore.cxx:125 AliMUONTriggerCrateStore.cxx:126 AliMUONTriggerCrateStore.cxx:127 AliMUONTriggerCrateStore.cxx:128 AliMUONTriggerCrateStore.cxx:129 AliMUONTriggerCrateStore.cxx:130 AliMUONTriggerCrateStore.cxx:131 AliMUONTriggerCrateStore.cxx:132 AliMUONTriggerCrateStore.cxx:133 AliMUONTriggerCrateStore.cxx:134 AliMUONTriggerCrateStore.cxx:135 AliMUONTriggerCrateStore.cxx:136 AliMUONTriggerCrateStore.cxx:137 AliMUONTriggerCrateStore.cxx:138 AliMUONTriggerCrateStore.cxx:139 AliMUONTriggerCrateStore.cxx:140 AliMUONTriggerCrateStore.cxx:141 AliMUONTriggerCrateStore.cxx:142 AliMUONTriggerCrateStore.cxx:143 AliMUONTriggerCrateStore.cxx:144 AliMUONTriggerCrateStore.cxx:145 AliMUONTriggerCrateStore.cxx:146 AliMUONTriggerCrateStore.cxx:147 AliMUONTriggerCrateStore.cxx:148 AliMUONTriggerCrateStore.cxx:149 AliMUONTriggerCrateStore.cxx:150 AliMUONTriggerCrateStore.cxx:151 AliMUONTriggerCrateStore.cxx:152 AliMUONTriggerCrateStore.cxx:153 AliMUONTriggerCrateStore.cxx:154 AliMUONTriggerCrateStore.cxx:155 AliMUONTriggerCrateStore.cxx:156 AliMUONTriggerCrateStore.cxx:157 AliMUONTriggerCrateStore.cxx:158 AliMUONTriggerCrateStore.cxx:159 AliMUONTriggerCrateStore.cxx:160 AliMUONTriggerCrateStore.cxx:161 AliMUONTriggerCrateStore.cxx:162 AliMUONTriggerCrateStore.cxx:163 AliMUONTriggerCrateStore.cxx:164 AliMUONTriggerCrateStore.cxx:165 AliMUONTriggerCrateStore.cxx:166 AliMUONTriggerCrateStore.cxx:167 AliMUONTriggerCrateStore.cxx:168 AliMUONTriggerCrateStore.cxx:169 AliMUONTriggerCrateStore.cxx:170 AliMUONTriggerCrateStore.cxx:171 AliMUONTriggerCrateStore.cxx:172 AliMUONTriggerCrateStore.cxx:173 AliMUONTriggerCrateStore.cxx:174 AliMUONTriggerCrateStore.cxx:175 AliMUONTriggerCrateStore.cxx:176 AliMUONTriggerCrateStore.cxx:177 AliMUONTriggerCrateStore.cxx:178 AliMUONTriggerCrateStore.cxx:179 AliMUONTriggerCrateStore.cxx:180 AliMUONTriggerCrateStore.cxx:181 AliMUONTriggerCrateStore.cxx:182 AliMUONTriggerCrateStore.cxx:183 AliMUONTriggerCrateStore.cxx:184 AliMUONTriggerCrateStore.cxx:185 AliMUONTriggerCrateStore.cxx:186 AliMUONTriggerCrateStore.cxx:187 AliMUONTriggerCrateStore.cxx:188 AliMUONTriggerCrateStore.cxx:189 AliMUONTriggerCrateStore.cxx:190 AliMUONTriggerCrateStore.cxx:191 AliMUONTriggerCrateStore.cxx:192 AliMUONTriggerCrateStore.cxx:193 AliMUONTriggerCrateStore.cxx:194 AliMUONTriggerCrateStore.cxx:195 AliMUONTriggerCrateStore.cxx:196 AliMUONTriggerCrateStore.cxx:197 AliMUONTriggerCrateStore.cxx:198 AliMUONTriggerCrateStore.cxx:199 AliMUONTriggerCrateStore.cxx:200 AliMUONTriggerCrateStore.cxx:201 AliMUONTriggerCrateStore.cxx:202 AliMUONTriggerCrateStore.cxx:203 AliMUONTriggerCrateStore.cxx:204 AliMUONTriggerCrateStore.cxx:205 AliMUONTriggerCrateStore.cxx:206 AliMUONTriggerCrateStore.cxx:207 AliMUONTriggerCrateStore.cxx:208 AliMUONTriggerCrateStore.cxx:209 AliMUONTriggerCrateStore.cxx:210 AliMUONTriggerCrateStore.cxx:211 AliMUONTriggerCrateStore.cxx:212 AliMUONTriggerCrateStore.cxx:213 AliMUONTriggerCrateStore.cxx:214 AliMUONTriggerCrateStore.cxx:215 AliMUONTriggerCrateStore.cxx:216 AliMUONTriggerCrateStore.cxx:217 AliMUONTriggerCrateStore.cxx:218 AliMUONTriggerCrateStore.cxx:219 AliMUONTriggerCrateStore.cxx:220 AliMUONTriggerCrateStore.cxx:221 AliMUONTriggerCrateStore.cxx:222 AliMUONTriggerCrateStore.cxx:223 AliMUONTriggerCrateStore.cxx:224 AliMUONTriggerCrateStore.cxx:225 AliMUONTriggerCrateStore.cxx:226 AliMUONTriggerCrateStore.cxx:227 AliMUONTriggerCrateStore.cxx:228 AliMUONTriggerCrateStore.cxx:229 AliMUONTriggerCrateStore.cxx:230 AliMUONTriggerCrateStore.cxx:231 AliMUONTriggerCrateStore.cxx:232 AliMUONTriggerCrateStore.cxx:233 AliMUONTriggerCrateStore.cxx:234 AliMUONTriggerCrateStore.cxx:235 AliMUONTriggerCrateStore.cxx:236 AliMUONTriggerCrateStore.cxx:237 AliMUONTriggerCrateStore.cxx:238 AliMUONTriggerCrateStore.cxx:239 AliMUONTriggerCrateStore.cxx:240 AliMUONTriggerCrateStore.cxx:241 AliMUONTriggerCrateStore.cxx:242 AliMUONTriggerCrateStore.cxx:243 AliMUONTriggerCrateStore.cxx:244 AliMUONTriggerCrateStore.cxx:245 AliMUONTriggerCrateStore.cxx:246 AliMUONTriggerCrateStore.cxx:247 AliMUONTriggerCrateStore.cxx:248 AliMUONTriggerCrateStore.cxx:249 AliMUONTriggerCrateStore.cxx:250 AliMUONTriggerCrateStore.cxx:251 AliMUONTriggerCrateStore.cxx:252 AliMUONTriggerCrateStore.cxx:253 AliMUONTriggerCrateStore.cxx:254 AliMUONTriggerCrateStore.cxx:255 AliMUONTriggerCrateStore.cxx:256 AliMUONTriggerCrateStore.cxx:257 AliMUONTriggerCrateStore.cxx:258 AliMUONTriggerCrateStore.cxx:259 AliMUONTriggerCrateStore.cxx:260 AliMUONTriggerCrateStore.cxx:261 AliMUONTriggerCrateStore.cxx:262 AliMUONTriggerCrateStore.cxx:263 AliMUONTriggerCrateStore.cxx:264 AliMUONTriggerCrateStore.cxx:265 AliMUONTriggerCrateStore.cxx:266