#include "AliMUONDarcHeader.h"
#include "AliMUONRegHeader.h"
-///
+//-----------------------------------------------------------------------------
+/// \class AliMUONDarcHeader
/// Darc structure for trigger raw data.
/// Each DDL contains one Darc structure
/// The structure includes the information of the Darc boards
/// The structure containes the information of the 8 (at most)
/// regional structures.
///
+/// \author Christian Finck
+//-----------------------------------------------------------------------------
/// \cond CLASSIMP
ClassImp(AliMUONDarcHeader)
const UInt_t AliMUONDarcHeader::fgkEndOfDarc = 0xDEADFACE;
const UInt_t AliMUONDarcHeader::fgkEndOfGlobal = 0xDEADBEEF;
+ const UInt_t AliMUONDarcHeader::fgkDarcVadorhType = 4;
+ const UInt_t AliMUONDarcHeader::fgkDarcDefaultType = 6;
+
+//___________________________________________
+AliMUONDarcHeader::AliMUONDarcHeader(TRootIOCtor* /*dummy*/)
+: TObject(),
+fWord(0),
+fGlobalOutput(0),
+fGlobalL0(0),
+fGlobalClk(0),
+fGlobalHold(0),
+fGlobalSpare(0),
+fDarcL0R(0),
+fDarcL1P(0),
+fDarcL1S(0),
+fDarcL2A(0),
+fDarcL2R(0),
+fDarcClk(0),
+fDarcHold(0),
+fDarcSpare(0),
+fRegHeaderArray(0x0)
+{
+ /// ctor
+ for (Int_t i = 0; i < 4; i++)
+ fGlobalInput[i] = 0;
+
+ for (Int_t i = 0; i < 6; i++)
+ fGlobalScaler[i] = 0;
+
+}
//___________________________________________
AliMUONDarcHeader::AliMUONDarcHeader()
{
- //
- // ctor
- //
+ /// ctor
+
for (Int_t i = 0; i < 4; i++)
fGlobalInput[i] = 0;
fRegHeaderArray(new TClonesArray("AliMUONRegHeader", 8))
{
- //
- // copy ctor
- //
+ ///
+ /// copy ctor
+ ///
for (Int_t i = 0; i < 4; i++)
fGlobalInput[i] = event.fGlobalInput[i];
//___________________________________________
AliMUONDarcHeader& AliMUONDarcHeader::operator=(const AliMUONDarcHeader& event)
{
- //
- // assignment operator
- //
+ ///
+ /// assignment operator
+ ///
if (this == &event) return *this;
fWord = event.fWord;
//___________________________________________
AliMUONDarcHeader::~AliMUONDarcHeader()
{
- //
- // dtor
- //
+ ///
+ /// dtor
+ ///
fRegHeaderArray->Delete();
delete fRegHeaderArray;
}
//___________________________________________
void AliMUONDarcHeader::SetScalersNumbers()
{
- // set numbers for scaler events for Darc header
- // since this is provided by the experiment
- // put dummy numbers to check the monitoring
+ /// set numbers for scaler events for Darc header
+ /// since this is provided by the experiment
+ /// put dummy numbers to check the monitoring
fGlobalL0 = 1000;
fGlobalClk = 10000;
fGlobalScaler[i] = i;
}
+//___________________________________________
+Bool_t AliMUONDarcHeader::GetEventType() const
+{
+ /// return 1 for physics trigger
+ /// return 0 for software trigger
+ // 01 = trigger physics
+ // 10 = trigger software "start of run"
+ // 11 = trigger software "end of run"
+ // 00 = other trigger software
+
+ Bool_t b1 = (fWord >> 30) & 0x1;
+ Bool_t b2 = !((fWord >> 31) & 0x1);
+
+ //printf("%d\n", b1 & b2);
+ //printf("%d %d\n", b2 , b1);
+ return (b1 & b2);
+}
//___________________________________________
void AliMUONDarcHeader::Clear(Option_t* )
{
- // Clear TClones arrays
- // instead of deleting
- //
+ /// Clear TClones arrays
+ /// instead of deleting
+ ///
fRegHeaderArray->Clear("C");
}