* about the suitability of this software for any purpose. It is *
* provided "as is" without express or implied warranty. *
**************************************************************************/
+
+/* $Id$ */
#include "AliMUONBlockHeader.h"
#include "AliMUONDspHeader.h"
+#include <Riostream.h>
-///
+//-----------------------------------------------------------------------------
+/// \class AliMUONBlockHeader
/// Block structure for tracker raw data
/// each DDL contains two blocks,
/// each block contains at most 5 dsp structure.
/// Beside the total length and length of the below data
/// the header of the block contains the front end DSP id, trigger words and paddind word
///
+/// \author Christian Finck
+//-----------------------------------------------------------------------------
+/// \cond CLASSIMP
ClassImp(AliMUONBlockHeader)
+/// \endcond
+
+const Int_t AliMUONBlockHeader::fgkHeaderLength = 8;
+const UInt_t AliMUONBlockHeader::fgkDefaultDataKey = 0xFC0000FC;
+const UInt_t AliMUONBlockHeader::fgkDdlDataKey = 0xD000000D;
- const Int_t AliMUONBlockHeader::fgkHeaderLength = 7;
+//___________________________________________
+AliMUONBlockHeader::AliMUONBlockHeader(TRootIOCtor* /*dummy*/)
+: TObject(),
+fDataKey(0),
+fTotalLength(0),
+fLength(0),
+fDspId(0),
+fL0Trigger(0),
+fMiniEventId(0),
+fEventId1(0),
+fEventId2(0),
+fDspHeaderArray(0x0)
+{
+ ///
+ /// ctor
+ ///
+
+}
//___________________________________________
AliMUONBlockHeader::AliMUONBlockHeader()
: TObject(),
+ fDataKey(0),
fTotalLength(0),
fLength(0),
fDspId(0),
- fPadding(0x0DEADDEAD)
-{
- //
- // ctor
- //
- for (Int_t i = 0; i < 4; i++)
- fTriggerWord[i] = 0;
+ fL0Trigger(0),
+ fMiniEventId(0),
+ fEventId1(0),
+ fEventId2(0),
+ fDspHeaderArray(new TClonesArray("AliMUONDspHeader", 5))
- fDspHeaderArray = new TClonesArray("AliMUONDspHeader", 5);
+{
+ ///
+ /// ctor
+ ///
}
//___________________________________________
AliMUONBlockHeader::~AliMUONBlockHeader()
{
- //
- // dtor
- //
+ ///
+ /// dtor
+ ///
fDspHeaderArray->Delete();
delete fDspHeaderArray;
}
//___________________________________________
AliMUONBlockHeader::AliMUONBlockHeader(const AliMUONBlockHeader& event)
- : TObject(event)
+ : TObject(event),
+ fDataKey(event.fDataKey),
+ fTotalLength(event.fTotalLength),
+ fLength(event.fLength),
+ fDspId(event.fDspId),
+ fL0Trigger(event.fL0Trigger),
+ fMiniEventId(event.fMiniEventId),
+ fEventId1(event.fEventId1),
+ fEventId2(event.fEventId2),
+ fDspHeaderArray(new TClonesArray("AliMUONDspHeader", 5))
{
- //
- // copy ctor
- //
- fTotalLength = event.fTotalLength;
- fLength = event.fLength;
- fDspId = event.fDspId;
- fPadding = event.fPadding;
-
- for (Int_t i = 0; i < 4; i++)
- fTriggerWord[i] = event.fTriggerWord[i];
+ ///
+ /// copy ctor
+ ///
- fDspHeaderArray = new TClonesArray("AliMUONDspHeader", 5);
for (Int_t index = 0; index < (event.fDspHeaderArray)->GetEntriesFast(); index++) {
{new ((*fDspHeaderArray)[fDspHeaderArray->GetEntriesFast()])
AliMUONDspHeader(*(AliMUONDspHeader*)(event.fDspHeaderArray)->At(index));}
AliMUONBlockHeader&
AliMUONBlockHeader::operator=(const AliMUONBlockHeader &event)
{
- //
- // assignment operator
- //
+ ///
+ /// assignment operator
+ ///
if (this == &event) return *this;
+ fDataKey = event.fDataKey;
fTotalLength = event.fTotalLength;
fLength = event.fLength;
fDspId = event.fDspId;
- fPadding = event.fPadding;
-
- //copy ctor
- for (Int_t i = 0; i < 4; i++)
- fTriggerWord[i] = event.fTriggerWord[i];
-
+
+ fL0Trigger = event.fL0Trigger;
+ fMiniEventId = event.fMiniEventId;
+ fEventId1 = event.fEventId1;
+ fEventId2 = event.fEventId2;
fDspHeaderArray = new TClonesArray("AliMUONDspHeader", 5);
for (Int_t index = 0; index < (event.fDspHeaderArray)->GetEntriesFast(); index++) {
//___________________________________________
void AliMUONBlockHeader::AddDspHeader(const AliMUONDspHeader& dspHeader)
{
- //
- // adding the dsp structure
- // into the TClonesArray
- //
+ ///
+ /// adding the dsp structure
+ /// into the TClonesArray
+ ///
TClonesArray &dspArray = *fDspHeaderArray;
new(dspArray[dspArray.GetEntriesFast()]) AliMUONDspHeader(dspHeader);
//___________________________________________
void AliMUONBlockHeader::Clear(Option_t* )
{
- // Clear TClones arrays
- // instead of deleting
- //
+ /// Clear TClones arrays
+ /// instead of deleting
+ ///
fDspHeaderArray->Clear("C");
}
+
+//___________________________________________
+void AliMUONBlockHeader::Print(Option_t* /*opt*/) const
+{
+ /// print out
+
+ cout << "CRT info" << endl;
+ cout << "DataKey: " << fDataKey << endl;
+ cout << "TotalLength: " << fTotalLength << endl;
+ cout << "Length: " << fLength << endl;
+ cout << "DspId: " << fDspId << endl;
+
+ cout << "L0Trigger: " << fL0Trigger << endl;
+ cout << "MiniEventId: " << fMiniEventId<< endl;
+ cout << "EventId1: " << fEventId1 << endl;
+ cout << "EventId2: " << fEventId2 << endl;;
+
+}