--- /dev/null
+/**************************************************************************
+ * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ * *
+ * Author: The ALICE Off-line Project. *
+ * Contributors are mentioned in the code where appropriate. *
+ * *
+ * Permission to use, copy, modify and distribute this software and its *
+ * documentation strictly for non-commercial purposes is hereby granted *
+ * without fee, provided that the above copyright notice appears in all *
+ * copies and that both the copyright notice and this permission notice *
+ * appear in the supporting documentation. The authors make no claims *
+ * about the suitability of this software for any purpose. It is *
+ * provided "as is" without express or implied warranty. *
+ **************************************************************************/
+
+
+//
+// --------------------
+// Class AliMpTriggerCrate
+// --------------------
+// The class defines the properties of trigger crate
+// Author: Ch. Finck, Subatech Nantes
+
+#include "AliMpTriggerCrate.h"
+#include "AliMpDEManager.h"
+
+#include "AliLog.h"
+
+#include <Riostream.h>
+
+/// \cond CLASSIMP
+ClassImp(AliMpTriggerCrate)
+/// \endcond
+
+
+//______________________________________________________________________________
+TString AliMpTriggerCrate::GenerateName(Int_t crateId, Int_t ddlId, Int_t nofDDLs)
+{
+/// Generate name
+
+ TString name;
+ // \todo parameterise this
+ if (crateId == 23)
+ name = "2-3";
+ else
+ name = Form("%d", crateId);
+
+ if (ddlId == nofDDLs)
+ name.Append("R");
+ else
+ name.Append("L");
+
+ return name;
+}
+
+
+//______________________________________________________________________________
+AliMpTriggerCrate::AliMpTriggerCrate(const Char_t* name, Int_t ddlId)
+ : TNamed(name, "mapping trigger crate"),
+ fDdlId(ddlId),
+ fLocalBoard(false)
+
+{
+/// Standard constructor
+}
+
+//______________________________________________________________________________
+AliMpTriggerCrate::AliMpTriggerCrate(TRootIOCtor* /*ioCtor*/)
+ : TNamed(),
+ fDdlId(),
+ fLocalBoard()
+{
+/// Root IO constructor
+}
+
+//______________________________________________________________________________
+AliMpTriggerCrate::~AliMpTriggerCrate()
+{
+/// Destructor
+}
+
+//
+// public methods
+//
+
+//______________________________________________________________________________
+Bool_t AliMpTriggerCrate::AddLocalBoard(Int_t localBoardId)
+{
+/// Add detection element with given detElemId.
+/// Return true if the detection element was added
+
+ if ( HasLocalBoard(localBoardId) ) {
+ AliWarningStream()
+ << "Local board with Id=" << localBoardId << " already present."
+ << endl;
+ return false;
+ }
+
+ fLocalBoard.Add(localBoardId);
+ return true;
+}
+
+
+//______________________________________________________________________________
+Int_t AliMpTriggerCrate::GetNofLocalBoards() const
+{
+/// Return the number of local board in this crate
+
+ return fLocalBoard.GetSize();
+}
+
+//______________________________________________________________________________
+Int_t AliMpTriggerCrate::GetLocalBoardId(Int_t index) const
+{
+/// Return the local board by index (in loop)
+
+ return fLocalBoard.GetValue(index);
+}
+
+//______________________________________________________________________________
+Bool_t AliMpTriggerCrate::HasLocalBoard(Int_t localBoardId) const
+{
+/// Return true if crate has local boardwith given localBoardId
+
+ return fLocalBoard.HasValue(localBoardId);
+}
+
--- /dev/null
+/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ * See cxx source for full Copyright notice */
+
+// $MpId: $
+
+/// \ingroup management
+/// \class AliMpTriggerCrate
+/// \brief The class defines the properties of trigger crate
+///
+/// \author Ch. Finck, Subatech Nantes
+
+#ifndef ALI_MP_TRIGGER_CRATE_H
+#define ALI_MP_TRIGGER_CRATE_H
+
+#include "AliMpArrayI.h"
+
+#include <TNamed.h>
+#include <TString.h>
+
+class AliMpTriggerCrate : public TNamed {
+
+ public:
+ AliMpTriggerCrate(const Char_t* name, Int_t ddlId);
+ AliMpTriggerCrate(TRootIOCtor* /*ioCtor*/);
+ virtual ~AliMpTriggerCrate();
+
+ static TString GenerateName(Int_t crateId, Int_t ddlId, Int_t nodDdls);
+
+ // methods
+ Bool_t AddLocalBoard(Int_t localBoardId);
+
+ // get methods
+ Int_t GetDdlId() const;
+
+ Int_t GetNofLocalBoards() const;
+ Int_t GetLocalBoardId(Int_t index) const;
+ Bool_t HasLocalBoard(Int_t localBoardId) const;
+
+
+ private:
+ /// Not implemented
+ AliMpTriggerCrate();
+ /// Not implemented
+ AliMpTriggerCrate(const AliMpTriggerCrate& rhs);
+ /// Not implemented
+ AliMpTriggerCrate& operator=(const AliMpTriggerCrate& rhs);
+
+ // data members
+ Int_t fDdlId; ///< DDL to which this bus patch is connected
+ AliMpArrayI fLocalBoard; ///< local board connected to this crate
+
+ ClassDef(AliMpTriggerCrate,1) // The class collectiong electronics properties of DDL
+};
+
+// inline functions
+
+
+/// Return the Ddl Id
+inline Int_t AliMpTriggerCrate::GetDdlId() const
+{ return fDdlId; }
+
+#endif //ALI_BUS_PATCH_H
+
+
+
+
+
+
+
+
+
+
+
+
+
+