#include "AliMpDataStreams.h"
#include "AliMpHelper.h"
#include "AliMpDEManager.h"
+#include "AliMpManuStore.h"
#include "AliMpDetElement.h"
#include "AliMpBusPatch.h"
#include "AliMpTriggerCrate.h"
#include "AliMpSegmentation.h"
#include "AliMpVSegmentation.h"
#include "AliMpStringObjMap.h"
+#include "AliMpEncodePair.h"
+#include "AliMpIntPair.h"
#include "AliLog.h"
}
//______________________________________________________________________________
-AliMpDDLStore* AliMpDDLStore::ReadData(Bool_t warn)
+AliMpDDLStore* AliMpDDLStore::ReadData(const AliMpDataStreams& dataStreams,
+ Bool_t warn)
{
/// Load the DDL store from ASCII data files
/// and return its instance
return fgInstance;
}
- if ( AliMpDataStreams::Instance()->GetReadFromFiles() )
- AliInfoClass("Reading DDL Store from ASCII files.");
+ if ( dataStreams.GetReadFromFiles() )
+ AliInfoClass("Reading Manu Store from ASCII files.");
- fgInstance = new AliMpDDLStore();
+ fgInstance = new AliMpDDLStore(dataStreams);
return fgInstance;
}
//
//______________________________________________________________________________
-AliMpDDLStore::AliMpDDLStore()
+AliMpDDLStore::AliMpDDLStore(const AliMpDataStreams& dataStreams)
: TObject(),
+ fkDataStreams(dataStreams),
fDDLs(fgkNofDDLs+fgkNofTriggerDDLs), // FIXEME
fBusPatches(),
fManuList12(),
fManuBridge2(),
fRegionalTrigger()
{
- /// Standard constructor
-
- AliDebug(1,"");
- fDDLs.SetOwner(true);
- fBusPatches.SetOwner(true);
- fBusPatches.SetSize(900);
+ /// Standard constructor
+
+ AliDebug(1,"");
+ fDDLs.SetOwner(true);
+ fBusPatches.SetOwner(true);
+ fBusPatches.SetSize(900);
+
+ // Load segmentation & DE store data
+ if ( ! AliMpSegmentation::Instance(false) )
+ AliMpSegmentation::ReadData(dataStreams, true);
- // Load segmentation & DE store data
- if ( ! AliMpSegmentation::Instance(false) )
- AliMpSegmentation::ReadData(true);
-
- // Create all detection elements
- ReadDDLs();
- ReadTrigger();
- SetTriggerDDLs();
- SetManus();
- ReadBusPatchSpecial();
- SetPatchModules();
- ReadBusPatchInfo();
+ // Create all detection elements
+ ReadDDLs();
+ ReadTrigger();
+ SetTriggerDDLs();
+ SetManus();
+ ReadBusPatchSpecial();
+ SetPatchModules();
+ ReadBusPatchInfo();
}
//______________________________________________________________________________
AliMpDDLStore::AliMpDDLStore(TRootIOCtor* ioCtor)
: TObject(),
+ fkDataStreams(ioCtor),
fDDLs(),
fBusPatches(ioCtor),
fRegionalTrigger(ioCtor)
/// Read ddl <-> bus patch file
istream& in
- = AliMpDataStreams::Instance()
- ->CreateDataStream(AliMpFiles::BusPatchFilePath());
+ = fkDataStreams.
+ CreateDataStream(AliMpFiles::BusPatchFilePath());
char line[255];
TString sManu = ((TObjString*)stringList->At(3))->GetString();
AliMpHelper::DecodeName(sManu,',',fManuList12[GetManuListIndex(idDE)]);
- if(AliMpDEManager::GetStationType(idDE) == AliMp::kStation2) {
+ if(AliMpDEManager::GetStation12Type(idDE) == AliMq::kStation2) {
TString sManuBridge = ((TObjString*)stringList->At(4))->GetString();
AliMpHelper::DecodeName(sManuBridge,',',fManuBridge2[GetManuListIndex(idDE)]);
}
{
/// create trigger DDL object and Global crate object
- if ( ! fRegionalTrigger.ReadData() ) return false;
+ if ( ! fRegionalTrigger.ReadData(fkDataStreams) ) return false;
return true;
}
/// and reset the manus arrays filled via SetManu function
istream& in
- = AliMpDataStreams::Instance()
- ->CreateDataStream(AliMpFiles::BusPatchSpecialFilePath());
+ = fkDataStreams.
+ CreateDataStream(AliMpFiles::BusPatchSpecialFilePath());
char line[255];
Bool_t newResult = false;
Int_t idDE = busPatch->GetDEId();
- if (AliMpDEManager::GetStationType(idDE) == AliMp::kStation2 )
+ if (AliMpDEManager::GetStation12Type(idDE) == AliMq::kStation2 )
newResult = busPatch->SetNofManusPerModule(fManuBridge2[GetManuListIndex(idDE)].At(i));
else
newResult = busPatch->SetNofManusPerModule();
/// read the buspatch info file and set buspatch info
istream& in
- = AliMpDataStreams::Instance()
- ->CreateDataStream(AliMpFiles::BusPatchInfoFilePath());
+ = fkDataStreams.
+ CreateDataStream(AliMpFiles::BusPatchInfoFilePath());
char line[255];
//______________________________________________________________________________
-AliMpIntPair AliMpDDLStore::GetLinkPortId(Int_t busPatchId) const {
+Long_t AliMpDDLStore::GetLinkPortId(Int_t busPatchId) const {
- /// Return link port for a given frtId and global busPatchId
+ /// Get link port and DSP from busPatch id.
+ /// Return -1 if the value is not valid
+ /// (the validity has to be tested in the client code)
AliMpBusPatch* busPatch = GetBusPatch(busPatchId);
Int_t ddlId = busPatch->GetDdlId();
}
-//______________________________________________________________________________
-AliMpIntPair AliMpDDLStore::GetDetElemIdManu(Int_t manuSerial) const {
- /// Return the detElemId and manuId for given serial manu number
-
- if ( ! AliMpDEStore::Instance() ) {
- AliFatal("DE Store has not been loaded.");
- return AliMpIntPair::Invalid();
- }
-
- return AliMpDEStore::Instance()->GetDetElemIdManu(manuSerial);
-}
-
//______________________________________________________________________________
void AliMpDDLStore::PrintAllManu() const {
/// Print all manu Ids and their serial numbers sorted by detection element
}
cout << endl;
- cout << " Manu serial: ";
- for ( Int_t k=0; k<busPatch->GetNofManus(); ++k ) {
- cout << std::setw(6) << de->GetManuSerialFromId(busPatch->GetManuId(k)) << " ";
- }
- cout << endl;
+ if ( AliMpManuStore::Instance(kFALSE) ) {
+ cout << " Manu serial: ";
+ for ( Int_t k=0; k<busPatch->GetNofManus(); ++k ) {
+ cout << std::setw(6)
+ << AliMpManuStore::Instance()
+ ->GetManuSerial(de->GetId(), busPatch->GetManuId(k)) << " ";
+ }
+ cout << endl;
+ }
}
}
}
TString name(localBoard->GetName());
- Int_t line = localBoard->GetPosition().GetFirst();
+ Int_t line = AliMp::PairFirst(localBoard->GetPosition());
++line;
name.Replace(4,1,Form("%d", line));
TString name(localBoard->GetName());
- Int_t line = localBoard->GetPosition().GetFirst();
+ Int_t line = AliMp::PairFirst(localBoard->GetPosition());
--line;
name.Replace(4,1,Form("%d", line));