LCOV - code coverage report
Current view: top level - VZERO/VZERObase - AliVZEROTriggerData.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 24 56 42.9 %
Date: 2016-06-14 17:26:59 Functions: 25 60 41.7 %

          Line data    Source code
       1             : #ifndef ALIVZEROTRIGGERDATA_H
       2             : #define ALIVZEROTRIGGERDATA_H
       3             : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights
       4             :  * reserved. 
       5             :  *
       6             :  * See cxx source for full Copyright notice                               
       7             :  */
       8             : 
       9             : // Class AliVZEROTriggerData
      10             : // -------------------------
      11             : // Retrieves and hold the FEE parameters
      12             : // The parameters are recieved from the shuttle 
      13             : // AliVZEROTriggerData is then used in the AliVZEROTriggerSimulator
      14             : //
      15             : 
      16             : #include <TNamed.h>
      17             : 
      18             : #include "AliVZERODataFEE.h"
      19             : 
      20             : 
      21             : class AliVZEROTriggerData : public TNamed {
      22             : public:
      23             :         AliVZEROTriggerData();
      24             :         AliVZEROTriggerData(Int_t nRun, UInt_t startTime, UInt_t endTime);
      25             :         ~AliVZEROTriggerData();
      26             :         
      27             :         void FillData(AliVZERODataFEE * data);
      28             : 
      29             :         // ----- Setters -----
      30             : 
      31             :         void SetClk1Win1(UShort_t* clks);
      32             :         void SetClk1Win1(UShort_t clk, Int_t board);
      33             :         void SetClk2Win1(UShort_t* clks);
      34             :         void SetClk2Win1(UShort_t clk, Int_t board);
      35             :         
      36             :         void SetClk1Win2(UShort_t* clks);
      37             :         void SetClk1Win2(UShort_t clk, Int_t board);
      38             :         void SetClk2Win2(UShort_t* clks);
      39             :         void SetClk2Win2(UShort_t clk, Int_t board);
      40             :         
      41             :         void SetDelayClk1Win1(UShort_t* delays);
      42             :         void SetDelayClk1Win1(UShort_t delay, Int_t board);
      43             :         void SetDelayClk2Win1(UShort_t* delays);
      44             :         void SetDelayClk2Win1(UShort_t delay, Int_t board);
      45             :         
      46             :         void SetDelayClk1Win2(UShort_t* delays);
      47             :         void SetDelayClk1Win2(UShort_t delay, Int_t board);
      48             :         void SetDelayClk2Win2(UShort_t* delays);
      49             :         void SetDelayClk2Win2(UShort_t delay, Int_t board);
      50             :         
      51             :         void SetLatchWin1(UShort_t *latchs);
      52             :         void SetLatchWin1(UShort_t latch, Int_t board);
      53             :         void SetLatchWin2(UShort_t *latchs);
      54             :         void SetLatchWin2(UShort_t latch, Int_t board);
      55             :         
      56             :         void SetResetWin1(UShort_t *resets);
      57             :         void SetResetWin1(UShort_t reset, Int_t board);
      58             :         void SetResetWin2(UShort_t *resets);
      59             :         void SetResetWin2(UShort_t reset, Int_t board);
      60             :         
      61             :         void SetPedestalSubtraction(Bool_t *peds);
      62             :         void SetPedestalSubtraction(Bool_t ped, Int_t board);
      63             :         
      64           0 :         void SetBBAThreshold(UShort_t th) {fBBAThreshold = th;};
      65           0 :         void SetBBCThreshold(UShort_t th) {fBBCThreshold = th;};
      66             : 
      67           0 :         void SetBGAThreshold(UShort_t th) {fBGAThreshold = th;};
      68           0 :         void SetBGCThreshold(UShort_t th) {fBGCThreshold = th;};
      69             : 
      70           0 :         void SetBBAForBGThreshold(UShort_t th) {fBBAForBGThreshold = th;};
      71           0 :         void SetBBCForBGThreshold(UShort_t th) {fBBCForBGThreshold = th;};
      72             :         
      73           0 :         void SetCentralityV0AThrLow(UShort_t th) {fCentralityVOAThrLow = th;};
      74           0 :         void SetCentralityV0AThrHigh(UShort_t th) {fCentralityVOAThrHigh = th;};
      75             :         
      76           0 :         void SetCentralityV0CThrLow(UShort_t th) {fCentralityVOCThrLow = th;};
      77           0 :         void SetCentralityV0CThrHigh(UShort_t th) {fCentralityVOCThrHigh = th;};
      78             :         
      79           0 :         void SetMultV0AThrLow(UShort_t th) {fMultV0AThrLow = th;};
      80           0 :         void SetMultV0AThrHigh(UShort_t th) {fMultV0AThrHigh = th;};
      81             :         
      82           0 :         void SetMultV0CThrLow(UShort_t th) {fMultV0CThrLow = th;};
      83           0 :         void SetMultV0CThrHigh(UShort_t th) {fMultV0CThrHigh = th;};
      84             :         
      85             :         void SetTriggerSelected(UShort_t trigger, Int_t output);
      86             :         
      87             :         void SetEnableCharge(Bool_t val, Int_t board, Int_t channel);
      88             :         void SetEnableTiming(Bool_t val, Int_t board, Int_t channel);
      89             :         void SetDiscriThr(UShort_t val, Int_t board, Int_t channel);
      90             :         void SetDelayHit(UShort_t val, Int_t board, Int_t channel);
      91             :         void SetPedestal(UShort_t val, Int_t integrator, Int_t board, Int_t channel);
      92             :         void SetPedestalCut(UShort_t val, Int_t integrator, Int_t board, Int_t channel);
      93             : 
      94             :         
      95             :         // ----- Getters -----
      96             :         
      97           0 :         UShort_t * GetClk1Win1() const {return (UShort_t*)fClk1Win1;};
      98           0 :         UShort_t GetClk1Win1(Int_t board ) const {return ((board>=0 && board<kNCIUBoards)?fClk1Win1[board]:0);};
      99           0 :         UShort_t * GetClk2Win1() const {return (UShort_t*)fClk2Win1;};
     100           0 :         UShort_t GetClk2Win1(Int_t board ) const {return ((board>=0 && board<kNCIUBoards)?fClk2Win1[board]:0);};
     101             : 
     102           0 :         UShort_t * GetClk1Win2() const {return (UShort_t*)fClk1Win2;};
     103           0 :         UShort_t GetClk1Win2(Int_t board ) const {return ((board>=0 && board<kNCIUBoards)?fClk1Win2[board]:0);};
     104           0 :         UShort_t * GetClk2Win2() const {return (UShort_t*)fClk2Win2;};
     105           0 :         UShort_t GetClk2Win2(Int_t board ) const {return ((board>=0 && board<kNCIUBoards)?fClk2Win2[board]:0);};
     106             : 
     107           0 :         UShort_t * GetDelayClk1Win1() const {return (UShort_t*)fDelayClk1Win1;};
     108         256 :         UShort_t GetDelayClk1Win1(Int_t board ) const {return ((board>=0 && board<kNCIUBoards)?fDelayClk1Win1[board]:0);};
     109           0 :         UShort_t * GetDelayClk2Win1() const {return (UShort_t*)fDelayClk2Win1;};
     110         256 :         UShort_t GetDelayClk2Win1(Int_t board ) const {return ((board>=0 && board<kNCIUBoards)?fDelayClk2Win1[board]:0);};
     111             :         
     112           0 :         UShort_t * GetDelayClk1Win2() const {return (UShort_t*)fDelayClk1Win2;};
     113         256 :         UShort_t GetDelayClk1Win2(Int_t board ) const {return ((board>=0 && board<kNCIUBoards)?fDelayClk1Win2[board]:0);};
     114           0 :         UShort_t * GetDelayClk2Win2() const {return (UShort_t*)fDelayClk2Win2;};
     115         256 :         UShort_t GetDelayClk2Win2(Int_t board ) const {return ((board>=0 && board<kNCIUBoards)?fDelayClk2Win2[board]:0);};
     116             :         
     117           0 :         UShort_t * GetLatchWin1() const {return (UShort_t*)fLatchWin1;};
     118         128 :         UShort_t GetLatchWin1(Int_t board ) const  {return ((board>=0 && board<kNCIUBoards)?fLatchWin1[board]:0);};
     119           0 :         UShort_t * GetLatchWin2() const {return (UShort_t*)fLatchWin2;};
     120         128 :         UShort_t GetLatchWin2(Int_t board ) const  {return ((board>=0 && board<kNCIUBoards)?fLatchWin2[board]:0);};
     121             :         
     122           0 :         UShort_t * GetResetWin1() const {return (UShort_t*)fResetWin1;};
     123         128 :         UShort_t GetResetWin1(Int_t board ) const  {return ((board>=0 && board<kNCIUBoards)?fResetWin1[board]:0);};
     124           0 :         UShort_t * GetResetWin2() const {return (UShort_t*)fResetWin2;};
     125         128 :         UShort_t GetResetWin2(Int_t board ) const  {return ((board>=0 && board<kNCIUBoards)?fResetWin2[board]:0);};
     126             :         
     127           0 :         Bool_t * GetPedestalSubtraction() const {return (Bool_t*) fPedestalSubtraction;};
     128        3072 :         Bool_t GetPedestalSubtraction(Int_t board ) const  {return ((board>=0 && board<kNCIUBoards)?fPedestalSubtraction[board]:0);};
     129             : 
     130          24 :         UShort_t GetBBAThreshold() const {return fBBAThreshold;};
     131          32 :         UShort_t GetBBCThreshold() const {return fBBCThreshold;};
     132             : 
     133          32 :         UShort_t GetBGAThreshold() const {return fBGAThreshold;};
     134          32 :         UShort_t GetBGCThreshold() const {return fBGCThreshold;};
     135             : 
     136          16 :         UShort_t GetBBAForBGThreshold() const {return fBBAForBGThreshold;};
     137          24 :         UShort_t GetBBCForBGThreshold() const {return fBBCForBGThreshold;};
     138             :         
     139          24 :         UShort_t GetCentralityV0AThrLow() const {return fCentralityVOAThrLow;};
     140          24 :         UShort_t GetCentralityV0AThrHigh() const {return fCentralityVOAThrHigh;};
     141             :         
     142          24 :         UShort_t GetCentralityV0CThrLow() const {return fCentralityVOCThrLow;};
     143          24 :         UShort_t GetCentralityV0CThrHigh() const {return fCentralityVOCThrHigh;};
     144             : 
     145          24 :         UShort_t GetMultV0AThrLow() const {return fMultV0AThrLow;};
     146          24 :         UShort_t GetMultV0AThrHigh() const {return fMultV0AThrHigh;};
     147             : 
     148          24 :         UShort_t GetMultV0CThrLow() const {return fMultV0CThrLow;};
     149          24 :         UShort_t GetMultV0CThrHigh() const {return fMultV0CThrHigh;};
     150             : 
     151           0 :         UShort_t GetTriggerSelected(Int_t output) const {return ((output>=0 && output<kNTriggerOutputs)?fTriggerSelected[output]:0);};
     152             :         
     153             :         Bool_t GetEnableCharge(Int_t board, Int_t channel);
     154             :         Bool_t GetEnableTiming(Int_t board, Int_t channel);
     155             :         UShort_t GetDiscriThr(Int_t board, Int_t channel);
     156             :         UShort_t GetDelayHit(Int_t board, Int_t channel);
     157             :         UShort_t GetPedestal(Int_t integrator, Int_t board, Int_t channel);
     158             :         UShort_t GetPedestalCut(Int_t integrator, Int_t board, Int_t channel);
     159             : 
     160             :         enum {
     161             :                 kNCIUBoards = AliVZERODataFEE::kNCIUBoards,
     162             :                 kNAliases = AliVZERODataFEE::kNAliases,
     163             :                 kNTriggerOutputs = 5,
     164             :                 kNChannels = 8
     165             :         };
     166             :         
     167             : private:
     168             :         AliVZEROTriggerData(const AliVZEROTriggerData &/*triggerData*/);
     169             :         AliVZEROTriggerData& operator= (const AliVZEROTriggerData &/*triggerData*/);
     170             :         
     171             :         UShort_t fClk1Win1[kNCIUBoards]; //Profil of the Clock 1  of the Window 1 (BB window)
     172             :         UShort_t fClk2Win1[kNCIUBoards]; //Profil of the Clock 2  of the Window 1 (BB window)
     173             :         UShort_t fClk1Win2[kNCIUBoards]; //Profil of the Clock 1  of the Window 2 (BG window)
     174             :         UShort_t fClk2Win2[kNCIUBoards]; //Profil of the Clock 2  of the Window 2 (BG window)
     175             :         UShort_t fDelayClk1Win1[kNCIUBoards]; // Delays of the Clock 1  of the Window 1 (BB window)
     176             :         UShort_t fDelayClk2Win1[kNCIUBoards]; // Delays of the Clock 2 of the Window 1 (BB window)
     177             :         UShort_t fDelayClk1Win2[kNCIUBoards]; // Delays of the Clock 1  of the Window 2 (BG window)
     178             :         UShort_t fDelayClk2Win2[kNCIUBoards]; // Delays of the Clock 2 of the Window 2 (BG window)
     179             :         UShort_t fLatchWin1[kNCIUBoards]; //Profil of the Clock of the Latch signal of Window 1 (BB window)
     180             :         UShort_t fLatchWin2[kNCIUBoards]; //Profil of the Clock of the Latch signal of Window 2 (BG window)
     181             :         UShort_t fResetWin1[kNCIUBoards]; //Profil of the Clock of the Reset signal of Window 1 (BB window)
     182             :         UShort_t fResetWin2[kNCIUBoards]; //Profil of the Clock of the Reset signal of Window 2 (BG window)
     183             :         Bool_t   fPedestalSubtraction[kNCIUBoards]; // Flag to en(dis)able pedestal subtraction before centrality trigger calculation
     184             :         UShort_t fBBAThreshold;  // Minimum bias Threshold in number of channel hit for V0A
     185             :         UShort_t fBBCThreshold;  // Minimum bias Threshold in number of channel hit for V0C
     186             :         UShort_t fBGAThreshold;  // Beam Gas Threshold in number of channel hit for V0A
     187             :         UShort_t fBGCThreshold;  // Beam Gas Threshold in number of channel hit for V0C
     188             :         UShort_t fBBAForBGThreshold;  // BBA threshold for Beam Gas triggers (i.e. BBA and BGC)
     189             :         UShort_t fBBCForBGThreshold;  // BBC threshold for Beam Gas triggers (i.e. BBC and BGA)
     190             :         UShort_t fCentralityVOAThrLow;  // Threshold used for centrality triggers (i.e. CTA1 and CTC1)
     191             :         UShort_t fCentralityVOAThrHigh; // Threshold used for centrality triggers (i.e. CTA2 and CTC2)
     192             :         UShort_t fCentralityVOCThrLow;  // Threshold used for centrality triggers (i.e. CTA1 and CTC1)
     193             :         UShort_t fCentralityVOCThrHigh; // Threshold used for centrality triggers (i.e. CTA2 and CTC2)
     194             :         UShort_t fMultV0AThrLow;  // Threshold used for multiplicity triggers (i.e. MTA and MTC)
     195             :         UShort_t fMultV0AThrHigh; // Threshold used for multiplicity triggers (i.e. MTA and MTC)
     196             :         UShort_t fMultV0CThrLow;  // Threshold used for multiplicity triggers (i.e. MTA and MTC)
     197             :         UShort_t fMultV0CThrHigh; // Threshold used for multiplicity triggers (i.e. MTA and MTC)
     198             :         UShort_t fTriggerSelected[kNTriggerOutputs]; // Triggers selected on the 5 outputs to CTP
     199             :         Bool_t   fEnableCharge[kNCIUBoards][kNChannels]; // Flag to know is a channel is participating to the Charge triggers
     200             :         Bool_t   fEnableTiming[kNCIUBoards][kNChannels]; // Flag to know is a channel is participating to the Timing triggers
     201             :         UShort_t fDiscriThr[kNCIUBoards][kNChannels]; // Threshold of each discriminator
     202             :         UShort_t fDelayHit[kNCIUBoards][kNChannels]; // Individual delays of each channel 
     203             :         UShort_t fPedestalOdd[kNCIUBoards][kNChannels]; // Pedestals for the Odd integrators
     204             :         UShort_t fPedestalEven[kNCIUBoards][kNChannels]; // Pedestals for the Even integrators
     205             :         UShort_t fPedestalCutOdd[kNCIUBoards][kNChannels]; // Pedestals Cut for the Odd integrators
     206             :         UShort_t fPedestalCutEven[kNCIUBoards][kNChannels]; // Pedestals Cut for the Even integrators
     207             : 
     208             :         Int_t fRun;       // Run number
     209             :         Int_t fStartTime; // Start time
     210             :         Int_t fEndTime;   // End time
     211             :         TString fAliasNames[kNAliases]; // aliases for DCS data
     212             :         Bool_t fIsProcessed; // bool to know processing status
     213             :         
     214             :         Bool_t  IsClkValid(UShort_t clock) const;
     215             :         void SetParameter(TString name, Int_t val);
     216             :         
     217             :         
     218          68 :         ClassDef( AliVZEROTriggerData, 2 )  
     219             : 
     220             : };
     221             : 
     222             : #endif // ALIVZEROTRIGGERDATA_H
     223             : 
     224             : 

Generated by: LCOV version 1.11