ROOT logo
/**************************************************************************
 * 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.                  *
 **************************************************************************/

// $Id$
// $MpId: AliMpTrigger.cxx,v 1.4 2006/05/24 13:58:52 ivana Exp $

//-----------------------------------------------------------------------------
// Class AliMpTriggerCrate
// --------------------
// The class defines the properties of trigger crate
// Author: Ch. Finck, Subatech Nantes
//-----------------------------------------------------------------------------

#include "AliMpTriggerCrate.h"

#include "AliLog.h"

#include <Riostream.h>

using std::endl;
/// \cond CLASSIMP
ClassImp(AliMpTriggerCrate)
/// \endcond


//______________________________________________________________________________
TString AliMpTriggerCrate::GenerateName(Int_t crateId, Int_t ddlId, Int_t nofDDLs)
{
/// Generate name

  TString name;

  if (crateId < 2)
    name = Form("%d", crateId+1);
  
  if (crateId == 2)
      name = "2-3";
  
  if (crateId > 2)
      name = Form("%d", crateId);
  
  if (crateId > 7)
    printf("crateId index too large\n");
 
  if (ddlId == nofDDLs)
      name.Append("R");
  else 
      name.Append("L"); 

  return name;
}  
 
//______________________________________________________________________________
AliMpTriggerCrate::AliMpTriggerCrate(const Char_t* name, UShort_t id)
  : TNamed(name, "mapping trigger crate"),
    fId(id),
    fDdlId(-1),
    fLocalBoard(false)
 
{
/// Standard constructor 
}

//______________________________________________________________________________
AliMpTriggerCrate::AliMpTriggerCrate(TRootIOCtor* /*ioCtor*/)
  : TNamed(),
    fId(),
    fDdlId(),
    fLocalBoard()
{
/// Root IO constructor
}

//______________________________________________________________________________
AliMpTriggerCrate::~AliMpTriggerCrate()
{
/// Destructor
}

//
// public methods
//

//______________________________________________________________________________
Bool_t AliMpTriggerCrate::AddLocalBoard(Int_t localBoardId)
{
/// Add local boards with given detElemId.
/// Return true if the local board 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)

  if (index >= 0 && index < fLocalBoard.GetSize())
      return fLocalBoard.GetValue(index); 
  else 
      return 0; // begin at 1
}

