]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONDspHeader.cxx
Updated list of MUON libraries
[u/mrichter/AliRoot.git] / MUON / AliMUONDspHeader.cxx
CommitLineData
47c194a6 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 **************************************************************************/
13985652 15
16/* $Id$ */
47c194a6 17
18#include "AliMUONDspHeader.h"
19#include "AliMUONBusStruct.h"
1ed3c5c2 20#include <Riostream.h>
47c194a6 21
00e86732 22/// \class AliMUONDspHeader
47c194a6 23/// DSP structure for tracker raw data.
24/// Each block contains at most 5 Dsp structures.
25/// Beside the total length and length of the below data
26/// the header of the Dsp contains the front end DSP id, trigger words
27/// and event word (1 for nb of word is odd and 0 if not
28///
00e86732 29/// \author Christian Finck
47c194a6 30
13985652 31/// \cond CLASSIMP
47c194a6 32ClassImp(AliMUONDspHeader)
13985652 33/// \endcond
47c194a6 34
84ceeb06 35 const Int_t AliMUONDspHeader::fgkHeaderLength = 10;
36 const UInt_t AliMUONDspHeader::fgkDefaultDataKey = 0xF000000F;
37 const UInt_t AliMUONDspHeader::fgkDefaultPaddingWord = 0xBEEFFACE;
47c194a6 38
39//___________________________________________
40AliMUONDspHeader::AliMUONDspHeader()
41 : TObject(),
84ceeb06 42 fDataKey(0),
47c194a6 43 fTotalLength(0),
44 fLength(0),
45 fDspId(0),
84ceeb06 46 fBlkL1ATrigger(0),
47 fMiniEventId(0),
48 fL1ATrigger(0),
49 fL1RTrigger(0),
50 fPaddingWord(0),
9f5dcca3 51 fErrorWord(0),
52 fBusPatchArray(new TClonesArray("AliMUONBusStruct",5))
47c194a6 53{
00e86732 54 ///
55 ///ctor
56 ///
47c194a6 57
47c194a6 58}
59
60//___________________________________________
61AliMUONDspHeader::~AliMUONDspHeader()
62{
00e86732 63 ///
64 /// dtr
65 ///
47c194a6 66 fBusPatchArray->Delete();
67 delete fBusPatchArray;
68}
69
70//___________________________________________
71AliMUONDspHeader::AliMUONDspHeader(const AliMUONDspHeader& event)
9f5dcca3 72 : TObject(event),
73 fDataKey(event.fDataKey),
74 fTotalLength(event.fTotalLength),
75 fLength(event.fLength),
76 fDspId(event.fDspId),
77 fBlkL1ATrigger(event.fBlkL1ATrigger),
78 fMiniEventId(event.fMiniEventId),
79 fL1ATrigger(event.fL1ATrigger),
80 fL1RTrigger(event.fL1RTrigger),
81 fPaddingWord(event.fPaddingWord),
82 fErrorWord(event.fErrorWord),
83 fBusPatchArray(new TClonesArray("AliMUONBusStruct", 5))
47c194a6 84{
00e86732 85 ///
86 /// copy constructor
87 ///
47c194a6 88
47c194a6 89 for (Int_t index = 0; index < (event.fBusPatchArray)->GetEntriesFast(); index++) {
90 {new ((*fBusPatchArray)[fBusPatchArray->GetEntriesFast()])
91 AliMUONBusStruct(*(AliMUONBusStruct*)(event.fBusPatchArray)->At(index));}
92 }
93 // fBusPatchArray->SetOwner();
94
95}
96
97//___________________________________________
98AliMUONDspHeader& AliMUONDspHeader::operator=(const AliMUONDspHeader& event)
99{
00e86732 100 ///
101 /// assignemnt constructor
102 ///
47c194a6 103 if (this == &event) return *this;
104
9f5dcca3 105 fDataKey = event.fDataKey;
106 fTotalLength = event.fTotalLength;
107 fLength = event.fLength;
108 fDspId = event.fDspId;
84ceeb06 109 fBlkL1ATrigger = event.fBlkL1ATrigger;
110 fMiniEventId = event.fMiniEventId;
111 fL1ATrigger = event.fL1ATrigger;
112 fL1RTrigger = event.fL1RTrigger;
113 fPaddingWord = event.fPaddingWord;
114 fErrorWord = event.fErrorWord;
47c194a6 115
47c194a6 116
117 fBusPatchArray = new TClonesArray("AliMUONBusStruct", 5);
118 for (Int_t index = 0; index < (event.fBusPatchArray)->GetEntriesFast(); index++) {
119 {new ((*fBusPatchArray)[fBusPatchArray->GetEntriesFast()])
120 AliMUONBusStruct(*(AliMUONBusStruct*)(event.fBusPatchArray)->At(index));}
121 }
122 return *this;
123}
124//___________________________________________
125void AliMUONDspHeader::AddBusPatch(const AliMUONBusStruct& busPatch)
126{
00e86732 127 ///
128 /// adding buspatch info
129 /// into TClonesArray
130 ///
47c194a6 131 TClonesArray &eventArray = *fBusPatchArray;
132 new(eventArray[eventArray.GetEntriesFast()]) AliMUONBusStruct(busPatch);
133}
134//___________________________________________
135void AliMUONDspHeader::Clear(Option_t* )
136{
00e86732 137 /// Clear TClones arrays
138 /// instead of deleting
139 ///
47c194a6 140 fBusPatchArray->Clear("C");
141
142}
1ed3c5c2 143
144//___________________________________________
145void AliMUONDspHeader::Print(Option_t* /*opt*/) const
146{
147 /// print out
148
149 cout << "FRT info" << endl;
150 cout << "DataKey: " << fDataKey << endl;
151 cout << "TotalLength: " << fTotalLength << endl;
152 cout << "Length : " << fLength << endl;
153 cout << "DspId: " << fDspId << endl;
154 cout << "BlkL1ATrigger: " << fBlkL1ATrigger << endl;
155 cout << "MiniEventId: " << fMiniEventId << endl;
156 cout << "L1ATrigger: " << fL1ATrigger << endl;
157 cout << "L1RTrigger: " << fL1RTrigger << endl;
158 cout << "PaddingWord: " << fPaddingWord << endl;
159 cout << "ErrorWord: " << fErrorWord << endl;
160
161}