LCOV - code coverage report
Current view: top level - STEER/ESD - AliTriggerClass.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 9 14 64.3 %
Date: 2016-06-14 17:26:59 Functions: 10 18 55.6 %

          Line data    Source code
       1             : #ifndef ALITRIGGERCLASS_H
       2             : #define ALITRIGGERCLASS_H
       3             : 
       4             : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
       5             :  * See cxx source for full Copyright notice                               */
       6             : 
       7             : ///////////////////////////////////////////////////////////////////////////////
       8             : //                                                                           //
       9             : // This class represents the CTP class objects                               //
      10             : //                                                                           //
      11             : // The Class consists of Name, index in the trigger mask counted from 1,     //
      12             : // descriptor, cluster,past-future, mask, downscale, allrare,                //
      13             : // time group, time window                                                   //
      14             : //                                                                           //
      15             : //                                                                           //
      16             : ///////////////////////////////////////////////////////////////////////////////
      17             : 
      18             : #include <TNamed.h>
      19             : 
      20             : class AliTriggerConfiguration;
      21             : class AliTriggerDescriptor;
      22             : class AliTriggerCluster;
      23             : class AliTriggerPFProtection;
      24             : class AliTriggerBCMask;
      25             : 
      26             : class AliTriggerClass : public TNamed {
      27             : 
      28             : public:
      29             :                           AliTriggerClass();
      30             :                           AliTriggerClass( TString & name, UChar_t index,
      31             :                                            AliTriggerDescriptor *desc, AliTriggerCluster *clus,
      32             :                                            AliTriggerPFProtection *pfp, AliTriggerBCMask *mask,
      33             :                                            UInt_t prescaler, Bool_t allrare);
      34             :                           AliTriggerClass( AliTriggerConfiguration *config,
      35             :                                            TString & name, UChar_t index,
      36             :                                            TString &desc, TString &clus,
      37             :                                            TString &pfp, TString &mask,
      38             :                                            UInt_t prescaler, Bool_t allrare);
      39             :                           AliTriggerClass( AliTriggerConfiguration *config,
      40             :                                            TString & name, UChar_t index,
      41             :                                            TString &desc, TString &clus,
      42             :                                            TString &pfp,
      43             :                                            UInt_t prescaler, Bool_t allrare,
      44             :                                            UInt_t timegroup, UInt_t timewindow);
      45             : 
      46             :                           AliTriggerClass( const AliTriggerClass& trclass );
      47             :                virtual   ~AliTriggerClass();
      48             :   AliTriggerClass&   operator=(const AliTriggerClass& trclass);
      49             : 
      50         180 :                   void    Reset() { fStatus = kFALSE; }
      51             : 
      52         250 :              ULong64_t    GetValue() const { return (fStatus) ? fClassMask : 0; }
      53         250 :              ULong64_t    GetValueNext50() const { return (fStatus) ? fClassMaskNext50 : 0; }
      54         144 :                 Bool_t    GetStatus() const { return fStatus; }
      55         324 :                ULong64_t  GetMask() const { return fClassMask; }
      56         324 :                ULong64_t  GetMaskNext50() const { return fClassMaskNext50; }
      57         432 :                    Int_t  GetIndex() const {return (Int_t)fIndex;}
      58           0 :     AliTriggerDescriptor* GetDescriptor() const { return fDescriptor; }
      59         358 :        AliTriggerCluster* GetCluster() const { return fCluster; }
      60           0 :         AliTriggerBCMask* GetBCMask() const { return fMask[0]; }
      61           0 :                    UInt_t GetTimeGroup() const { return fTimeGroup; }
      62           0 :                    UInt_t GetTimeWindow() const { return fTimeGroup; }
      63           0 :                    UInt_t GetPrescaler() const { return fPrescaler; }
      64             :                    Int_t GetDownscaleFactor(Double_t &ds) const;
      65             : 
      66             :                    Bool_t SetMasks(AliTriggerConfiguration *config,TString &mask);
      67             :                     void  Trigger( const TObjArray& inputs , const TObjArray& functions);
      68             :                     void  Print( const Option_t* ) const;
      69             : 
      70             :                   Bool_t  CheckClass(AliTriggerConfiguration *config) const;
      71             :                   Bool_t  IsActive( const TObjArray& inputs, const TObjArray& functions) const;
      72             :                   enum {kNMaxMasks = 13};  // CTP handles up to 12 different BC masks + NONE
      73             : 
      74             : private:
      75             :                ULong64_t  fClassMask;    // trigger mask (1<< (index-1))
      76             :                ULong64_t  fClassMaskNext50; // trigger mask (1<< (index-1))
      77             :                  UChar_t  fIndex;        // position of class in mask
      78             :     AliTriggerDescriptor* fDescriptor;   // pointer to the descriptor
      79             :        AliTriggerCluster* fCluster;      // pointer to the cluster
      80             :   AliTriggerPFProtection* fPFProtection; // pointer to the past-future protection
      81             :         AliTriggerBCMask* fMask[kNMaxMasks];         // array of pinters pointer to bunch-crossing mask
      82             :                   UInt_t  fPrescaler;    // Downscaling factor
      83             :                   Bool_t  fAllRare;      // All or Rare trigger
      84             :                   Bool_t  fStatus;       //! true = Condition has been satisfied after Trigger
      85             :                   UInt_t  fTimeGroup;    // time group
      86             :                   UInt_t  fTimeWindow;   // the size of time window for its group
      87             : 
      88         430 :   ClassDef( AliTriggerClass, 6 )  // Define a trigger class object
      89             : };
      90             : 
      91             : #endif

Generated by: LCOV version 1.11