LCOV - code coverage report
Current view: top level - EMCAL/EMCALTriggerBase - AliEMCALTriggerPatchInfo.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 73 1.4 %
Date: 2016-06-14 17:26:59 Functions: 1 77 1.3 %

          Line data    Source code
       1             : /**
       2             :  * \file AliEMCALTriggerPatchInfo.h
       3             :  * \brief Class to make array of trigger patch objects in AOD/ESD events.
       4             :  *
       5             :  * Emcal trigger patch information class
       6             :  * Can contain three types of information, distinguished by the various bits in the bit field:
       7             :  * -# online trigger information (no extra bits set)
       8             :  * -# offline recalculated trigger patches (bit 25, kSimpleOfflineTriggerBit set)
       9             :  * -# highest patch energy, also for events that did not fire the trigger (bits 22, 23 kRecalc... (using both online and offline info, use bit 25 to distinguish)
      10             :  *
      11             :  * \author Jiri Kral <>, University of Jyv&aumlskul&auml
      12             :  * \date Jun 26, 2013
      13             :  */
      14             : #ifndef ALIEMCALTRIGGERPATCHINFO_H
      15             : #define ALIEMCALTRIGGERPATCHINFO_H
      16             : /* Copyright(c) 1998-2014, ALICE Experiment at CERN, All rights reserved. *
      17             :  * See cxx source for full Copyright notice                               */
      18             : 
      19             : #include "TObject.h"
      20             : 
      21             : #include <TLorentzVector.h>
      22             : #include <TMath.h>
      23             : #include "AliEMCALTriggerBitConfig.h"
      24             : #include "AliEMCALTriggerConstants.h"
      25             : 
      26             : 
      27             : class AliEMCALGeometry;
      28             : class TArrayI;
      29             : 
      30             : 
      31             : /**
      32             :  * \class AliEMCALTriggerPatchInfo
      33             :  * \brief Main data structure storing all relevant information of EMCAL/DCAL trigger patches
      34             :  *
      35             :  * Emcal trigger patch information class
      36             :  * Can contain three types of information, distinguished by the various bits in the bit field:
      37             :  * -# online trigger information (no extra bits set)
      38             :  * -# offline recalculated trigger patches (bit 25, kSimpleOfflineTriggerBit set)
      39             :  * -# highest patch energy, also for events that did not fire the trigger (bits 22, 23 kRecalc... (using both online and offline info, use bit 25 to distinguish)
      40             :  */
      41             : class AliEMCALTriggerPatchInfo: public TObject {
      42             : 
      43             :  public:
      44             :   enum {
      45             :     kRecalcOffset = 16,
      46             :     kOfflineOffset = 24
      47             :   };
      48             : 
      49             :   enum CaloDetectorType_t {
      50             :     kEMCALdet = 0,
      51             :     kDCALPHOSdet = 1
      52             :   };
      53             : 
      54             :   AliEMCALTriggerPatchInfo();
      55             :   AliEMCALTriggerPatchInfo(const AliEMCALTriggerPatchInfo &p);
      56             :   AliEMCALTriggerPatchInfo &operator=(const AliEMCALTriggerPatchInfo &p);
      57             :   virtual ~AliEMCALTriggerPatchInfo();
      58             : 
      59             :   void Reset();
      60             : 
      61             :   /**
      62             :    * Initialize patch
      63             :    * @param col0        Start column of the patch
      64             :    * @param row0        Start row of the patch
      65             :    * @param size        Size of the patch
      66             :    * @param adc         ADC signal of the patch
      67             :    * @param offlineAdc  Offline ADC signal of the patch
      68             :    * @param patchE      Energy of the patch (sum of cell amplitudes)
      69             :    * @param bitmask     Trigger bit mask of the patch
      70             :    * @param vertex      Primary vertex of the event
      71             :    * @param geom        Pointer to the EMCal geometry object
      72             :    */
      73             :   void Initialize(UChar_t col0, UChar_t row0, UChar_t size, UInt_t adc, UInt_t offlineAdc, Double_t patchE, UInt_t bitmask, const TVector3& vertex, const AliEMCALGeometry* geom);
      74             : 
      75             :   /**
      76             :    * Allocate a new AliEMCALTriggerPatchInfo object and initialize it
      77             :    * @param col0        Start column of the patch
      78             :    * @param row0        Start row of the patch
      79             :    * @param size        Size of the patch
      80             :    * @param adc         ADC signal of the patch
      81             :    * @param offlineAdc  Offline ADC signal of the patch
      82             :    * @param patchE      Energy of the patch (sum of cell amplitudes)
      83             :    * @param bitmask     Trigger bit mask of the patch
      84             :    * @param vertex      Primary vertex of the event
      85             :    * @param geom        Pointer to the EMCal geometry object
      86             :    * @return            Pointer to a new and initialized AliEMCALTriggerPatchInfo object (caller is responsible for releasing memory)
      87             :    */
      88             :   static AliEMCALTriggerPatchInfo* CreateAndInitialize(UChar_t col0, UChar_t row0, UChar_t size, UInt_t adc, UInt_t offlineAdc, Double_t patchE, UInt_t bitmask, const TVector3& vertex, const AliEMCALGeometry* geom);
      89             : 
      90             :   /**
      91             :    * Recalculate patch kinematic variables
      92             :    * @param patchE      Energy of the patch (sum of cell amplitudes)
      93             :    * @param vertex      Primary vertex of the event
      94             :    * @param geom        Pointer to the EMCal geometry object
      95             :    */
      96             :   void RecalculateKinematics(Double_t patchE, const TVector3& vertex, const AliEMCALGeometry* geom);
      97             : 
      98             :   /**
      99             :    * Access \f$ \phi \f$ angle of the geometric center of the trigger patch
     100             :    * @return \f$ \phi \f$ angle
     101             :    */
     102           0 :   Double_t GetPhiGeo() const { return GetPhiTransform(fCenterGeo.Phi()); }
     103             :   /**
     104             :    * Access \f$ \phi \f$ angle of the patch at the center of mass
     105             :    * @return \f$ \phi \f$ angle
     106             :    */
     107           0 :   Double_t GetPhiCM()  const { return GetPhiTransform(fCenterMass.Phi()); }
     108             :   /**
     109             :    * Get minimal \f$ \phi \f$ of the patch
     110             :    * @return \f$ \phi \f$ angle
     111             :    */
     112           0 :   Double_t GetPhiMin() const { return GetPhiTransform(fEdge1.Phi()); }
     113             :   /**
     114             :    * Get maximal \f$ \phi \f$ of the patch
     115             :    * @return \f$ \phi \f$ angle
     116             :    */
     117           0 :   Double_t GetPhiMax() const { return GetPhiTransform(fEdge2.Phi()); }
     118             :   /**
     119             :    * Get \f$ \eta \f$ of the patch at the geometrical center
     120             :    * @return Patch \f$ \eta \f$
     121             :    */
     122           0 :   Double_t GetEtaGeo() const { return fCenterGeo.Eta(); }
     123             :   /**
     124             :    * Get \f$ \eta \f$ of the patch at the center of mass
     125             :    * @return Patch \f$ \eta \f$
     126             :    */
     127           0 :   Double_t GetEtaCM()  const { return fCenterMass.Eta(); }
     128             :   /**
     129             :    * Get minimum \f$ \eta \f$ of the patch
     130             :    * @return Patch \f$ \eta \f$
     131             :    */
     132           0 :   Double_t GetEtaMin() const { return fEdge2.Eta(); }
     133             :   /**
     134             :    * Get maximum \f$ \eta \f$ of the patch
     135             :    * @return Patch \f$ \eta \f$
     136             :    */
     137           0 :   Double_t GetEtaMax() const { return fEdge1.Eta(); }
     138             :   /**
     139             :    * Get the patch energy
     140             :    * @return Patch energy
     141             :    */
     142           0 :   Double_t GetPatchE() const { return fCenterGeo.E(); }
     143             :   /**
     144             :    * Get patch online ADC amplitude
     145             :    * @return Online patch amplitude
     146             :    */
     147           0 :   Int_t    GetADCAmp() const { return fADCAmp; }
     148             :   /**
     149             :    * Get patch offline ADC amplitude (obtained from calibrated cell energies converted into ADC signals)
     150             :    * @return Offline patch amplitude
     151             :    */
     152           0 :   Int_t    GetADCOfflineAmp() const { return fADCOfflineAmp; }
     153             :   /**
     154             :    * Get patch energy estimated from offline ADC amplitude converted into energya
     155             :    * @return Patch energy estimate
     156             :    */
     157           0 :   Double_t GetADCAmpGeVRough() const { return (Double_t)fADCAmp * EMCALTrigger::kEMCL1ADCtoGeV; }
     158             :   /**
     159             :    * Get the trigger bits of the classes which fired the patch
     160             :    * @return Selected trigger bits
     161             :    */
     162           0 :   Int_t    GetTriggerBits() const { return fTriggerBits; }
     163             :   /**
     164             :    * Get X position of the edge cell
     165             :    * @return Cell x-position
     166             :    */
     167           0 :   Int_t    GetEdgeCellX() const { return fEdgeCell[0]; }
     168             :   /**
     169             :    * Get Y position of the edge cell
     170             :    * @return Cell y-position
     171             :    */
     172           0 :   Int_t    GetEdgeCellY() const { return fEdgeCell[1]; }
     173             :   void     GetCellIndices( AliEMCALGeometry *geom, TArrayI *cells );
     174             :   
     175             :   /**
     176             :    * Get the transverse energy of the patch
     177             :    * @return Transverse energy of the patch
     178             :    */
     179           0 :   Double_t GetPatchET() const { return GetET(GetPatchE()); }
     180             :   /**
     181             :    * Get the online transverse energy of the patch
     182             :    * @return online transverse energy of the patch
     183             :    */
     184           0 :   Double_t GetPatchETfromADCAmp() const { return GetET(GetADCAmpGeVRough()); }
     185             : 
     186             :   /**
     187             :    * Get the starting row of the patch
     188             :    * @return Starting row of the patch
     189             :    */
     190           0 :   Int_t GetRowStart() const { return fRow0; }
     191             : 
     192             :   /**
     193             :    * Get the starting column of the patch
     194             :    * @return Starting column of the patch
     195             :    */
     196           0 :   Int_t GetColStart() const { return fCol0; }
     197             : 
     198             :   /**
     199             :    * Check whether patch is an EMCAL Level0 patch
     200             :    * @return True if patch is an EMCAL Level0 patch, false otherwise
     201             :    */
     202           0 :   Bool_t   IsLevel0() const { return TESTBIT(fTriggerBits, fOffSet + fTriggerBitConfig.GetLevel0Bit()); }
     203             :   /**
     204             :    * Check whether patch is an EMCAL Level1 jet patch passing the low threshold, found by the trigger electronics or the trigger simulation
     205             :    * @return True if patch matches the trigger condition, false otherwise
     206             :    */
     207           0 :   Bool_t   IsJetLow() const { return TESTBIT(fTriggerBits, fOffSet + fTriggerBitConfig.GetJetLowBit()); }
     208             :   /**
     209             :    * Check whether patch is an EMCAL Level1 jet patch passing the high threshold, found by the trigger electronics or the trigger simulation
     210             :    * @return True if patch matches the trigger condition, false otherwise
     211             :    */
     212           0 :   Bool_t   IsJetHigh() const { return TESTBIT(fTriggerBits, fOffSet + fTriggerBitConfig.GetJetHighBit()); }
     213             :   /**
     214             :    * Check whether patch is an EMCAL Level1 gamma patch passing the low threshold, found by the trigger electronics or the trigger simulation
     215             :    * @return True if patch matches the trigger condition, false otherwise
     216             :    */
     217           0 :   Bool_t   IsGammaLow() const { return TESTBIT(fTriggerBits, fOffSet + fTriggerBitConfig.GetGammaLowBit()); }
     218             :   /**
     219             :    * Check whether patch is an EMCAL Level1 gamma patch passing the high threshold, found by the trigger electronics or the trigger simulation
     220             :    * @return True if patch matches the trigger condition, false otherwise
     221             :    */
     222           0 :   Bool_t   IsGammaHigh() const { return TESTBIT(fTriggerBits, fOffSet + fTriggerBitConfig.GetGammaHighBit()); }
     223             :   /**
     224             :     * No background patches from hardware
     225             :     * @return Always false
     226             :     */
     227           0 :    Bool_t   IsBkg() const { return false; }
     228             :   /**
     229             :    * No main trigger any more
     230             :    * @return Always false
     231             :    */
     232           0 :   Bool_t   IsMainTrigger() const { return false; }
     233             :   /**
     234             :    * Check whether patch is an EMCAL Level1 jet patch passing the low threshold, found by the simple offline trigger
     235             :    * @return True if patch matches the trigger condition, false otherwise
     236             :    */
     237           0 :   Bool_t   IsLevel0Simple() const { return TESTBIT(fTriggerBits, kOfflineOffset + fTriggerBitConfig.GetLevel0Bit()); }
     238             :   /**
     239             :    * Check whether patch is an EMCAL Level1 jet patch passing the low threshold, found by the simple offline trigger
     240             :    * @return True if patch matches the trigger condition, false otherwise
     241             :    */
     242           0 :   Bool_t   IsJetLowSimple() const { return TESTBIT(fTriggerBits, kOfflineOffset + fTriggerBitConfig.GetJetLowBit()); }
     243             :   /**
     244             :    * Check whether patch is an EMCAL Level1 jet patch passing the high threshold, found by the simple offline trigger
     245             :    * @return True if patch matches the trigger condition, false otherwise
     246             :    */
     247           0 :   Bool_t   IsJetHighSimple() const { return TESTBIT(fTriggerBits, kOfflineOffset + fTriggerBitConfig.GetJetHighBit()); }
     248             :   /**
     249             :    * Check whether patch is an EMCAL Level1 gamma patch passing the low threshold, found by the simple offline trigger
     250             :    * @return True if patch matches the trigger condition, false otherwise
     251             :    */
     252           0 :   Bool_t   IsGammaLowSimple() const { return TESTBIT(fTriggerBits, kOfflineOffset + fTriggerBitConfig.GetGammaLowBit()); }
     253             :   /**
     254             :    * Check whether patch is an EMCAL Level1 gamma patch passing the high threshold, found by the simple offline trigger
     255             :    * @return True if patch matches the trigger condition, false otherwise
     256             :    */
     257           0 :   Bool_t   IsGammaHighSimple() const { return TESTBIT(fTriggerBits, kOfflineOffset + fTriggerBitConfig.GetGammaHighBit()); }
     258             :   /**
     259             :    * Check whether patch is an EMCAL background patch, found by the simple offline trigger
     260             :    * @return True if patch matches the trigger condition, false otherwise
     261             :    */
     262           0 :   Bool_t   IsBkgSimple() const { return TESTBIT(fTriggerBits, kOfflineOffset + fTriggerBitConfig.GetBkgBit()); }
     263             :   /**
     264             :    * Check whether patch is an EMCAL Level1 jet patch passing the low threshold, found by the simple offline trigger
     265             :    * @return True if patch matches the trigger condition, false otherwise
     266             :    */
     267           0 :   Bool_t   IsLevel0Recalc() const { return TESTBIT(fTriggerBits, kRecalcOffset + fTriggerBitConfig.GetLevel0Bit()); }
     268             :   /**
     269             :    * Check whether patch is an EMCAL Level1 jet patch passing the low threshold, found by the simple offline trigger
     270             :    * @return True if patch matches the trigger condition, false otherwise
     271             :    */
     272           0 :   Bool_t   IsJetLowRecalc() const { return TESTBIT(fTriggerBits, kRecalcOffset + fTriggerBitConfig.GetJetLowBit()); }
     273             :   /**
     274             :    * Check whether patch is an EMCAL Level1 jet patch passing the high threshold, found by the simple offline trigger
     275             :    * @return True if patch matches the trigger condition, false otherwise
     276             :    */
     277           0 :   Bool_t   IsJetHighRecalc() const { return TESTBIT(fTriggerBits, kRecalcOffset + fTriggerBitConfig.GetJetHighBit()); }
     278             :   /**
     279             :    * Check whether patch is an EMCAL Level1 gamma patch passing the low threshold, found by the simple offline trigger
     280             :    * @return True if patch matches the trigger condition, false otherwise
     281             :    */
     282           0 :   Bool_t   IsGammaLowRecalc() const { return TESTBIT(fTriggerBits, kRecalcOffset + fTriggerBitConfig.GetGammaLowBit()); }
     283             :   /**
     284             :    * Check whether patch is an EMCAL Level1 gamma patch passing the high threshold, found by the simple offline trigger
     285             :    * @return True if patch matches the trigger condition, false otherwise
     286             :    */
     287           0 :   Bool_t   IsGammaHighRecalc() const { return TESTBIT(fTriggerBits, kRecalcOffset + fTriggerBitConfig.GetGammaHighBit()); }
     288             :   /**
     289             :    * Check whether patch is an EMCAL background patch, found by the simple offline trigger
     290             :    * @return True if patch matches the trigger condition, false otherwise
     291             :    */
     292           0 :   Bool_t   IsBkgRecalc() const { return TESTBIT(fTriggerBits, kRecalcOffset + fTriggerBitConfig.GetBkgBit()); }
     293             :   /**
     294             :    * Now main trigger any more in the new definition
     295             :    * @return Always false
     296             :    */
     297           0 :   Bool_t   IsMainTriggerSimple() const { return kFALSE; }
     298             :   /**
     299             :    * Check whether patch is found by the simple offline trigger (on offline amplitudes)
     300             :    * @return True if the patch is found by the simple offline trigger, false otherwise
     301             :    */
     302           0 :   Bool_t   IsOfflineSimple() const { return IsJetLowSimple() || IsJetHighSimple() || IsGammaLowSimple() || IsGammaHighSimple(); }
     303             : 
     304             :   /**
     305             :    * Check whether patch is found by the simple offline trigger (on offline amplitudes)
     306             :    * @return True if the patch is found by the simple offline trigger, false otherwise
     307             :    */
     308           0 :   Bool_t   IsRecalc() const { return IsJetLowRecalc() || IsJetHighRecalc() || IsGammaLowRecalc() || IsGammaHighRecalc(); }
     309             : 
     310             :   /**
     311             :    * Check whether patch is found by the simple offline trigger (on offline amplitudes)
     312             :    * @return True if the patch is found by the simple offline trigger, false otherwise
     313             :    */
     314           0 :   Bool_t   IsOnline() const { return IsJetLow() || IsJetHigh() || IsGammaLow() || IsGammaHigh(); }
     315             : 
     316             :   /**
     317             :    * Access to Lorentz Vector of the centre-of-mass of the trigger patch
     318             :    * @return Lorentz Vector of the centre-of-mass of the trigger patch
     319             :    */
     320           0 :   const TLorentzVector &GetLorentzVectorCM() const { return fCenterMass; }
     321             :   /**
     322             :    * Access to Lorentz Vector of the geometrical centre of the trigger patch
     323             :    * @return Lorentz Vector of the geometrical centre of the trigger patch
     324             :    */
     325           0 :   const TLorentzVector &GetLorentzVectorCenterGeo() const { return fCenterGeo; }
     326             :   /**
     327             :    * Access to Lorentz Vector of the lower left edge of the trigger patch
     328             :    * @return Lorentz Vector of the lower left edge of the trigger patch
     329             :    */
     330           0 :   const TLorentzVector &GetLorentzVectorEdge1() const { return fEdge1; }
     331             :   /**
     332             :    * Access to Lorentz Vector of the upper right edge of the trigger patch
     333             :    * @return Lorentz Vector of the upper right edge of the trigger patch
     334             :    */
     335           0 :   const TLorentzVector &GetLorentzVectorEdge2() const { return fEdge2; }
     336             : 
     337             :   // Recalculated max patches
     338             :   /**
     339             :    * Check if the patch is a recalculated jet patch
     340             :    * @return True if the patch is a recalculated jet patch, false otherwise
     341             :    */
     342           0 :   Bool_t   IsRecalcJet() const { return IsJetLowRecalc() || IsJetHighRecalc(); }
     343             :   /**
     344             :    * Check if the patch is a recalculated gamma patch
     345             :    * @return True if the patch is a recalculated gamma patch, false otherwise
     346             :    */
     347           0 :   Bool_t   IsRecalcGamma() const { return IsGammaLowRecalc() || IsGammaHighRecalc(); }
     348             : 
     349             :   /**
     350             :    * Check whether patch is in the EMCal
     351             :    * @return True if the patch is in the EMCal
     352             :    */
     353           0 :   Bool_t         IsEMCal()         const { return (fDetectorType == kEMCALdet)   ; }
     354             : 
     355             :   /**
     356             :    * Check whether patch is in the EMCal
     357             :    * @return True if the patch is in the EMCal
     358             :    */
     359           0 :   Bool_t         IsDCalPHOS()      const { return (fDetectorType == kDCALPHOSdet); }
     360             : 
     361             :   /**
     362             :    * @return Detector in which the patch is located (EMCal or DCal/PHOS)
     363             :    */
     364           0 :   CaloDetectorType_t GetDetectorType() const { return fDetectorType                  ; }
     365             : 
     366             :   /**
     367             :    * Check whether a trigger bit is set
     368             :    * @param bitnumber Bit number to be tested
     369             :    * @return True if the bit is set
     370             :    */
     371           0 :   Bool_t   TestTriggerBit(UInt_t bitnumber) const { return TESTBIT(fTriggerBits, bitnumber); }
     372             : 
     373             :   /**
     374             :    * Returns the patch size
     375             :    * @return patch size
     376             :    */
     377           0 :   UChar_t  GetPatchSize() const { return fPatchSize; }
     378             : 
     379             :   /**
     380             :    * Set the starting row
     381             :    * @param row0 Starting row of the patch
     382             :    */
     383           0 :   void SetRowStart(int row0) { fRow0 = row0; }
     384             : 
     385             :   /**
     386             :    * Set the starting column
     387             :    * @param col0 Starting column of the patch
     388             :    */
     389           0 :   void SetCol0(int col0) { fCol0 = col0; }
     390             : 
     391             :  /**
     392             :   * Set the geometric center position of the patch
     393             :   * @param v Position 3-vector
     394             :   * @param e Patch energy
     395             :   */
     396           0 :   void SetCenterGeo( const TVector3 &v, Double_t e ) { SetLorentzVector( fCenterGeo, v, e ); }
     397             :   /**
     398             :    * Set the geometric center position of the patch
     399             :    * @param v Position Lorentz vector
     400             :    */
     401           0 :   void SetCenterGeo( const TLorentzVector &v ) { fCenterGeo = v; }
     402             :   /**
     403             :    * Set the center-of-mass position of the trigger patch
     404             :    * @param v Position Lorentz vector
     405             :    */
     406           0 :   void SetCenterMass( const TLorentzVector &v ) { fCenterMass = v; }
     407             :   /**
     408             :    * Set the center-of-mass position of the trigger patch
     409             :    * @param v Position 3-vector
     410             :    * @param e Patch energy
     411             :    */
     412           0 :   void SetCenterMass( const TVector3 &v, Double_t e ) { SetLorentzVector( fCenterMass, v, e ); }
     413             :   /**
     414             :    * Set lower edge position of the trigger patch
     415             :    * @param v Position Lorentz vector
     416             :    */
     417           0 :   void SetEdge1( const TLorentzVector &v ) { fEdge1 = v; }
     418             :   /**
     419             :    * Set lower edge position of the trigger patch
     420             :    * @param v Position 3-vector
     421             :    * @param e Patch energy
     422             :    */
     423           0 :   void SetEdge1( const TVector3 &v, Double_t e ) { SetLorentzVector( fEdge1, v, e ); }
     424             :   /**
     425             :    * Set upper edge position of the trigger patch
     426             :    * @param v Lorentz-vector of the upper edge position of the trigger patch
     427             :    */
     428           0 :   void SetEdge2( const TLorentzVector &v ) { fEdge2 = v; }
     429             :   /**
     430             :    * Set upper edge position of the trigger patch
     431             :    * @param v Position 3-vector
     432             :    * @param e Patch Energy
     433             :    */
     434           0 :   void SetEdge2( const TVector3 &v, Double_t e ) { SetLorentzVector( fEdge2, v, e ); }
     435             :   /**
     436             :    * Set online ADC amplitude
     437             :    * @param a Online ADC amplitude
     438             :    */
     439           0 :   void SetADCAmp( Int_t a ) { fADCAmp = a; }
     440             :   /**
     441             :    * Set offline ADC amplitude (derived from cell energies converted to ADC amplitude)
     442             :    * @param a Offline ADC amplitude
     443             :    */
     444           0 :   void SetADCOfflineAmp( Int_t a ) { fADCOfflineAmp = a; }
     445             :   /**
     446             :    * Set Indices in x and y of the edge cell
     447             :    * @param x Cell index in x-direction
     448             :    * @param y Cell index in y-direction
     449             :    */
     450           0 :   void SetEdgeCell( Int_t x, Int_t y ) { fEdgeCell[0] = x; fEdgeCell[1] = y; }
     451             : 
     452             :   /**
     453             :    * No simple offline bit any more as patches contain combined information from
     454             :    * online, offline and recalc trigger
     455             :    */
     456           0 :   void SetOfflineSimple() { }
     457             : 
     458             :   void SetLorentzVector( TLorentzVector &lv, const TVector3 &v, Double_t e );
     459             : 
     460             :   /**
     461             :    * Set the trigger bits
     462             :    * @param i Trigger bits of the patch
     463             :    */
     464           0 :   void SetTriggerBits( Int_t i ) { fTriggerBits = i; }
     465             : 
     466             :   /**
     467             :    * Set detector in which the patch is located (EMCal or DCal/PHOS)
     468             :    * @param t Detector type
     469             :    */
     470           0 :   void SetDetectorType(CaloDetectorType_t t)  { fDetectorType = t; }
     471             : 
     472             :   /**
     473             :    * Set the MC trigger bit offset
     474             :    * @param i MC trigger bit offset
     475             :    */
     476           0 :   void SetOffSet(Int_t i)        { fOffSet      = i; }
     477             : 
     478             :   /**
     479             :    * Set the trigger bit configuration
     480             :    * @param ref Trigger bit configuration used to create the patch
     481             :    */
     482           0 :   void SetTriggerBitConfig(const AliEMCALTriggerBitConfig * ref) { fTriggerBitConfig.Initialise(*ref); }
     483             : 
     484             :   /**
     485             :    * Get the trigger bit configuration used to create the trigger patch
     486             :    * @return Trigger bit configuration of the patch
     487             :    */
     488           0 :   const AliEMCALTriggerBitConfig *GetTriggerBitConfig() const { return &fTriggerBitConfig; }
     489             : 
     490             : 
     491             :  protected:
     492             :   //TLorentzVector   &GetLorentzVector(const Double_t *vertex = 0)  const;
     493             :   Double_t GetPhiTransform(Double_t phiin) const;
     494             :   Double_t GetET(Double_t energy) const;
     495             : 
     496             :   TLorentzVector    fCenterGeo;                     ///< geometrical center
     497             :   TLorentzVector    fCenterMass;                    ///< CM
     498             :   TLorentzVector    fEdge1;                         ///< max eta/ min phi edge
     499             :   TLorentzVector    fEdge2;                         ///< min eta/ max phi edge
     500             :   Int_t             fADCAmp;                        ///< online (trigger) ADC amplitude
     501             :   Int_t             fADCOfflineAmp;                 ///< offline (FEE) ADC amplitude
     502             :   Int_t             fTriggerBits;                   ///< trigger bit mask, see definitions in AliEMCALTriggerType and TriggerMakerBits_t (above)
     503             :   Int_t             fEdgeCell[2];                   ///< cell "bottom lower" edge (min phi, max eta)
     504             :   Int_t             fOffSet;                        ///< offset of bit (different in data and MC)
     505             :   Int_t             fCol0;                          ///< Start column
     506             :   Int_t             fRow0;                          ///< Start row
     507             :   UChar_t           fPatchSize;                     ///< Trigger patch size
     508             :   CaloDetectorType_t    fDetectorType;                  ///< Detector type (EMCal or DCal/PHOS)
     509             :   AliEMCALTriggerBitConfig fTriggerBitConfig;     ///< Trigger bit configuration
     510             : 
     511             :   /// \cond CLASSIMP
     512          22 :   ClassDef(AliEMCALTriggerPatchInfo, 6) // Emcal particle class
     513             :   /// \endcond
     514             : };
     515             : #endif

Generated by: LCOV version 1.11