#include "AliMpRegionalTrigger.h"
#include "AliMpExMapIterator.h"
#include "AliMpTriggerCrate.h"
#include "AliMpLocalBoard.h"
#include "AliMpConstants.h"
#include "AliMpFiles.h"
#include "AliMpDataStreams.h"
#include "AliMpHelper.h"
#include "AliLog.h"
#include <TArrayI.h>
#include <Riostream.h>
#include <TClass.h>
#include <TSystem.h>
ClassImp(AliMpRegionalTrigger)
AliMpRegionalTrigger::AliMpRegionalTrigger()
: TObject(),
fTriggerCrates(),
fLocalBoardMap(),
fLocalBoardArray(AliMpConstants::TotalNofLocalBoards()+1)
{
fTriggerCrates.SetOwner(true);
fTriggerCrates.SetSize(AliMpConstants::LocalBoardNofChannels());
}
AliMpRegionalTrigger::AliMpRegionalTrigger(const AliMpRegionalTrigger& rhs)
: TObject(rhs),
fTriggerCrates(rhs.fTriggerCrates),
fLocalBoardMap(rhs.fLocalBoardMap),
fLocalBoardArray(rhs.fLocalBoardArray)
{
}
AliMpRegionalTrigger::AliMpRegionalTrigger(TRootIOCtor* ioCtor)
: TObject(),
fTriggerCrates(ioCtor),
fLocalBoardMap(ioCtor),
fLocalBoardArray()
{
}
AliMpRegionalTrigger& AliMpRegionalTrigger::operator=(const AliMpRegionalTrigger& rhs)
{
if (this == &rhs) return *this;
TObject::operator=(rhs);
fTriggerCrates = rhs.fTriggerCrates;
fLocalBoardArray = rhs.fLocalBoardArray;
return *this;
}
AliMpRegionalTrigger::~AliMpRegionalTrigger()
{
}
Bool_t AliMpRegionalTrigger::ReadData(istream& in)
{
if ( !in.good() ) return kFALSE;
Int_t localBoardId = 0;
TArrayI listInt;
UShort_t crateId;
Int_t nofBoards;
Int_t localBoardIndex(0);
char line[80];
while (!in.eof())
{
in.getline(line,80);
if (!strlen(line)) break;
TString crateName(AliMpHelper::Normalize(line));
in.getline(line,80);
sscanf(line,"%hx",&crateId);
in.getline(line,80);
in.getline(line,80);
in.getline(line,80);
in.getline(line,80);
sscanf(line,"%d",&nofBoards);
AliMpTriggerCrate* crate
= (AliMpTriggerCrate*)(fTriggerCrates.GetValue(crateName.Data()));
if (!crate) {
crate = new AliMpTriggerCrate(crateName.Data(), crateId);
fTriggerCrates.Add(crateName.Data(), crate);
}
Char_t localBoardName[20];
Int_t slot;
UInt_t switches;
for ( Int_t i = 0; i < nofBoards; ++i )
{
in.getline(line,80);
sscanf(line,"%02d %19s %03d %03x",&slot,localBoardName,&localBoardId,&switches);
AliMpLocalBoard* board = new AliMpLocalBoard(localBoardId, localBoardName, slot);
board->SetSwitch(switches);
board->SetCrate(crateName);
if (localBoardId > AliMpConstants::NofLocalBoards())
board->SetNotified(false);
crate->AddLocalBoard(localBoardId);
listInt.Reset();
in.getline(line,80);
TString tmp(AliMpHelper::Normalize(line));
AliMpHelper::DecodeName(tmp,' ',listInt);
for (Int_t ii = 0; ii < listInt.GetSize(); ++ii) {
if ( listInt[ii] ) board->AddDE(listInt[ii]);
}
in.getline(line,80);
TString tmp1 = AliMpHelper::Normalize(line);
AliMpHelper::DecodeName(tmp1,' ',listInt);
board->SetInputXfrom(listInt[0]);
board->SetInputXto(listInt[1]);
board->SetInputYfrom(listInt[2]);
board->SetInputYto(listInt[3]);
board->SetTC(listInt[4]);
fLocalBoardArray.AddAt(board,localBoardIndex);
fLocalBoardMap.Add(board->GetId(),board);
++localBoardIndex;
}
}
AliDebug(1,Form("%d trigger crate created",fTriggerCrates.GetSize()));
AliDebug(1,Form("%d local board added to the map",fLocalBoardMap.GetSize()));
AliDebug(1,Form("%d local board referenced from the array",fLocalBoardArray.GetLast()+1));
return kTRUE;
}
Bool_t AliMpRegionalTrigger::ReadData(const TString& fileName)
{
AliDebugStream(2) << "Read data from file " << fileName.Data() << endl;
TString inFileName(fileName);
inFileName = gSystem->ExpandPathName(inFileName.Data());
ifstream inFile(inFileName.Data(), ios::in);
if ( ! inFile.good() ) {
AliErrorStream()
<< "Local Trigger Board Mapping File " << fileName.Data() << " not found" << endl;
return kFALSE;
}
return ReadData(inFile);
}
Bool_t AliMpRegionalTrigger::ReadData(const AliMpDataStreams& dataStreams)
{
AliDebugStream(2) << "Read data from stream " << endl;
istream& in
= dataStreams.
CreateDataStream(AliMpFiles::LocalTriggerBoardMapping());
Bool_t result = ReadData(in);
delete ∈
return result;
}
AliMpLocalBoard* AliMpRegionalTrigger::FindLocalBoard(Int_t localBoardId,
Bool_t warn) const {
AliMpLocalBoard* localBoard
= static_cast<AliMpLocalBoard*>(fLocalBoardMap.GetValue(localBoardId));
if ( ! localBoard && warn ) {
AliErrorStream()
<< "Loacl board with localBoardId = " << localBoardId << " not found." << endl;
}
return localBoard;
}
AliMpTriggerCrate* AliMpRegionalTrigger::FindTriggerCrate(TString name,
Bool_t warn) const {
AliMpTriggerCrate* crate
= (AliMpTriggerCrate*) fTriggerCrates.GetValue(name.Data());
if ( ! crate && warn ) {
AliErrorStream()
<< "Trigger crate with name = " << name.Data() << " not defined." << endl;
}
return crate;
}
Int_t AliMpRegionalTrigger::GetNofTriggerCrates() const
{
return fTriggerCrates.GetSize();
}
Int_t AliMpRegionalTrigger::GetNofLocalBoards() const
{
return fLocalBoardArray.GetLast()+1;
}
TIterator*
AliMpRegionalTrigger::CreateCrateIterator() const
{
return fTriggerCrates.CreateIterator();
}
TIterator*
AliMpRegionalTrigger::CreateLocalBoardIterator() const
{
return fLocalBoardArray.MakeIterator();
}
Int_t
AliMpRegionalTrigger::LocalBoardId(Int_t index) const
{
AliMpLocalBoard* lb = static_cast<AliMpLocalBoard*>(fLocalBoardArray.At(index));
if (lb)
{
return lb->GetId();
}
AliError(Form("Could not get local board at index %d",index));
return -1;
}
void AliMpRegionalTrigger::SetTriggerCratesOwner(Bool_t owner)
{
fTriggerCrates.SetOwner(owner);
}
AliMpRegionalTrigger.cxx:1 AliMpRegionalTrigger.cxx:2 AliMpRegionalTrigger.cxx:3 AliMpRegionalTrigger.cxx:4 AliMpRegionalTrigger.cxx:5 AliMpRegionalTrigger.cxx:6 AliMpRegionalTrigger.cxx:7 AliMpRegionalTrigger.cxx:8 AliMpRegionalTrigger.cxx:9 AliMpRegionalTrigger.cxx:10 AliMpRegionalTrigger.cxx:11 AliMpRegionalTrigger.cxx:12 AliMpRegionalTrigger.cxx:13 AliMpRegionalTrigger.cxx:14 AliMpRegionalTrigger.cxx:15 AliMpRegionalTrigger.cxx:16 AliMpRegionalTrigger.cxx:17 AliMpRegionalTrigger.cxx:18 AliMpRegionalTrigger.cxx:19 AliMpRegionalTrigger.cxx:20 AliMpRegionalTrigger.cxx:21 AliMpRegionalTrigger.cxx:22 AliMpRegionalTrigger.cxx:23 AliMpRegionalTrigger.cxx:24 AliMpRegionalTrigger.cxx:25 AliMpRegionalTrigger.cxx:26 AliMpRegionalTrigger.cxx:27 AliMpRegionalTrigger.cxx:28 AliMpRegionalTrigger.cxx:29 AliMpRegionalTrigger.cxx:30 AliMpRegionalTrigger.cxx:31 AliMpRegionalTrigger.cxx:32 AliMpRegionalTrigger.cxx:33 AliMpRegionalTrigger.cxx:34 AliMpRegionalTrigger.cxx:35 AliMpRegionalTrigger.cxx:36 AliMpRegionalTrigger.cxx:37 AliMpRegionalTrigger.cxx:38 AliMpRegionalTrigger.cxx:39 AliMpRegionalTrigger.cxx:40 AliMpRegionalTrigger.cxx:41 AliMpRegionalTrigger.cxx:42 AliMpRegionalTrigger.cxx:43 AliMpRegionalTrigger.cxx:44 AliMpRegionalTrigger.cxx:45 AliMpRegionalTrigger.cxx:46 AliMpRegionalTrigger.cxx:47 AliMpRegionalTrigger.cxx:48 AliMpRegionalTrigger.cxx:49 AliMpRegionalTrigger.cxx:50 AliMpRegionalTrigger.cxx:51 AliMpRegionalTrigger.cxx:52 AliMpRegionalTrigger.cxx:53 AliMpRegionalTrigger.cxx:54 AliMpRegionalTrigger.cxx:55 AliMpRegionalTrigger.cxx:56 AliMpRegionalTrigger.cxx:57 AliMpRegionalTrigger.cxx:58 AliMpRegionalTrigger.cxx:59 AliMpRegionalTrigger.cxx:60 AliMpRegionalTrigger.cxx:61 AliMpRegionalTrigger.cxx:62 AliMpRegionalTrigger.cxx:63 AliMpRegionalTrigger.cxx:64 AliMpRegionalTrigger.cxx:65 AliMpRegionalTrigger.cxx:66 AliMpRegionalTrigger.cxx:67 AliMpRegionalTrigger.cxx:68 AliMpRegionalTrigger.cxx:69 AliMpRegionalTrigger.cxx:70 AliMpRegionalTrigger.cxx:71 AliMpRegionalTrigger.cxx:72 AliMpRegionalTrigger.cxx:73 AliMpRegionalTrigger.cxx:74 AliMpRegionalTrigger.cxx:75 AliMpRegionalTrigger.cxx:76 AliMpRegionalTrigger.cxx:77 AliMpRegionalTrigger.cxx:78 AliMpRegionalTrigger.cxx:79 AliMpRegionalTrigger.cxx:80 AliMpRegionalTrigger.cxx:81 AliMpRegionalTrigger.cxx:82 AliMpRegionalTrigger.cxx:83 AliMpRegionalTrigger.cxx:84 AliMpRegionalTrigger.cxx:85 AliMpRegionalTrigger.cxx:86 AliMpRegionalTrigger.cxx:87 AliMpRegionalTrigger.cxx:88 AliMpRegionalTrigger.cxx:89 AliMpRegionalTrigger.cxx:90 AliMpRegionalTrigger.cxx:91 AliMpRegionalTrigger.cxx:92 AliMpRegionalTrigger.cxx:93 AliMpRegionalTrigger.cxx:94 AliMpRegionalTrigger.cxx:95 AliMpRegionalTrigger.cxx:96 AliMpRegionalTrigger.cxx:97 AliMpRegionalTrigger.cxx:98 AliMpRegionalTrigger.cxx:99 AliMpRegionalTrigger.cxx:100 AliMpRegionalTrigger.cxx:101 AliMpRegionalTrigger.cxx:102 AliMpRegionalTrigger.cxx:103 AliMpRegionalTrigger.cxx:104 AliMpRegionalTrigger.cxx:105 AliMpRegionalTrigger.cxx:106 AliMpRegionalTrigger.cxx:107 AliMpRegionalTrigger.cxx:108 AliMpRegionalTrigger.cxx:109 AliMpRegionalTrigger.cxx:110 AliMpRegionalTrigger.cxx:111 AliMpRegionalTrigger.cxx:112 AliMpRegionalTrigger.cxx:113 AliMpRegionalTrigger.cxx:114 AliMpRegionalTrigger.cxx:115 AliMpRegionalTrigger.cxx:116 AliMpRegionalTrigger.cxx:117 AliMpRegionalTrigger.cxx:118 AliMpRegionalTrigger.cxx:119 AliMpRegionalTrigger.cxx:120 AliMpRegionalTrigger.cxx:121 AliMpRegionalTrigger.cxx:122 AliMpRegionalTrigger.cxx:123 AliMpRegionalTrigger.cxx:124 AliMpRegionalTrigger.cxx:125 AliMpRegionalTrigger.cxx:126 AliMpRegionalTrigger.cxx:127 AliMpRegionalTrigger.cxx:128 AliMpRegionalTrigger.cxx:129 AliMpRegionalTrigger.cxx:130 AliMpRegionalTrigger.cxx:131 AliMpRegionalTrigger.cxx:132 AliMpRegionalTrigger.cxx:133 AliMpRegionalTrigger.cxx:134 AliMpRegionalTrigger.cxx:135 AliMpRegionalTrigger.cxx:136 AliMpRegionalTrigger.cxx:137 AliMpRegionalTrigger.cxx:138 AliMpRegionalTrigger.cxx:139 AliMpRegionalTrigger.cxx:140 AliMpRegionalTrigger.cxx:141 AliMpRegionalTrigger.cxx:142 AliMpRegionalTrigger.cxx:143 AliMpRegionalTrigger.cxx:144 AliMpRegionalTrigger.cxx:145 AliMpRegionalTrigger.cxx:146 AliMpRegionalTrigger.cxx:147 AliMpRegionalTrigger.cxx:148 AliMpRegionalTrigger.cxx:149 AliMpRegionalTrigger.cxx:150 AliMpRegionalTrigger.cxx:151 AliMpRegionalTrigger.cxx:152 AliMpRegionalTrigger.cxx:153 AliMpRegionalTrigger.cxx:154 AliMpRegionalTrigger.cxx:155 AliMpRegionalTrigger.cxx:156 AliMpRegionalTrigger.cxx:157 AliMpRegionalTrigger.cxx:158 AliMpRegionalTrigger.cxx:159 AliMpRegionalTrigger.cxx:160 AliMpRegionalTrigger.cxx:161 AliMpRegionalTrigger.cxx:162 AliMpRegionalTrigger.cxx:163 AliMpRegionalTrigger.cxx:164 AliMpRegionalTrigger.cxx:165 AliMpRegionalTrigger.cxx:166 AliMpRegionalTrigger.cxx:167 AliMpRegionalTrigger.cxx:168 AliMpRegionalTrigger.cxx:169 AliMpRegionalTrigger.cxx:170 AliMpRegionalTrigger.cxx:171 AliMpRegionalTrigger.cxx:172 AliMpRegionalTrigger.cxx:173 AliMpRegionalTrigger.cxx:174 AliMpRegionalTrigger.cxx:175 AliMpRegionalTrigger.cxx:176 AliMpRegionalTrigger.cxx:177 AliMpRegionalTrigger.cxx:178 AliMpRegionalTrigger.cxx:179 AliMpRegionalTrigger.cxx:180 AliMpRegionalTrigger.cxx:181 AliMpRegionalTrigger.cxx:182 AliMpRegionalTrigger.cxx:183 AliMpRegionalTrigger.cxx:184 AliMpRegionalTrigger.cxx:185 AliMpRegionalTrigger.cxx:186 AliMpRegionalTrigger.cxx:187 AliMpRegionalTrigger.cxx:188 AliMpRegionalTrigger.cxx:189 AliMpRegionalTrigger.cxx:190 AliMpRegionalTrigger.cxx:191 AliMpRegionalTrigger.cxx:192 AliMpRegionalTrigger.cxx:193 AliMpRegionalTrigger.cxx:194 AliMpRegionalTrigger.cxx:195 AliMpRegionalTrigger.cxx:196 AliMpRegionalTrigger.cxx:197 AliMpRegionalTrigger.cxx:198 AliMpRegionalTrigger.cxx:199 AliMpRegionalTrigger.cxx:200 AliMpRegionalTrigger.cxx:201 AliMpRegionalTrigger.cxx:202 AliMpRegionalTrigger.cxx:203 AliMpRegionalTrigger.cxx:204 AliMpRegionalTrigger.cxx:205 AliMpRegionalTrigger.cxx:206 AliMpRegionalTrigger.cxx:207 AliMpRegionalTrigger.cxx:208 AliMpRegionalTrigger.cxx:209 AliMpRegionalTrigger.cxx:210 AliMpRegionalTrigger.cxx:211 AliMpRegionalTrigger.cxx:212 AliMpRegionalTrigger.cxx:213 AliMpRegionalTrigger.cxx:214 AliMpRegionalTrigger.cxx:215 AliMpRegionalTrigger.cxx:216 AliMpRegionalTrigger.cxx:217 AliMpRegionalTrigger.cxx:218 AliMpRegionalTrigger.cxx:219 AliMpRegionalTrigger.cxx:220 AliMpRegionalTrigger.cxx:221 AliMpRegionalTrigger.cxx:222 AliMpRegionalTrigger.cxx:223 AliMpRegionalTrigger.cxx:224 AliMpRegionalTrigger.cxx:225 AliMpRegionalTrigger.cxx:226 AliMpRegionalTrigger.cxx:227 AliMpRegionalTrigger.cxx:228 AliMpRegionalTrigger.cxx:229 AliMpRegionalTrigger.cxx:230 AliMpRegionalTrigger.cxx:231 AliMpRegionalTrigger.cxx:232 AliMpRegionalTrigger.cxx:233 AliMpRegionalTrigger.cxx:234 AliMpRegionalTrigger.cxx:235 AliMpRegionalTrigger.cxx:236 AliMpRegionalTrigger.cxx:237 AliMpRegionalTrigger.cxx:238 AliMpRegionalTrigger.cxx:239 AliMpRegionalTrigger.cxx:240 AliMpRegionalTrigger.cxx:241 AliMpRegionalTrigger.cxx:242 AliMpRegionalTrigger.cxx:243 AliMpRegionalTrigger.cxx:244 AliMpRegionalTrigger.cxx:245 AliMpRegionalTrigger.cxx:246 AliMpRegionalTrigger.cxx:247 AliMpRegionalTrigger.cxx:248 AliMpRegionalTrigger.cxx:249 AliMpRegionalTrigger.cxx:250 AliMpRegionalTrigger.cxx:251 AliMpRegionalTrigger.cxx:252 AliMpRegionalTrigger.cxx:253 AliMpRegionalTrigger.cxx:254 AliMpRegionalTrigger.cxx:255 AliMpRegionalTrigger.cxx:256 AliMpRegionalTrigger.cxx:257 AliMpRegionalTrigger.cxx:258 AliMpRegionalTrigger.cxx:259 AliMpRegionalTrigger.cxx:260 AliMpRegionalTrigger.cxx:261 AliMpRegionalTrigger.cxx:262 AliMpRegionalTrigger.cxx:263 AliMpRegionalTrigger.cxx:264 AliMpRegionalTrigger.cxx:265 AliMpRegionalTrigger.cxx:266 AliMpRegionalTrigger.cxx:267 AliMpRegionalTrigger.cxx:268 AliMpRegionalTrigger.cxx:269 AliMpRegionalTrigger.cxx:270 AliMpRegionalTrigger.cxx:271 AliMpRegionalTrigger.cxx:272 AliMpRegionalTrigger.cxx:273 AliMpRegionalTrigger.cxx:274 AliMpRegionalTrigger.cxx:275 AliMpRegionalTrigger.cxx:276 AliMpRegionalTrigger.cxx:277 AliMpRegionalTrigger.cxx:278 AliMpRegionalTrigger.cxx:279 AliMpRegionalTrigger.cxx:280 AliMpRegionalTrigger.cxx:281 AliMpRegionalTrigger.cxx:282 AliMpRegionalTrigger.cxx:283 AliMpRegionalTrigger.cxx:284 AliMpRegionalTrigger.cxx:285 AliMpRegionalTrigger.cxx:286 AliMpRegionalTrigger.cxx:287 AliMpRegionalTrigger.cxx:288 AliMpRegionalTrigger.cxx:289 AliMpRegionalTrigger.cxx:290 AliMpRegionalTrigger.cxx:291 AliMpRegionalTrigger.cxx:292 AliMpRegionalTrigger.cxx:293 AliMpRegionalTrigger.cxx:294 AliMpRegionalTrigger.cxx:295 AliMpRegionalTrigger.cxx:296 AliMpRegionalTrigger.cxx:297 AliMpRegionalTrigger.cxx:298 AliMpRegionalTrigger.cxx:299 AliMpRegionalTrigger.cxx:300 AliMpRegionalTrigger.cxx:301 AliMpRegionalTrigger.cxx:302 AliMpRegionalTrigger.cxx:303 AliMpRegionalTrigger.cxx:304 AliMpRegionalTrigger.cxx:305 AliMpRegionalTrigger.cxx:306 AliMpRegionalTrigger.cxx:307 AliMpRegionalTrigger.cxx:308 AliMpRegionalTrigger.cxx:309 AliMpRegionalTrigger.cxx:310 AliMpRegionalTrigger.cxx:311 AliMpRegionalTrigger.cxx:312 AliMpRegionalTrigger.cxx:313 AliMpRegionalTrigger.cxx:314 AliMpRegionalTrigger.cxx:315 AliMpRegionalTrigger.cxx:316 AliMpRegionalTrigger.cxx:317 AliMpRegionalTrigger.cxx:318 AliMpRegionalTrigger.cxx:319 AliMpRegionalTrigger.cxx:320 AliMpRegionalTrigger.cxx:321 AliMpRegionalTrigger.cxx:322 AliMpRegionalTrigger.cxx:323 AliMpRegionalTrigger.cxx:324 AliMpRegionalTrigger.cxx:325 AliMpRegionalTrigger.cxx:326 AliMpRegionalTrigger.cxx:327 AliMpRegionalTrigger.cxx:328 AliMpRegionalTrigger.cxx:329 AliMpRegionalTrigger.cxx:330 AliMpRegionalTrigger.cxx:331 AliMpRegionalTrigger.cxx:332 AliMpRegionalTrigger.cxx:333 AliMpRegionalTrigger.cxx:334