LCOV - code coverage report
Current view: top level - TRIGGER - AliTrigEvent.cxx (source / functions) Hit Total Coverage
Test: coverage.info Lines: 3 71 4.2 %
Date: 2016-06-14 17:26:59 Functions: 3 18 16.7 %

          Line data    Source code
       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             :  **************************************************************************/
      15             : 
      16             : /* $Id$ */
      17             : // Author: Andrei Gheata, 28/07/2009
      18             : 
      19             : #include "AliTrigEvent.h"
      20             : 
      21             : #include <TClass.h>
      22             : #include <TBits.h>
      23             : #include <TROOT.h>
      24             : 
      25          12 : ClassImp(AliTrigEvent)
      26             : 
      27             : //==============================================================================
      28             : //   AliTrigEvent - Base class for generic information exchanged by a trigger
      29             : //                  device. Trigger inputs and outputs are represented and
      30             : //                  handled via AliTrigEvent objects. Trigger events are typically
      31             : //                  wrappers for the information exchanged on a single I/O slot
      32             : //                  or a group of correlated inputs.
      33             : //==============================================================================
      34             : 
      35             : //______________________________________________________________________________
      36             : AliTrigEvent &AliTrigEvent::operator=(const AliTrigEvent &other)
      37             : {
      38             : // Assignment operator.
      39           0 :    if (&other == this) return *this;
      40           0 :    TNamed::operator=(other);
      41           0 :    return *this;
      42           0 : }
      43             : //______________________________________________________________________________
      44             : void AliTrigEvent::Activate(Bool_t flag)
      45             : {
      46             : // Activate/deactivate this signal.
      47           0 :   TObject::SetBit(kActive, flag);
      48           0 : }                        
      49             : 
      50          12 : ClassImp(AliTrigEventWithMask)
      51             : 
      52             : //______________________________________________________________________________
      53             : Bool_t AliTrigEventWithMask::ImportData(AliTrigEvent *source)
      54             : {
      55             : // Import data from likewise signal.
      56           0 :   AliTrigEventWithMask *src = (AliTrigEventWithMask *)source;
      57           0 :   SetValue(src->GetValue());
      58           0 :   return kTRUE;
      59             : }
      60             : 
      61             : //______________________________________________________________________________
      62             : void AliTrigEventWithMask::SetValue(TBits *value)
      63             : {
      64             : // Set the mask value.
      65           0 :   *fValue = *value;
      66           0 : }
      67             : 
      68             : //______________________________________________________________________________
      69             : AliTrigEventWithMask::AliTrigEventWithMask(const AliTrigEventWithMask &other)
      70           0 :                        :AliTrigEvent(other),
      71           0 :                         fValue(NULL)
      72           0 : {
      73             : // Copy constructor.   
      74           0 :   *fValue = *other.fValue;
      75           0 : }
      76             : 
      77             : //______________________________________________________________________________
      78             : AliTrigEventWithMask &AliTrigEventWithMask::operator=(const AliTrigEventWithMask &other)
      79             : {
      80             : // Assignment operator.
      81           0 :    if (&other == this) return *this;
      82           0 :    AliTrigEvent::operator=(other);
      83           0 :    *fValue = *other.fValue;
      84           0 :    return *this;
      85           0 : }
      86             : 
      87          12 : ClassImp(AliTrigEventWithObject)
      88             : 
      89             : //______________________________________________________________________________
      90             : AliTrigEventWithObject::AliTrigEventWithObject(const char *name,const char *classname)
      91           0 :                        :AliTrigEvent(name),
      92           0 :                         fValue(0),
      93           0 :                         fType("")
      94           0 : {
      95             : // Normal constructor where a class name is provided for the embedded object.
      96             : // If the event is created in this way one will only be able to connect to 
      97             : // events embedding the same object type (via connectors). If empty string the type
      98             : // will be set upon the first call of SetValue.
      99           0 :   SetType(classname);
     100           0 : }   
     101             : 
     102             : //______________________________________________________________________________
     103             : AliTrigEventWithObject::AliTrigEventWithObject(const AliTrigEventWithObject &other)
     104           0 :                        :AliTrigEvent(other),
     105           0 :                         fValue(NULL),
     106           0 :                         fType(other.fType)
     107           0 : {
     108             : // Copy constructor.   
     109           0 :   TClass* pClass=TClass::GetClass(fType);
     110           0 :   if (!pClass) return;
     111           0 :   fValue = (TObject*)pClass->New();
     112           0 :   fValue->Copy(*other.fValue);
     113           0 : }
     114             : 
     115             : //______________________________________________________________________________
     116             : AliTrigEventWithObject &AliTrigEventWithObject::operator=(const AliTrigEventWithObject &other)
     117             : {
     118             : // Assignment operator.
     119           0 :   if (&other == this) return *this;
     120           0 :   AliTrigEvent::operator=(other);
     121           0 :   fType = other.fType;
     122           0 :   TClass* pClass=TClass::GetClass(fType);
     123           0 :   if (!pClass) return *this;
     124           0 :   fValue = (TObject*)pClass->New();
     125           0 :   fValue->Copy(*other.fValue);
     126           0 :   return *this;
     127           0 : }
     128             : 
     129             : //______________________________________________________________________________
     130             : Bool_t AliTrigEventWithObject::ImportData(AliTrigEvent *source)
     131             : {
     132             : // Import data from likewise signal.
     133           0 :   AliTrigEventWithObject *src = (AliTrigEventWithObject *)source;
     134           0 :   Bool_t done = SetValue(src->GetValue());
     135           0 :   if (!done) Error("ImportData", "Cannot import object <%s> of class <%s> since event type was set to: <%s>",
     136           0 :                    src->GetValue()->GetName(), src->GetValue()->ClassName(), fType.Data());
     137           0 :   return done;
     138             : }
     139             : 
     140             : //______________________________________________________________________________
     141             : Bool_t AliTrigEventWithObject::SetType(const char *classname)
     142             : {
     143             : // Set the type of this event. Can be done only once.
     144           0 :   if (!strlen(classname)) return kFALSE;
     145           0 :   if (!fType.IsNull()) {
     146           0 :     Error("SetType", "Type for this trigger event already set to: %s", fType.Data());
     147           0 :     return kFALSE;
     148             :   }  
     149           0 :   TClass *type = gROOT->GetClass(classname);
     150           0 :   if (!type) {
     151           0 :     Error("SetType", "Unknown class %s", classname);
     152           0 :     return kFALSE;
     153             :   }
     154           0 :   fType = classname;
     155           0 :   return kTRUE;
     156           0 : }
     157             : 
     158             : //______________________________________________________________________________
     159             : Bool_t AliTrigEventWithObject::SetValue(TObject *value)
     160             : {
     161             : // Set the current event content. Checks consistency with event type.
     162           0 :   if (!value) {
     163             :     // Reset current value.
     164           0 :     fValue = NULL;
     165           0 :     return kTRUE;
     166             :   }
     167             :   // Set the type if used for the first time.
     168           0 :   if (!fType) fType = value->ClassName();
     169           0 :   fValue = value;
     170           0 :   return kTRUE;
     171           0 : }  

Generated by: LCOV version 1.11