LCOV - code coverage report
Current view: top level - PHOS/PHOSbase - AliPHOSTriggerParameters.cxx (source / functions) Hit Total Coverage
Test: coverage.info Lines: 24 93 25.8 %
Date: 2016-06-14 17:26:59 Functions: 4 31 12.9 %

          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             : 
      18             : ///////////////////////////////////////////////////////////////////////////////
      19             : //.                                                                          //
      20             : // class for PHOS Trigger Parameters                                         //
      21             : //.                                                                          //
      22             : ///////////////////////////////////////////////////////////////////////////////
      23             : 
      24             : #include "AliPHOSTriggerParameters.h"
      25             : #include "TString.h"
      26             : 
      27          22 : ClassImp(AliPHOSTriggerParameters)
      28             : 
      29             : //________________________________________________________________
      30             : AliPHOSTriggerParameters::AliPHOSTriggerParameters()
      31           2 :   : TNamed()
      32          10 : {
      33             :   // default constructor. Initialises with Reset().
      34           2 :   Reset();
      35           4 : }
      36             : 
      37             : //________________________________________________________________
      38             : AliPHOSTriggerParameters::AliPHOSTriggerParameters(const char* name)
      39           0 :   : TNamed(name, name)
      40           0 : {
      41             :   // Specific constructor, passes name to TNamed base. Initialises with Reset().
      42             : 
      43           0 :   Reset();
      44           0 : }
      45             : 
      46             : //________________________________________________________________
      47             : AliPHOSTriggerParameters::AliPHOSTriggerParameters(const AliPHOSTriggerParameters& other)
      48           0 :   : TNamed(other)
      49           0 : {
      50             :   // copy constructor
      51             :   
      52           0 :   for(Int_t mod = 0; mod < kNMods; ++mod) {
      53           0 :     for(Int_t TRURow = 0; TRURow < kNTRURows; TRURow++) {
      54           0 :       for(Int_t branch = 0; branch < kNBranches; branch++) {
      55           0 :         for(Int_t xIdx = 0; xIdx < kNTRUX; xIdx++) {
      56           0 :           for(Int_t zIdx = 0; zIdx < kNTRUZ; zIdx++) {
      57           0 :             fTRUPedestals[mod][TRURow][branch][xIdx][zIdx] = other.fTRUPedestals[mod][TRURow][branch][xIdx][zIdx];
      58             :           } // end zIdx
      59             :         } // end xIdx
      60           0 :         fTRUTriggerBitReadoutOn[mod][TRURow][branch] = other.fTRUTriggerBitReadoutOn[mod][TRURow][branch];
      61           0 :         fTRUSignalReadoutOn[mod][TRURow][branch] = other.fTRUSignalReadoutOn[mod][TRURow][branch];
      62           0 :         fTRUSignalTimeBinFrom[mod][TRURow][branch] = other.fTRUSignalTimeBinFrom[mod][TRURow][branch];
      63           0 :         fTRUSignalTimeBinTo[mod][TRURow][branch] = other.fTRUSignalTimeBinTo[mod][TRURow][branch];
      64           0 :         fTRUThreshold[mod][TRURow][branch] = other.fTRUThreshold[mod][TRURow][branch];
      65           0 :         fTRUMaskChannel[mod][TRURow][branch] = other.fTRUMaskChannel[mod][TRURow][branch];
      66             :       } // end branch 
      67             :     } // end tru
      68             :     // for(int tor = 0; tor < kNTORs; tor++) {
      69             :     //   fTORMaskArray[mod][tor] = other.fTORMaskArray[mod][tor] ;
      70             :     //   fTORReadoutMask[mod][tor] = other.fTORReadoutMask[mod][tor];
      71             :     // }
      72             :   } // end mod
      73           0 : }
      74             : 
      75             : 
      76             : //________________________________________________________________
      77             : AliPHOSTriggerParameters& AliPHOSTriggerParameters::operator= (const AliPHOSTriggerParameters& other)
      78             : {
      79             :   // assignement
      80             :   
      81           0 :   SetName(other.GetName());
      82           0 :   SetTitle(other.GetTitle());
      83             : 
      84           0 :   for(Int_t mod = 0; mod < kNMods; ++mod) {
      85           0 :     for(Int_t TRURow = 0; TRURow < kNTRURows; TRURow++) {
      86           0 :       for(Int_t branch = 0; branch < kNBranches; branch++) {
      87           0 :         for(Int_t xIdx = 0; xIdx < kNTRUX; xIdx++) {
      88           0 :           for(Int_t zIdx = 0; zIdx < kNTRUZ; zIdx++) {
      89           0 :             fTRUPedestals[mod][TRURow][branch][xIdx][zIdx] = other.fTRUPedestals[mod][TRURow][branch][xIdx][zIdx];
      90             :           }
      91             :         }
      92           0 :         fTRUTriggerBitReadoutOn[mod][TRURow][branch] = other.fTRUTriggerBitReadoutOn[mod][TRURow][branch];
      93           0 :         fTRUSignalReadoutOn[mod][TRURow][branch] = other.fTRUSignalReadoutOn[mod][TRURow][branch];
      94           0 :         fTRUSignalTimeBinFrom[mod][TRURow][branch] = other.fTRUSignalTimeBinFrom[mod][TRURow][branch];
      95           0 :         fTRUSignalTimeBinTo[mod][TRURow][branch] = other.fTRUSignalTimeBinTo[mod][TRURow][branch];
      96           0 :         fTRUThreshold[mod][TRURow][branch] = other.fTRUThreshold[mod][TRURow][branch];
      97           0 :         fTRUMaskChannel[mod][TRURow][branch] = other.fTRUMaskChannel[mod][TRURow][branch];
      98             :       }
      99             :     }
     100             :     // for(Int_t tor = 0; tor < kNTORs; tor++) {
     101             :     //   fTORMaskArray[mod][tor] = other.fTORMaskArray[mod][tor] ;
     102             :     //   fTORReadoutMask[mod][tor] = other.fTORReadoutMask[mod][tor];
     103             :     // }
     104             :   }
     105           0 :   return *this;
     106             : }
     107             : 
     108             : //________________________________________________________________
     109             : AliPHOSTriggerParameters::~AliPHOSTriggerParameters()
     110           0 : {
     111             :   // destructor
     112           0 : }
     113             : 
     114             : 
     115             : //________________________________________________________________
     116             : UShort_t AliPHOSTriggerParameters::GetTRUPedestal(Int_t mod, Int_t TRURow, Int_t branch, Int_t xIdx, Int_t zIdx) const
     117             : {
     118             :   // Returns the pedestals of the TRU FakeALTRO Trigger signal, is in the range
     119             :   // spanned by 10 bits, i.e. [0,1023]. Ideal value is is given by.
     120             :   //
     121             :   // mod: [0,4], module index, clockwise, as of 2011 only 2:4 exists
     122             :   // TRURow: [0,3], TRU Row, indexed in rising number in PHOS x direction
     123             :   // branch: [0,1], branch, indexed in rising number in z direction
     124             :   // xIdx: [0,7], TRU 2x2 cell x index, indexed in rising number in PHOS x direction
     125             :   // zIdx: [0,13], TRU 2x2 cell z index, indexed in rising number in PHOS z direction
     126             :   
     127           0 :   return fTRUPedestals[mod][TRURow][branch][xIdx][zIdx];
     128             : }
     129             : //________________________________________________________________
     130             : Bool_t AliPHOSTriggerParameters::GetTRUReadoutOn(Int_t mod, Int_t TRURow, Int_t branch) const
     131             : {
     132             :   // Returns the TRU specific flag that specifies for the TRU whether 
     133             :   // or not it should be read out.
     134             :   //
     135             :   // mod: [0,4], module index, clockwise, as of 2011 only 2:4 exists
     136             :   // TRURow: [0,3], TRU Row, indexed in rising number in PHOS x direction
     137             :   // branch: [0,1], branch, indexed in rising number in z direction
     138             : 
     139           0 :   return fTRUTriggerBitReadoutOn[mod][TRURow][branch];
     140             : }
     141             : //________________________________________________________________
     142             : Bool_t AliPHOSTriggerParameters::GetTRUSignalReadoutOn(Int_t mod, Int_t TRURow, Int_t branch) const
     143             : {
     144             :   // Returns the TRU specific flag that specifies for the TRU whether 
     145             :   // or not it readout should include full  FakeALTRO Trigger Signal.
     146             :   //
     147             :   // mod: [0,4], module index, clockwise, as of 2011 only 2:4 exists
     148             :   // TRURow: [0,3], TRU Row, indexed in rising number in PHOS x direction
     149             :   // branch: [0,1], branch, indexed in rising number in z direction
     150             : 
     151           0 :   return fTRUSignalReadoutOn[mod][TRURow][branch];
     152             : }
     153             : //________________________________________________________________
     154             : UShort_t AliPHOSTriggerParameters::GetTRUSignalTimeBinFrom(Int_t mod, Int_t TRURow, Int_t branch) const
     155             : {
     156             :   // Returns the TRU specific value that specifies from (including), 
     157             :   // which timebin TRU should read out.
     158             :   //
     159             :   // mod: [0,4], module index, clockwise, as of 2011 only 2:4 exists
     160             :   // TRURow: [0,3], TRU Row, indexed in rising number in PHOS x direction
     161             :   // branch: [0,1], branch, indexed in rising number in z direction
     162             : 
     163           0 :   return fTRUSignalTimeBinFrom[mod][TRURow][branch];
     164             : }
     165             : //________________________________________________________________
     166             : UShort_t AliPHOSTriggerParameters::GetTRUSignalTimeBinTo(Int_t mod, Int_t TRURow, Int_t branch) const
     167             : {
     168             :   // Returns the TRU specific value that specifies to (including), 
     169             :   // which timebin TRU should read out.
     170             :   //
     171             :   // mod: [0,4], module index, clockwise, as of 2011 only 2:4 exists
     172             :   // TRURow: [0,3], TRU Row, indexed in rising number in PHOS x direction
     173             :   // branch: [0,1], branch, indexed in rising number in z direction
     174             : 
     175           0 :   return fTRUSignalTimeBinTo[mod][TRURow][branch];
     176             : }
     177             : //________________________________________________________________
     178             : UShort_t AliPHOSTriggerParameters::GetTRUThreshold(Int_t mod, Int_t TRURow, Int_t branch) const
     179             : {
     180             :   // Returns the TRU specific value that specifies the trigger threshold, 
     181             :   // the 4x4 Sliding Window (signal - pedestal) value to which the tru 
     182             :   // sends a L0.
     183             :   //
     184             :   // mod: [0,4], module index, clockwise, as of 2011 only 2:4 exists
     185             :   // TRURow: [0,3], TRU Row, indexed in rising number in PHOS x direction
     186             :   // branch: [0,1], branch, indexed in rising number in z direction
     187             :   
     188           0 :   return fTRUThreshold[mod][TRURow][branch];
     189             : }
     190             : //________________________________________________________________
     191             : UShort_t AliPHOSTriggerParameters::GetTRUMaskChannel(Int_t mod, Int_t TRURow, Int_t branch) const
     192             : {
     193             :   // TODO: description
     194             :   //
     195             :   // mod: [0,4], module index, clockwise, as of 2011 only 2:4 exists
     196             :   // TRURow: [0,3], TRU Row, indexed in rising number in PHOS x direction
     197             :   // branch: [0,1], branch, indexed in rising number in z direction
     198             : 
     199           0 :   return fTRUMaskChannel[mod][TRURow][branch];
     200             : }
     201             : //________________________________________________________________
     202             : const UShort_t* AliPHOSTriggerParameters::GetTORMaskArray(Int_t mod, Int_t tor) const
     203             : {
     204             :   // TODO: description
     205             :   //
     206             :   // mod: [0,4], module index, clockwise, as of 2011 only 2:4 exists
     207             :   // tor: [0,1], TOR index, rising in PHOS x direction
     208             :   //
     209             :   // returns a array of UShort_t of size 3.
     210             : 
     211           0 :   return fTORMaskArray[mod][tor];
     212             : }
     213             : //________________________________________________________________
     214             : const UShort_t* AliPHOSTriggerParameters::GetTORReadoutMask(Int_t mod, Int_t tor) const
     215             : {
     216             :   // TODO: description
     217             :   //
     218             :   // mod: [0,4], module index, clockwise, as of 2011 only 2:4 exists
     219             :   // tor: [0,1], TOR index, rising in PHOS x direction
     220             :   //
     221             :   // returns a array of UShort_t of size 2.
     222             : 
     223           0 :   return fTORReadoutMask[mod][tor];
     224             : }
     225             : 
     226             : 
     227             : //________________________________________________________________
     228             : void AliPHOSTriggerParameters::SetTRUPedestal(UShort_t pedestal, Int_t mod, Int_t TRURow, Int_t branch, Int_t xIdx, Int_t zIdx)
     229             : {
     230             :   // Returns the pedestals of the TRU FakeALTRO Trigger signal, 
     231             :   // is in the range spanned by 10 bits
     232             :   // , i.e. [0,1023]. Ideal value is is given by.
     233             :   //
     234             :   // mod: [0,4], module index, clockwise, as of 2011 only 2:4 exists
     235             :   // TRURow: [0,3], TRU Row, indexed in rising number in PHOS x direction
     236             :   // branch: [0,1], branch, indexed in rising number in z direction
     237             :   // xIdx: [0,7], TRU 2x2 cell x index, indexed in rising number in PHOS x direction
     238             :   // zIdx: [0,7], TRU 2x2 cell z index, indexed in rising number in PHOS z direction
     239             :   
     240           0 :   fTRUPedestals[mod][TRURow][branch][xIdx][zIdx] = pedestal;
     241           0 : }
     242             : //________________________________________________________________
     243             : void AliPHOSTriggerParameters::SetTRUReadoutOn(Bool_t isOn, Int_t mod, Int_t TRURow, Int_t branch)
     244             : {
     245             :   // Returns the TRU specific flag that specifies for the TRU 
     246             :   // whether or not it should be read out.
     247             :   //
     248             :   // mod: [0,4], module index, clockwise, as of 2011 only 2:4 exists
     249             :   // TRURow: [0,3], TRU Row, indexed in rising number in PHOS x direction
     250             :   // branch: [0,1], branch, indexed in rising number in z direction
     251             : 
     252           0 :   fTRUTriggerBitReadoutOn[mod][TRURow][branch] = isOn;
     253           0 : }
     254             : //________________________________________________________________
     255             : void AliPHOSTriggerParameters::SetTRUSignalReadoutOn(Bool_t isOn, Int_t mod, Int_t TRURow, Int_t branch)
     256             : {
     257             :   // Returns the TRU specific flag that specifies for the TRU whether or not it
     258             :   // readout should include full FakeALTRO Trigger Signal.
     259             :   //
     260             :   // mod: [0,4], module index, clockwise, as of 2011 only 2:4 exists
     261             :   // TRURow: [0,3], TRU Row, indexed in rising number in PHOS x direction
     262             :   // branch: [0,1], branch, indexed in rising number in z direction
     263             : 
     264           0 :    fTRUSignalReadoutOn[mod][TRURow][branch] = isOn;
     265           0 : }
     266             : //________________________________________________________________
     267             : void AliPHOSTriggerParameters::SetTRUSignalTimeBinFrom(UShort_t fromBin, Int_t mod, Int_t TRURow, Int_t branch)
     268             : {
     269             :   // Returns the TRU specific value that specifies from (including), 
     270             :   // which timebin TRU should read out.
     271             :   //
     272             :   // mod: [0,4], module index, clockwise, as of 2011 only 2:4 exists
     273             :   // TRURow: [0,3], TRU Row, indexed in rising number in PHOS x direction
     274             :   // branch: [0,1], branch, indexed in rising number in z direction
     275             : 
     276           0 :   fTRUSignalTimeBinFrom[mod][TRURow][branch] = fromBin;
     277           0 : }
     278             : //________________________________________________________________
     279             : void AliPHOSTriggerParameters::SetTRUSignalTimeBinTo(UShort_t toBin, Int_t mod, Int_t TRURow, Int_t branch)
     280             : {
     281             :   // Returns the TRU specific value that specifies to (including), 
     282             :   // which timebin TRU should read out.
     283             :   //
     284             :   // mod: [0,4], module index, clockwise, as of 2011 only 2:4 exists
     285             :   // TRURow: [0,3], TRU Row, indexed in rising number in PHOS x direction
     286             :   // branch: [0,1], branch, indexed in rising number in z direction
     287             : 
     288           0 :   fTRUSignalTimeBinTo[mod][TRURow][branch] = toBin;
     289           0 : }
     290             : //________________________________________________________________
     291             : void AliPHOSTriggerParameters::SetTRUThreshold(UShort_t threshold, Int_t mod, Int_t TRURow, Int_t branch)
     292             : {
     293             :   // Returns the TRU specific value that specifies the trigger threshold, 
     294             :   // the (signal - pedestal) value to which the tru sends a L0.
     295             :   //
     296             :   // mod: [0,4], module index, clockwise, as of 2011 only 2:4 exists
     297             :   // TRURow: [0,3], TRU Row, indexed in rising number in PHOS x direction
     298             :   // branch: [0,1], branch, indexed in rising number in z direction
     299             :   
     300           0 :   fTRUThreshold[mod][TRURow][branch] = threshold;
     301           0 : }
     302             : //________________________________________________________________
     303             : void AliPHOSTriggerParameters::SetTRUMaskChannel(UShort_t mask, Int_t mod, Int_t TRURow, Int_t branch)
     304             : {
     305             :   // TODO: description
     306             :   //
     307             :   // mod: [0,4], module index, clockwise, as of 2011 only 2:4 exists
     308             :   // TRURow: [0,3], TRU Row, indexed in rising number in PHOS x direction
     309             :   // branch: [0,1], branch, indexed in rising number in z direction
     310             : 
     311           0 :   fTRUMaskChannel[mod][TRURow][branch] = mask;
     312           0 : }
     313             : //________________________________________________________________
     314             : void AliPHOSTriggerParameters::SetTORMaskArray(const UShort_t ma[3], Int_t mod, Int_t tor)
     315             : {
     316             :   // TODO: description
     317             :   //
     318             :   // mod: [0,4], module index, clockwise, as of 2011 only 2:4 exists
     319             :   // tor: [0,1], TOR index, rising in PHOS x direction
     320             : 
     321           0 :   fTORMaskArray[mod][tor][0] = ma[0];
     322           0 :   fTORMaskArray[mod][tor][1] = ma[1];
     323           0 :   fTORMaskArray[mod][tor][2] = ma[2];
     324           0 : }
     325             : //________________________________________________________________
     326             : void AliPHOSTriggerParameters::SetTORReadoutMask(const UShort_t rm[2], Int_t mod, Int_t tor)
     327             : {
     328             :   // TODO: description
     329             :   //
     330             :   // mod: [0,4], module index, clockwise, as of 2011 only 2:4 exists
     331             :   // tor: [0,1], TOR index, rising in PHOS x direction
     332             :   
     333           0 :   fTORReadoutMask[mod][tor][0] = rm[0];
     334           0 :   fTORReadoutMask[mod][tor][1] = rm[1];
     335           0 : }
     336             : 
     337             : 
     338             : //________________________________________________________________
     339             : void AliPHOSTriggerParameters::Print(Option_t *option) const
     340             : {
     341             :   // Will Write uppon request (Henrik Qvigstad <henrik.qvigstad@cern.ch>)
     342           0 :   if(option)
     343           0 :     Printf("AliPHOSTriggerParameters::Print is not implemented.");
     344           0 : }
     345             : 
     346             : //________________________________________________________________
     347             : void AliPHOSTriggerParameters::Reset()
     348             : {
     349             :   // Resets the values to Null/Ideal
     350             : 
     351          26 :     for(Int_t mod = 0; mod < kNMods; ++mod) {
     352         100 :     for(Int_t TRURow = 0; TRURow < kNTRURows; TRURow++) {
     353         240 :       for(Int_t branch = 0; branch < kNBranches; branch++) {
     354          80 :         fTRUTriggerBitReadoutOn[mod][TRURow][branch] = 0;
     355          80 :         fTRUSignalReadoutOn[mod][TRURow][branch] = 0;
     356          80 :         fTRUSignalTimeBinFrom[mod][TRURow][branch] = 0;
     357          80 :         fTRUSignalTimeBinTo[mod][TRURow][branch] = kDefaultNTRUTimeBins-1;
     358          80 :         fTRUThreshold[mod][TRURow][branch] = 0;
     359          80 :         fTRUMaskChannel[mod][TRURow][branch] = 0;
     360        1440 :         for(Int_t xIdx = 0; xIdx < kNTRUX; xIdx++) {
     361       19200 :           for(Int_t zIdx = 0; zIdx < kNTRUZ; zIdx++) {
     362        8960 :             fTRUPedestals[mod][TRURow][branch][xIdx][zIdx] = kIdealTRUPedestal;
     363             :           }
     364             :         }
     365             :       }
     366             :     }
     367          60 :     for(Int_t tor = 0; tor < kNTORs; tor++) {
     368          20 :       fTORMaskArray[mod][tor][0] = 0;
     369          20 :       fTORMaskArray[mod][tor][1] = 0;
     370          20 :       fTORMaskArray[mod][tor][2] = 0;
     371          20 :       fTORReadoutMask[mod][tor][0] = 0;
     372          20 :       fTORReadoutMask[mod][tor][1] = 0;
     373             :     }
     374             :   }
     375           2 : }
     376             : 

Generated by: LCOV version 1.11