X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONDarcHeader.cxx;h=6d3c8c52801132fc8da7bd112fd193517211ea97;hb=07c2554e3efd837a63bd1bec35571b5aa494497a;hp=9820302e3fa10cc86794179df75bbae2f7a71b41;hpb=d622a0ec8e2d6ef5a7fe574992e06b7965e45cee;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONDarcHeader.cxx b/MUON/AliMUONDarcHeader.cxx index 9820302e3fa..6d3c8c52801 100644 --- a/MUON/AliMUONDarcHeader.cxx +++ b/MUON/AliMUONDarcHeader.cxx @@ -18,7 +18,8 @@ #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 @@ -26,6 +27,8 @@ /// The structure containes the information of the 8 (at most) /// regional structures. /// +/// \author Christian Finck +//----------------------------------------------------------------------------- /// \cond CLASSIMP ClassImp(AliMUONDarcHeader) @@ -38,6 +41,8 @@ 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() @@ -57,44 +62,45 @@ AliMUONDarcHeader::AliMUONDarcHeader() fDarcL2R(0), fDarcClk(0), fDarcHold(0), - fDarcSpare(0) + fDarcSpare(0), + fRegHeaderArray(new TClonesArray("AliMUONRegHeader",8)) + { - // - // ctor - // + /// ctor + for (Int_t i = 0; i < 4; i++) fGlobalInput[i] = 0; for (Int_t i = 0; i < 6; i++) fGlobalScaler[i] = 0; - fRegHeaderArray = new TClonesArray("AliMUONRegHeader",8); } //___________________________________________ AliMUONDarcHeader::AliMUONDarcHeader(const AliMUONDarcHeader& event) - : TObject(event) -{ - // - // copy ctor - // - fWord = event.fWord; - fGlobalOutput = event.fGlobalOutput; - fGlobalL0 = event.fGlobalL0; - fGlobalClk = event.fGlobalClk; - fGlobalHold = event.fGlobalHold; - fGlobalSpare = event.fGlobalSpare; - - fDarcL0R = event.fDarcL0R; - fDarcL1P = event.fDarcL1P; - fDarcL1S = event.fDarcL1S; - fDarcL2A = event.fDarcL2A; - fDarcL2R = event.fDarcL2R; - fDarcClk = event.fDarcClk; - fDarcHold = event.fDarcHold; - fDarcSpare = event.fDarcSpare; + : TObject(event), + fWord(event.fWord), + fGlobalOutput(event.fGlobalOutput), + fGlobalL0(event.fGlobalL0), + fGlobalClk(event.fGlobalClk), + fGlobalHold(event.fGlobalHold), + fGlobalSpare(event.fGlobalSpare), + + fDarcL0R(event.fDarcL0R), + fDarcL1P(event.fDarcL1P), + fDarcL1S(event.fDarcL1S), + fDarcL2A(event.fDarcL2A), + fDarcL2R(event.fDarcL2R), + fDarcClk(event.fDarcClk), + fDarcHold(event.fDarcHold), + fDarcSpare(event.fDarcSpare), + fRegHeaderArray(new TClonesArray("AliMUONRegHeader", 8)) +{ + /// + /// copy ctor + /// for (Int_t i = 0; i < 4; i++) fGlobalInput[i] = event.fGlobalInput[i]; @@ -102,7 +108,6 @@ AliMUONDarcHeader::AliMUONDarcHeader(const AliMUONDarcHeader& event) for (Int_t i = 0; i < 6; i++) fGlobalScaler[i] = event.fGlobalScaler[i]; - fRegHeaderArray = new TClonesArray("AliMUONRegHeader", 8); for (Int_t index = 0; index < (event.fRegHeaderArray)->GetEntriesFast(); index++) { new ((*fRegHeaderArray)[fRegHeaderArray->GetEntriesFast()]) AliMUONRegHeader(*(AliMUONRegHeader*)(event.fRegHeaderArray)->At(index)); @@ -112,9 +117,9 @@ AliMUONDarcHeader::AliMUONDarcHeader(const AliMUONDarcHeader& event) //___________________________________________ AliMUONDarcHeader& AliMUONDarcHeader::operator=(const AliMUONDarcHeader& event) { - // - // assignment operator - // + /// + /// assignment operator + /// if (this == &event) return *this; fWord = event.fWord; @@ -151,9 +156,9 @@ AliMUONDarcHeader& AliMUONDarcHeader::operator=(const AliMUONDarcHeader& event) //___________________________________________ AliMUONDarcHeader::~AliMUONDarcHeader() { - // - // dtor - // + /// + /// dtor + /// fRegHeaderArray->Delete(); delete fRegHeaderArray; } @@ -161,9 +166,9 @@ AliMUONDarcHeader::~AliMUONDarcHeader() //___________________________________________ 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; @@ -183,13 +188,30 @@ void AliMUONDarcHeader::SetScalersNumbers() 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"); }