//______________________________________________________________________________
Bool_t  AliMpTriggerCrate::HasLocalBoard(Int_t localBoardId) const
{  
/// Return true if crate has local boardwith given localBoardId

  return fLocalBoard.HasValue(localBoardId); 
}

 AliMpTriggerCrate.cxx:1
 AliMpTriggerCrate.cxx:2
 AliMpTriggerCrate.cxx:3
 AliMpTriggerCrate.cxx:4
 AliMpTriggerCrate.cxx:5
 AliMpTriggerCrate.cxx:6
 AliMpTriggerCrate.cxx:7
 AliMpTriggerCrate.cxx:8
 AliMpTriggerCrate.cxx:9
 AliMpTriggerCrate.cxx:10
 AliMpTriggerCrate.cxx:11
 AliMpTriggerCrate.cxx:12
 AliMpTriggerCrate.cxx:13
 AliMpTriggerCrate.cxx:14
 AliMpTriggerCrate.cxx:15
 AliMpTriggerCrate.cxx:16
 AliMpTriggerCrate.cxx:17
 AliMpTriggerCrate.cxx:18
 AliMpTriggerCrate.cxx:19
 AliMpTriggerCrate.cxx:20
 AliMpTriggerCrate.cxx:21
 AliMpTriggerCrate.cxx:22
 AliMpTriggerCrate.cxx:23
 AliMpTriggerCrate.cxx:24
 AliMpTriggerCrate.cxx:25
 AliMpTriggerCrate.cxx:26
 AliMpTriggerCrate.cxx:27
 AliMpTriggerCrate.cxx:28
 AliMpTriggerCrate.cxx:29
 AliMpTriggerCrate.cxx:30
 AliMpTriggerCrate.cxx:31
 AliMpTriggerCrate.cxx:32
 AliMpTriggerCrate.cxx:33
 AliMpTriggerCrate.cxx:34
 AliMpTriggerCrate.cxx:35
 AliMpTriggerCrate.cxx:36
 AliMpTriggerCrate.cxx:37
 AliMpTriggerCrate.cxx:38
 AliMpTriggerCrate.cxx:39
 AliMpTriggerCrate.cxx:40
 AliMpTriggerCrate.cxx:41
 AliMpTriggerCrate.cxx:42
 AliMpTriggerCrate.cxx:43
 AliMpTriggerCrate.cxx:44
 AliMpTriggerCrate.cxx:45
 AliMpTriggerCrate.cxx:46
 AliMpTriggerCrate.cxx:47
 AliMpTriggerCrate.cxx:48
 AliMpTriggerCrate.cxx:49
 AliMpTriggerCrate.cxx:50
 AliMpTriggerCrate.cxx:51
 AliMpTriggerCrate.cxx:52
 AliMpTriggerCrate.cxx:53
 AliMpTriggerCrate.cxx:54
 AliMpTriggerCrate.cxx:55
 AliMpTriggerCrate.cxx:56
 AliMpTriggerCrate.cxx:57
 AliMpTriggerCrate.cxx:58
 AliMpTriggerCrate.cxx:59
 AliMpTriggerCrate.cxx:60
 AliMpTriggerCrate.cxx:61
 AliMpTriggerCrate.cxx:62
 AliMpTriggerCrate.cxx:63
 AliMpTriggerCrate.cxx:64
 AliMpTriggerCrate.cxx:65
 AliMpTriggerCrate.cxx:66
 AliMpTriggerCrate.cxx:67
 AliMpTriggerCrate.cxx:68
 AliMpTriggerCrate.cxx:69
 AliMpTriggerCrate.cxx:70
 AliMpTriggerCrate.cxx:71
 AliMpTriggerCrate.cxx:72
 AliMpTriggerCrate.cxx:73
 AliMpTriggerCrate.cxx:74
 AliMpTriggerCrate.cxx:75
 AliMpTriggerCrate.cxx:76
 AliMpTriggerCrate.cxx:77
 AliMpTriggerCrate.cxx:78
 AliMpTriggerCrate.cxx:79
 AliMpTriggerCrate.cxx:80
 AliMpTriggerCrate.cxx:81
 AliMpTriggerCrate.cxx:82
 AliMpTriggerCrate.cxx:83
 AliMpTriggerCrate.cxx:84
 AliMpTriggerCrate.cxx:85
 AliMpTriggerCrate.cxx:86
 AliMpTriggerCrate.cxx:87
 AliMpTriggerCrate.cxx:88
 AliMpTriggerCrate.cxx:89
 AliMpTriggerCrate.cxx:90
 AliMpTriggerCrate.cxx:91
 AliMpTriggerCrate.cxx:92
 AliMpTriggerCrate.cxx:93
 AliMpTriggerCrate.cxx:94
 AliMpTriggerCrate.cxx:95
 AliMpTriggerCrate.cxx:96
 AliMpTriggerCrate.cxx:97
 AliMpTriggerCrate.cxx:98
 AliMpTriggerCrate.cxx:99
 AliMpTriggerCrate.cxx:100
 AliMpTriggerCrate.cxx:101
 AliMpTriggerCrate.cxx:102
 AliMpTriggerCrate.cxx:103
 AliMpTriggerCrate.cxx:104
 AliMpTriggerCrate.cxx:105
 AliMpTriggerCrate.cxx:106
 AliMpTriggerCrate.cxx:107
 AliMpTriggerCrate.cxx:108
 AliMpTriggerCrate.cxx:109
 AliMpTriggerCrate.cxx:110
 AliMpTriggerCrate.cxx:111
 AliMpTriggerCrate.cxx:112
 AliMpTriggerCrate.cxx:113
 AliMpTriggerCrate.cxx:114
 AliMpTriggerCrate.cxx:115
 AliMpTriggerCrate.cxx:116
 AliMpTriggerCrate.cxx:117
 AliMpTriggerCrate.cxx:118
 AliMpTriggerCrate.cxx:119
 AliMpTriggerCrate.cxx:120
 AliMpTriggerCrate.cxx:121
 AliMpTriggerCrate.cxx:122
 AliMpTriggerCrate.cxx:123
 AliMpTriggerCrate.cxx:124
 AliMpTriggerCrate.cxx:125
 AliMpTriggerCrate.cxx:126
 AliMpTriggerCrate.cxx:127
 AliMpTriggerCrate.cxx:128
 AliMpTriggerCrate.cxx:129
 AliMpTriggerCrate.cxx:130
 AliMpTriggerCrate.cxx:131
 AliMpTriggerCrate.cxx:132
 AliMpTriggerCrate.cxx:133
 AliMpTriggerCrate.cxx:134
 AliMpTriggerCrate.cxx:135
 AliMpTriggerCrate.cxx:136
 AliMpTriggerCrate.cxx:137
 AliMpTriggerCrate.cxx:138
 AliMpTriggerCrate.cxx:139
 AliMpTriggerCrate.cxx:140