ROOT logo
#ifndef ALIEMCALTRIGGERDATA_H
#define ALIEMCALTRIGGERDATA_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/*
EMCal trigger data container: can be used independently of the data stream (simulation or raw data)
for transient storage of trigger data
Author: R. GUERNANE LPSC Grenoble CNRS/IN2P3
*/

#include "AliEMCALTriggerTypes.h"

#include <TObject.h>
#include <TVector2.h>
#include <TClonesArray.h>

class AliEMCALTriggerData : public TObject 
{

public:
	             AliEMCALTriggerData();
	virtual     ~AliEMCALTriggerData();

	virtual void SetMode(Int_t i) {fMode = i;}
	
	virtual void SetL0Trigger(      Int_t i, Int_t j, Int_t k) { fL0Trigger[i][j] = k; }
	
	virtual void SetL1GammaThreshold(int i, int  v) {fL1GammaThreshold[i] = v;}
	virtual void SetL1JetThreshold(  int i, int  v) {  fL1JetThreshold[i] = v;}
	virtual void SetL1V0(            Int_t* v) {for (int i = 0; i < 2; i++) fL1V0[i] = v[i];}
	virtual void SetL1FrameMask(     Int_t  v) {     fL1FrameMask = v;}            
	virtual void SetL1TriggerType(   Int_t* v) {for (int i = 0; i < 15; i++) fL1TriggerType[i] = v[i];}

	virtual void SetL1DataDecoded(   Int_t  v) {   fL1DataDecoded = v;} 
	virtual void SetL1RawData(       Int_t  v) {       fL1RawData = v;}

	virtual void          GetL0Trigger(  Int_t i, Int_t j, Int_t& k  ) const {   k = fL0Trigger[i][j];}
	virtual Int_t         GetL0Trigger(  Int_t i, Int_t j            ) const {return fL0Trigger[i][j];}
	
	virtual Int_t         GetL1GammaThreshold(int i)           const {return fL1GammaThreshold[i];}
	virtual Int_t         GetL1JetThreshold(  int i)           const {return   fL1JetThreshold[i];}
	virtual void          GetL1V0(            Int_t  v[]) const {for (int i = 0; i < 2; i++) v[i] = fL1V0[i];}
	virtual Int_t         GetL1FrameMask(               ) const {return fL1FrameMask;}            
	virtual void          GetL1TriggerType(   Int_t  v[]) const {for (int i = 0; i < 15; i++) v[i] = fL1TriggerType[i];}
	
	virtual Int_t         GetL1DataDecoded(             ) const {return fL1DataDecoded;}
	virtual Int_t             GetL1RawData(             ) const {return     fL1RawData;}

	virtual Int_t         GetMode() const {return fMode;}
	
	virtual void          Scan() const;
	virtual void          Reset();
	
private:

    AliEMCALTriggerData(const AliEMCALTriggerData& rhs);            // NOT implemented
	AliEMCALTriggerData& operator=(const AliEMCALTriggerData& rhs); // NOT implemented
	
	Int_t                      fMode;           // Simulation/Raw
	
	Int_t               fL0Trigger[2][32];      // Triggering TRU

	Int_t        fL1GammaThreshold[2];          // L1-g threshold
	Int_t          fL1JetThreshold[2];          // L1-j threshold
	
	Int_t                    fL1V0[2];          // V0 charges
	Int_t             fL1FrameMask;             // Frame mask
	Int_t           fL1TriggerType[15];         // Trigger type
	
	Int_t           fL1DataDecoded;             // Raw data decoded
	Int_t               fL1RawData;             // Raw data

	ClassDef(AliEMCALTriggerData,2)
};

#endif
 AliEMCALTriggerData.h:1
 AliEMCALTriggerData.h:2
 AliEMCALTriggerData.h:3
 AliEMCALTriggerData.h:4
 AliEMCALTriggerData.h:5
 AliEMCALTriggerData.h:6
 AliEMCALTriggerData.h:7
 AliEMCALTriggerData.h:8
 AliEMCALTriggerData.h:9
 AliEMCALTriggerData.h:10
 AliEMCALTriggerData.h:11
 AliEMCALTriggerData.h:12
 AliEMCALTriggerData.h:13
 AliEMCALTriggerData.h:14
 AliEMCALTriggerData.h:15
 AliEMCALTriggerData.h:16
 AliEMCALTriggerData.h:17
 AliEMCALTriggerData.h:18
 AliEMCALTriggerData.h:19
 AliEMCALTriggerData.h:20
 AliEMCALTriggerData.h:21
 AliEMCALTriggerData.h:22
 AliEMCALTriggerData.h:23
 AliEMCALTriggerData.h:24
 AliEMCALTriggerData.h:25
 AliEMCALTriggerData.h:26
 AliEMCALTriggerData.h:27
 AliEMCALTriggerData.h:28
 AliEMCALTriggerData.h:29
 AliEMCALTriggerData.h:30
 AliEMCALTriggerData.h:31
 AliEMCALTriggerData.h:32
 AliEMCALTriggerData.h:33
 AliEMCALTriggerData.h:34
 AliEMCALTriggerData.h:35
 AliEMCALTriggerData.h:36
 AliEMCALTriggerData.h:37
 AliEMCALTriggerData.h:38
 AliEMCALTriggerData.h:39
 AliEMCALTriggerData.h:40
 AliEMCALTriggerData.h:41
 AliEMCALTriggerData.h:42
 AliEMCALTriggerData.h:43
 AliEMCALTriggerData.h:44
 AliEMCALTriggerData.h:45
 AliEMCALTriggerData.h:46
 AliEMCALTriggerData.h:47
 AliEMCALTriggerData.h:48
 AliEMCALTriggerData.h:49
 AliEMCALTriggerData.h:50
 AliEMCALTriggerData.h:51
 AliEMCALTriggerData.h:52
 AliEMCALTriggerData.h:53
 AliEMCALTriggerData.h:54
 AliEMCALTriggerData.h:55
 AliEMCALTriggerData.h:56
 AliEMCALTriggerData.h:57
 AliEMCALTriggerData.h:58
 AliEMCALTriggerData.h:59
 AliEMCALTriggerData.h:60
 AliEMCALTriggerData.h:61
 AliEMCALTriggerData.h:62
 AliEMCALTriggerData.h:63
 AliEMCALTriggerData.h:64
 AliEMCALTriggerData.h:65
 AliEMCALTriggerData.h:66
 AliEMCALTriggerData.h:67
 AliEMCALTriggerData.h:68
 AliEMCALTriggerData.h:69
 AliEMCALTriggerData.h:70
 AliEMCALTriggerData.h:71
 AliEMCALTriggerData.h:72
 AliEMCALTriggerData.h:73
 AliEMCALTriggerData.h:74
 AliEMCALTriggerData.h:75
 AliEMCALTriggerData.h:76
 AliEMCALTriggerData.h:77