fDEId(detElemId),
fDdlId(ddlId),
fManus(false),
- fNofManusPerModule(false)
+ fNofManusPerModule(false),
+ fCableLength(-1)
{
/// Standard constructor
}
fDEId(),
fDdlId(),
fManus(),
- fNofManusPerModule(false)
+ fNofManusPerModule(false),
+ fCableLength(-1)
{
/// Root IO constructor
}
}
//______________________________________________________________________________
-Bool_t AliMpBusPatch::SetNofManusPerModule()
+Bool_t AliMpBusPatch::SetNofManusPerModule(Int_t manuNumber)
{
/// Set the number of manus per patch module (PCB):
-/// - for stations 12 all manus are connected to one PCB,
+/// - for stations 1 all manus are connected to one PCB,
+/// - for stations 2 there maximum two PCBs per buspatch,
/// - for slat stations there are maximum three PCBs per buspatch
-/// Not correct for station 2
- if ( AliMpDEManager::GetStationType(fDEId) == AliMp::kStation1 ||
- AliMpDEManager::GetStationType(fDEId) == AliMp::kStation2 ) {
+ if ( AliMpDEManager::GetStationType(fDEId) == AliMp::kStation1) {
// simply fill the number of manus, no bridge for station 1
- // not the case for station 2.
fNofManusPerModule.Add(GetNofManus());
return true;
}
+ if ( AliMpDEManager::GetStationType(fDEId) == AliMp::kStation2) {
+
+ // there is max two patch modules per buspatch
+
+ fNofManusPerModule.Add(manuNumber);
+ if (manuNumber != GetNofManus())
+ fNofManusPerModule.Add(GetNofManus() - manuNumber);
+
+ return true;
+ }
+
if ( AliMpDEManager::GetStationType(fDEId) == AliMp::kStation345 ) {
const AliMpSlatSegmentation* seg0
// methods
Bool_t AddManu(Int_t manuId);
- Bool_t SetNofManusPerModule();
+ Bool_t SetNofManusPerModule(Int_t manuNumber = 0);
+ void SetCableLength(Float_t length);
// get methods
Int_t GetId() const;
Int_t GetNofPatchModules() const;
Int_t GetNofManusPerModule(Int_t patchModule) const;
+ Float_t GetCableLength() const;
private:
/// Not implemented
Int_t fDdlId; ///< DDL to which this bus patch is connected
AliMpArrayI fManus; ///< Manu Ids connected to this bus patch
AliMpArrayI fNofManusPerModule;///< Nof Manus per patch modules (PCBs)
-
- ClassDef(AliMpBusPatch,1) // The class collectiong electronics properties of DDL
+ Float_t fCableLength; ///< length of the buspatch cable
+
+ ClassDef(AliMpBusPatch,2) // The class collectiong electronics properties of DDL
};
// inline functions
inline Int_t AliMpBusPatch::GetDdlId() const
{ return fDdlId; }
+/// Return length of buspatch
+inline Float_t AliMpBusPatch::GetCableLength() const
+{ return fCableLength; }
+
+/// Set length of buspatch
+inline void AliMpBusPatch::SetCableLength(Float_t length)
+{ fCableLength = length; }
+
#endif //ALI_BUS_PATCH_H