]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/mapping/AliMpTriggerCrate.cxx
In mapping:
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpTriggerCrate.cxx
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15
16 // $Id$
17 // $MpId: AliMpTrigger.cxx,v 1.4 2006/05/24 13:58:52 ivana Exp $
18
19 //-----------------------------------------------------------------------------
20 // Class AliMpTriggerCrate
21 // --------------------
22 // The class defines the properties of trigger crate
23 // Author: Ch. Finck, Subatech Nantes
24 //-----------------------------------------------------------------------------
25
26 #include "AliMpTriggerCrate.h"
27
28 #include "AliLog.h"
29
30 #include <Riostream.h>
31
32 /// \cond CLASSIMP
33 ClassImp(AliMpTriggerCrate)
34 /// \endcond
35
36
37 //______________________________________________________________________________
38 TString AliMpTriggerCrate::GenerateName(Int_t crateId, Int_t ddlId, Int_t nofDDLs)
39 {
40 /// Generate name
41
42   TString name;
43
44   if (crateId < 2)
45     name = Form("%d", crateId+1);
46   
47   if (crateId == 2)
48       name = "2-3";
49   
50   if (crateId > 2)
51       name = Form("%d", crateId);
52   
53   if (crateId > 7)
54     printf("crateId index too large\n");
55  
56   if (ddlId == nofDDLs)
57       name.Append("R");
58   else 
59       name.Append("L"); 
60
61   return name;
62 }  
63  
64
65 //______________________________________________________________________________
66 AliMpTriggerCrate::AliMpTriggerCrate(const Char_t* name, Int_t ddlId)
67   : TNamed(name, "mapping trigger crate"),
68     fId(0),
69     fDdlId(ddlId),
70     fLocalBoard(false)
71  
72 {
73 /// Standard constructor
74 }
75
76 //______________________________________________________________________________
77 AliMpTriggerCrate::AliMpTriggerCrate(const Char_t* name, UShort_t id)
78   : TNamed(name, "mapping trigger crate"),
79     fId(id),
80     fDdlId(0),
81     fLocalBoard(false)
82  
83 {
84 /// Standard constructor for Shuttle + DA
85 }
86
87 //______________________________________________________________________________
88 AliMpTriggerCrate::AliMpTriggerCrate(TRootIOCtor* /*ioCtor*/)
89   : TNamed(),
90     fId(),
91     fDdlId(),
92     fLocalBoard()
93 {
94 /// Root IO constructor
95 }
96
97 //______________________________________________________________________________
98 AliMpTriggerCrate::~AliMpTriggerCrate()
99 {
100 /// Destructor
101 }
102
103 //
104 // public methods
105 //
106
107 //______________________________________________________________________________
108 Bool_t AliMpTriggerCrate::AddLocalBoard(Int_t localBoardId)
109 {
110 /// Add detection element with given detElemId.
111 /// Return true if the detection element was added
112
113   if ( HasLocalBoard(localBoardId) ) {
114     AliWarningStream() 
115       << "Local board with Id=" << localBoardId << " already present."
116       << endl;
117     return false;
118   }    
119
120   fLocalBoard.Add(localBoardId);
121   return true;
122 }   
123
124
125 //______________________________________________________________________________
126 Int_t AliMpTriggerCrate::GetNofLocalBoards() const
127 {  
128 /// Return the number of local board in this crate
129
130   return fLocalBoard.GetSize(); 
131 }
132
133 //______________________________________________________________________________
134 Int_t  AliMpTriggerCrate::GetLocalBoardId(Int_t index) const
135 {  
136 /// Return the local board by index (in loop)
137
138   if (index >= 0 && index < fLocalBoard.GetSize())
139       return fLocalBoard.GetValue(index); 
140   else 
141       return 0; // begin at 1
142 }
143
144 //______________________________________________________________________________
145 Bool_t  AliMpTriggerCrate::HasLocalBoard(Int_t localBoardId) const
146 {  
147 /// Return true if crate has local boardwith given localBoardId
148
149   return fLocalBoard.HasValue(localBoardId); 
150 }
151