1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
18 #include "AliMUONDspHeader.h"
19 #include "AliMUONBusStruct.h"
20 #include <Riostream.h>
22 //-----------------------------------------------------------------------------
23 /// \class AliMUONDspHeader
24 /// DSP structure for tracker raw data.
25 /// Each block contains at most 5 Dsp structures.
26 /// Beside the total length and length of the below data
27 /// the header of the Dsp contains the front end DSP id, trigger words
28 /// and event word (1 for nb of word is odd and 0 if not
30 /// \author Christian Finck
31 //-----------------------------------------------------------------------------
34 ClassImp(AliMUONDspHeader)
37 const Int_t AliMUONDspHeader::fgkHeaderLength = 10;
38 const UInt_t AliMUONDspHeader::fgkDefaultDataKey = 0xF000000F;
39 const UInt_t AliMUONDspHeader::fgkDefaultPaddingWord = 0xBEEFFACE;
41 //___________________________________________
42 AliMUONDspHeader::AliMUONDspHeader()
54 fBusPatchArray(new TClonesArray("AliMUONBusStruct",5))
62 //___________________________________________
63 AliMUONDspHeader::~AliMUONDspHeader()
68 fBusPatchArray->Delete();
69 delete fBusPatchArray;
72 //___________________________________________
73 AliMUONDspHeader::AliMUONDspHeader(const AliMUONDspHeader& event)
75 fDataKey(event.fDataKey),
76 fTotalLength(event.fTotalLength),
77 fLength(event.fLength),
79 fBlkL1ATrigger(event.fBlkL1ATrigger),
80 fMiniEventId(event.fMiniEventId),
81 fL1ATrigger(event.fL1ATrigger),
82 fL1RTrigger(event.fL1RTrigger),
83 fPaddingWord(event.fPaddingWord),
84 fErrorWord(event.fErrorWord),
85 fBusPatchArray(new TClonesArray("AliMUONBusStruct", 5))
91 for (Int_t index = 0; index < (event.fBusPatchArray)->GetEntriesFast(); index++) {
92 {new ((*fBusPatchArray)[fBusPatchArray->GetEntriesFast()])
93 AliMUONBusStruct(*(AliMUONBusStruct*)(event.fBusPatchArray)->At(index));}
95 // fBusPatchArray->SetOwner();
99 //___________________________________________
100 AliMUONDspHeader& AliMUONDspHeader::operator=(const AliMUONDspHeader& event)
103 /// assignemnt constructor
105 if (this == &event) return *this;
107 fDataKey = event.fDataKey;
108 fTotalLength = event.fTotalLength;
109 fLength = event.fLength;
110 fDspId = event.fDspId;
111 fBlkL1ATrigger = event.fBlkL1ATrigger;
112 fMiniEventId = event.fMiniEventId;
113 fL1ATrigger = event.fL1ATrigger;
114 fL1RTrigger = event.fL1RTrigger;
115 fPaddingWord = event.fPaddingWord;
116 fErrorWord = event.fErrorWord;
119 fBusPatchArray = new TClonesArray("AliMUONBusStruct", 5);
120 for (Int_t index = 0; index < (event.fBusPatchArray)->GetEntriesFast(); index++) {
121 {new ((*fBusPatchArray)[fBusPatchArray->GetEntriesFast()])
122 AliMUONBusStruct(*(AliMUONBusStruct*)(event.fBusPatchArray)->At(index));}
126 //___________________________________________
127 void AliMUONDspHeader::AddBusPatch(const AliMUONBusStruct& busPatch)
130 /// adding buspatch info
131 /// into TClonesArray
133 TClonesArray &eventArray = *fBusPatchArray;
134 new(eventArray[eventArray.GetEntriesFast()]) AliMUONBusStruct(busPatch);
136 //___________________________________________
137 void AliMUONDspHeader::Clear(Option_t* )
139 /// Clear TClones arrays
140 /// instead of deleting
142 fBusPatchArray->Clear("C");
146 //___________________________________________
147 void AliMUONDspHeader::Print(Option_t* /*opt*/) const
151 cout << "FRT info" << endl;
152 cout << "DataKey: " << fDataKey << endl;
153 cout << "TotalLength: " << fTotalLength << endl;
154 cout << "Length : " << fLength << endl;
155 cout << "DspId: " << fDspId << endl;
156 cout << "BlkL1ATrigger: " << fBlkL1ATrigger << endl;
157 cout << "MiniEventId: " << fMiniEventId << endl;
158 cout << "L1ATrigger: " << fL1ATrigger << endl;
159 cout << "L1RTrigger: " << fL1RTrigger << endl;
160 cout << "PaddingWord: " << fPaddingWord << endl;
161 cout << "ErrorWord: " << fErrorWord << endl;