if ( !((Entry()-1)%100) )
printf(" Processing event # %lld\n", Entry()) ;
- AliESDEvent* esd = (AliESDEvent*)InputEvent();
+ AliESDEvent* esd = 0x0;
+ esd = (AliESDEvent*)InputEvent();
//Get MC data, if available
AliStack* stack = 0x0;
if(MCEvent())
stack = MCEvent()->Stack();
- // Get trigger information of fCalorimeter
- TArrayF * triggerAmplitudes = 0x0 ;
- TArrayF * triggerPosition = 0x0 ;
- Int_t numberOfCaloClusters = esd->GetNumberOfCaloClusters() ;
+ // // Get trigger information of fCalorimeter
+ // TArrayF * triggerAmplitudes = 0x0 ;
+ // TArrayF * triggerPosition = 0x0 ;
+ // Int_t numberOfCaloClusters = esd->GetNumberOfCaloClusters() ;
- if(fCalorimeter == "PHOS"){
- triggerAmplitudes = esd->GetPHOSTriggerAmplitudes();
- triggerPosition = esd->GetPHOSTriggerPosition();
- }
- else if(fCalorimeter == "EMCAL"){
- triggerAmplitudes = esd->GetEMCALTriggerAmplitudes();
- triggerPosition = esd->GetEMCALTriggerPosition();
- }
+ // if(fCalorimeter == "PHOS"){
+ // triggerAmplitudes = esd->GetPHOSTriggerAmplitudes();
+ // triggerPosition = esd->GetPHOSTriggerPosition();
+ // }
+ // else if(fCalorimeter == "EMCAL"){
+ // triggerAmplitudes = esd->GetEMCALTriggerAmplitudes();
+ // triggerPosition = esd->GetEMCALTriggerPosition();
+ // }
- if( triggerAmplitudes && triggerPosition ){
- // trigger amplitudes
- const Float_t ka22 = static_cast<Float_t>(triggerAmplitudes->At(0)) ;
- const Float_t ka22O = static_cast<Float_t>(triggerAmplitudes->At(1)) ;
- const Float_t kaNN = static_cast<Float_t>(triggerAmplitudes->At(2)) ;
- const Float_t kaNNO = static_cast<Float_t>(triggerAmplitudes->At(3)) ;
+ // if( triggerAmplitudes && triggerPosition ){
+ // // trigger amplitudes
+ // const Float_t ka22 = static_cast<Float_t>(triggerAmplitudes->At(0)) ;
+ // const Float_t ka22O = static_cast<Float_t>(triggerAmplitudes->At(1)) ;
+ // const Float_t kaNN = static_cast<Float_t>(triggerAmplitudes->At(2)) ;
+ // const Float_t kaNNO = static_cast<Float_t>(triggerAmplitudes->At(3)) ;
- // trigger position
- const Float_t kx22 = static_cast<Float_t>(triggerPosition->At(0)) ;
- const Float_t ky22 = static_cast<Float_t>(triggerPosition->At(1)) ;
- const Float_t kz22 = static_cast<Float_t>(triggerPosition->At(2)) ;
- const Float_t kxNN = static_cast<Float_t>(triggerPosition->At(3)) ;
- const Float_t kyNN = static_cast<Float_t>(triggerPosition->At(4)) ;
- const Float_t kzNN = static_cast<Float_t>(triggerPosition->At(5)) ;
+ // // trigger position
+ // const Float_t kx22 = static_cast<Float_t>(triggerPosition->At(0)) ;
+ // const Float_t ky22 = static_cast<Float_t>(triggerPosition->At(1)) ;
+ // const Float_t kz22 = static_cast<Float_t>(triggerPosition->At(2)) ;
+ // const Float_t kxNN = static_cast<Float_t>(triggerPosition->At(3)) ;
+ // const Float_t kyNN = static_cast<Float_t>(triggerPosition->At(4)) ;
+ // const Float_t kzNN = static_cast<Float_t>(triggerPosition->At(5)) ;
- //printf("ka22 %f, ka220 %f, kaNN %f, kaNN0 %f\n",ka22,ka22O,kaNN,kaNNO);
- //printf("kx22 %f, ky22 %f, kz22 %f, kxNN %f, kyNN %f, kzNN %f \n",kx22,ky22,kz22,kxNN,kyNN,kzNN);
+ // //printf("ka22 %f, ka220 %f, kaNN %f, kaNN0 %f\n",ka22,ka22O,kaNN,kaNNO);
+ // //printf("kx22 %f, ky22 %f, kz22 %f, kxNN %f, kyNN %f, kzNN %f \n",kx22,ky22,kz22,kxNN,kyNN,kzNN);
- Float_t enMax = 0. ;
- Float_t phEnMax = 0. ;
- Float_t etaMax = 0.5 ;
- Float_t phiMax = 0. ;
- Float_t phEtaMax = 0.5 ;
- Float_t phPhiMax = 0. ;
+ // Float_t enMax = 0. ;
+ // Float_t phEnMax = 0. ;
+ // Float_t etaMax = 0.5 ;
+ // Float_t phiMax = 0. ;
+ // Float_t phEtaMax = 0.5 ;
+ // Float_t phPhiMax = 0. ;
- TVector3 vpos22(kx22, ky22, kz22) ;
- TVector3 vposNN(kxNN, kyNN, kzNN) ;
- Float_t eta22 = vpos22.Eta() ;
- Float_t phi22 = vpos22.Phi() * TMath::RadToDeg() + 360. ;
- Float_t etaNN = vposNN.Eta() ;
- Float_t phiNN = vposNN.Phi() * TMath::RadToDeg() + 360. ;
+ // TVector3 vpos22(kx22, ky22, kz22) ;
+ // TVector3 vposNN(kxNN, kyNN, kzNN) ;
+ // Float_t eta22 = vpos22.Eta() ;
+ // Float_t phi22 = vpos22.Phi() * TMath::RadToDeg() + 360. ;
+ // Float_t etaNN = vposNN.Eta() ;
+ // Float_t phiNN = vposNN.Phi() * TMath::RadToDeg() + 360. ;
- Int_t icaloCluster = 0 ;
- Int_t labelmax = -1 ;
- // loop over the Calorimeters Clusters
+ // Int_t icaloCluster = 0 ;
+ // Int_t labelmax = -1 ;
+ // // loop over the Calorimeters Clusters
- for(icaloCluster = 0 ; icaloCluster < numberOfCaloClusters ; icaloCluster++) {
+ // for(icaloCluster = 0 ; icaloCluster < numberOfCaloClusters ; icaloCluster++) {
- AliESDCaloCluster * cluster = esd->GetCaloCluster(icaloCluster) ;
+ // AliESDCaloCluster * cluster = esd->GetCaloCluster(icaloCluster) ;
- if (cluster && ( (fCalorimeter == "PHOS" && cluster->IsPHOS()) ||
- (fCalorimeter == "EMCAL" && cluster->IsEMCAL()))) {
+ // if (cluster && ( (fCalorimeter == "PHOS" && cluster->IsPHOS()) ||
+ // (fCalorimeter == "EMCAL" && cluster->IsEMCAL()))) {
- Float_t cluEnergy = cluster->E() ;
- Float_t pos[3] ;
- TVector3 vpos ;
+ // Float_t cluEnergy = cluster->E() ;
+ // Float_t pos[3] ;
+ // TVector3 vpos ;
- cluster->GetPosition( pos ) ;
+ // cluster->GetPosition( pos ) ;
- if ( cluEnergy > enMax) {
- enMax = cluEnergy ;
- vpos.SetXYZ(pos[0], pos[1], pos[2]) ;
- etaMax = vpos.Eta() ;
- phiMax = vpos.Phi() ;
- labelmax = cluster->GetLabel();
- }
+ // if ( cluEnergy > enMax) {
+ // enMax = cluEnergy ;
+ // vpos.SetXYZ(pos[0], pos[1], pos[2]) ;
+ // etaMax = vpos.Eta() ;
+ // phiMax = vpos.Phi() ;
+ // labelmax = cluster->GetLabel();
+ // }
- const Double_t * pid = cluster->GetPID() ;
+ // const Double_t * pid = cluster->GetPID() ;
- if(pid[AliPID::kPhoton] > 0.9) {
- if ( cluEnergy > phEnMax) {
- phEnMax = cluEnergy ;
- vpos.SetXYZ(pos[0], pos[1], pos[2]) ;
- phEtaMax = vpos.Eta() ;
- phPhiMax = vpos.Phi() ;
- }
- }
- }//if cluster
+ // if(pid[AliPID::kPhoton] > 0.9) {
+ // if ( cluEnergy > phEnMax) {
+ // phEnMax = cluEnergy ;
+ // vpos.SetXYZ(pos[0], pos[1], pos[2]) ;
+ // phEtaMax = vpos.Eta() ;
+ // phPhiMax = vpos.Phi() ;
+ // }
+ // }
+ // }//if cluster
- Float_t ptGen = -1;
- if(stack && labelmax < stack->GetNtrack() && labelmax >= 0 ){
- TParticle * particle = stack->Particle(labelmax);
- ptGen = particle->Energy();
- }
+ // Float_t ptGen = -1;
+ // if(stack && labelmax < stack->GetNtrack() && labelmax >= 0 ){
+ // TParticle * particle = stack->Particle(labelmax);
+ // ptGen = particle->Energy();
+ // }
- fNtTrigger22->Fill(ka22, ka22O, ptGen, enMax, phEnMax, eta22, phi22, etaMax, phiMax * TMath::RadToDeg() + 360., phEtaMax, phPhiMax * TMath::RadToDeg() + 360.);
- fNtTriggerNN->Fill(kaNN, kaNNO, ptGen, enMax, phEnMax, etaNN, phiNN, etaMax, phiMax * TMath::RadToDeg() + 360., phEtaMax, phPhiMax * TMath::RadToDeg() + 360.);
+ // fNtTrigger22->Fill(ka22, ka22O, ptGen, enMax, phEnMax, eta22, phi22, etaMax, phiMax * TMath::RadToDeg() + 360., phEtaMax, phPhiMax * TMath::RadToDeg() + 360.);
+ // fNtTriggerNN->Fill(kaNN, kaNNO, ptGen, enMax, phEnMax, etaNN, phiNN, etaMax, phiMax * TMath::RadToDeg() + 360., phEtaMax, phPhiMax * TMath::RadToDeg() + 360.);
- }//CaloCluster loop
+ // }//CaloCluster loop
- }//If trigger arrays filled
+ // }//If trigger arrays filled
PostData(1, fOutputContainer);
* provided "as is" without express or implied warranty. *
**************************************************************************/
-//-------------------------------------------------------------------------
-// Implementation of Class AliESDCaloTrigger
-// This is a class that summarizes the Trigger Data of EMCal and Phos
-// for the ESD
-// Origin: Christian Klein-Boesing, CERN, Christian.Klein-Boesing@cern.ch
-//-------------------------------------------------------------------------
+/*
+
+
+
+Author: R. GUERNANE LPSC Grenoble CNRS/IN2P3
+*/
#include "AliESDCaloTrigger.h"
+#include "AliLog.h"
+
+#include "TArrayI.h"
+#include "Riostream.h"
+#include <cstdlib>
ClassImp(AliESDCaloTrigger)
-AliESDCaloTrigger::AliESDCaloTrigger() :
- TNamed(),
- fTriggerAmplitudes(0x0),
- fTriggerPosition(0x0)
+//_______________
+AliESDCaloTrigger::AliESDCaloTrigger() : TNamed(),
+fNEntries(0),
+fCurrent(-1),
+fColumn(0x0),
+fRow(0x0),
+fAmplitude(0x0),
+fTime(0x0),
+fNL0Times(0x0),
+fL0Times(new TArrayI()),
+fL1TimeSum(0x0)
{
+ //
+ for (Int_t i = 0; i < 48; i++) for (Int_t j = 0; j < 64; j++) fTriggerBits[i][j] = 0;
}
-AliESDCaloTrigger::AliESDCaloTrigger(const AliESDCaloTrigger &ctrig) :
- TNamed(ctrig),
- fTriggerAmplitudes(ctrig.fTriggerAmplitudes),
- fTriggerPosition(ctrig.fTriggerPosition)
+//_______________
+AliESDCaloTrigger::AliESDCaloTrigger(const AliESDCaloTrigger& src) : TNamed(src),
+fNEntries(0),
+fCurrent(-1),
+fColumn(0x0),
+fRow(0x0),
+fAmplitude(0x0),
+fTime(0x0),
+fNL0Times(0x0),
+fL0Times(new TArrayI()),
+fL1TimeSum(0x0)
{
+ //
+ src.Copy(*this);
}
+//_______________
AliESDCaloTrigger::~AliESDCaloTrigger()
{
- delete fTriggerAmplitudes; fTriggerAmplitudes = 0;
- delete fTriggerPosition; fTriggerPosition = 0;
+ //
+ if (fNEntries) DeAllocate();
+
+ delete fL0Times; fL0Times = 0x0;
}
-AliESDCaloTrigger& AliESDCaloTrigger::operator=(const AliESDCaloTrigger& ctrig)
+//_______________
+void AliESDCaloTrigger::DeAllocate()
{
- // assigment operator
- if(this!=&ctrig) {
- TNamed::operator=(ctrig);
- if(ctrig.fTriggerAmplitudes){
- // asign or copy construct
- if(fTriggerAmplitudes)*fTriggerAmplitudes = *ctrig.fTriggerAmplitudes;
- else fTriggerAmplitudes = new TArrayF(*ctrig.fTriggerAmplitudes);
- }
- else{
- delete fTriggerAmplitudes;
- fTriggerAmplitudes = 0;
- }
+ //
+ delete [] fColumn; fColumn = 0x0;
+ delete [] fRow; fRow = 0x0;
+ delete [] fAmplitude; fAmplitude = 0x0;
+ delete [] fTime; fTime = 0x0;
+ delete [] fNL0Times; fNL0Times = 0x0;
+ delete [] fL1TimeSum; fL1TimeSum = 0x0;
+// delete [] fL0Times; fL0Times = 0x0;
+
+ fNEntries = 0;
+ fCurrent = -1;
+
+ for (Int_t i = 0; i < 48; i++) for (Int_t j = 0; j < 64; j++) fTriggerBits[i][j] = 0;
- if(ctrig.fTriggerPosition){
- // asign or copy construct
- if(fTriggerPosition)*fTriggerPosition = *ctrig.fTriggerPosition;
- else fTriggerPosition = new TArrayF(*ctrig.fTriggerPosition);
- }
- else{
- delete fTriggerPosition;
- fTriggerPosition = 0;
- }
- }
- return *this;
+ fL0Times->Reset();
}
-void AliESDCaloTrigger::Copy(TObject &obj) const {
-
- // this overwrites the virtual TOBject::Copy()
- // to allow run time copying without casting
- // in AliESDEvent
+//_______________
+AliESDCaloTrigger& AliESDCaloTrigger::operator=(const AliESDCaloTrigger& src)
+{
+ //
+ if (this != &src) src.Copy(*this);
+
+ return *this;
+}
- if(this==&obj)return;
- AliESDCaloTrigger *robj = dynamic_cast<AliESDCaloTrigger*>(&obj);
- if(!robj)return; // not an AliESDCaloTrigger
- *robj = *this;
+//_______________
+void AliESDCaloTrigger::Copy(TObject &obj) const
+{
+ //
+ TNamed::Copy(obj);
+
+ AliESDCaloTrigger& dest = static_cast<AliESDCaloTrigger&>(obj);
+ if (dest.fNEntries) dest.DeAllocate();
+
+ dest.Allocate(fNEntries);
+
+ for (Int_t i = 0; i < fNEntries; i++)
+ {
+ Int_t times[10];
+ for (Int_t j = 0; j < 10; j++) times[j] = fL0Times->At(10 * i + j);
+
+ dest.Add(fColumn[i], fRow[i], fAmplitude[i], fTime[i], times, fNL0Times[i], fL1TimeSum[i]);
+ }
+
+ for (Int_t i = 0; i < 48; i++) for (Int_t j = 0; j < 64; j++) dest.fTriggerBits[i][j] = fTriggerBits[i][j];
}
+//_______________
+void AliESDCaloTrigger::Allocate(Int_t size)
+{
+ //
+ if (!size) return;
+
+ fNEntries = size;
+
+ fColumn = new Int_t[fNEntries];
+ fRow = new Int_t[fNEntries];
+ fAmplitude = new Float_t[fNEntries];
+ fTime = new Float_t[fNEntries];
+ fNL0Times = new Int_t[fNEntries];
+// fL0Times = new Int_t[fNEntries * 10];
+ fL1TimeSum = new Int_t[fNEntries];
+
+ for (Int_t i = 0; i < fNEntries; i++)
+ {
+ fColumn[i] = 0;
+ fRow[i] = 0;
+ fAmplitude[i] = 0;
+ fTime[i] = 0;
+ fNL0Times[i] = 0;
+ fL1TimeSum[i] = 0;
+ }
+
+ fL0Times->Set(fNEntries * 10);
+}
-void AliESDCaloTrigger::Reset()
+//_______________
+Bool_t AliESDCaloTrigger::Add(Int_t col, Int_t row, Float_t amp, Float_t time, Int_t trgtimes[], Int_t ntrgtimes, Int_t trgts)
{
- // simple reset
- if( fTriggerAmplitudes){
- fTriggerAmplitudes->Reset();
- }
- if( fTriggerPosition){
- fTriggerPosition->Reset();
- }
+ //
+ fCurrent++;
+
+ fColumn[fCurrent] = col;
+ fRow[fCurrent] = row;
+ fAmplitude[fCurrent] = amp;
+ fTime[fCurrent] = time;
+ fNL0Times[fCurrent] = ntrgtimes;
+ fL1TimeSum[fCurrent] = trgts;
+
+ if (ntrgtimes > 9)
+ {
+ AliError("Should not have more than 10 L0 times");
+ return kFALSE;
+ }
+
+ for (Int_t i = 0; i < fNL0Times[fCurrent]; i++) fL0Times->AddAt(trgtimes[i], 10 * fCurrent + i);
+
+ return kTRUE;
}
+//_______________
+void AliESDCaloTrigger::SetTriggerBits(Int_t col, Int_t row, Int_t i, Int_t j)
+{
+ //
+ if (col < 0 || col > 47 || row < 0 || row > 63)
+ {
+ AliError("Bad position!");
+ return;
+ }
+
+ fTriggerBits[col][row] = (fTriggerBits[col][row] | (1 << (i + 3 * j))); // L0 L1g L1j
+}
+
+//_______________
+Bool_t AliESDCaloTrigger::Next()
+{
+ //
+ if (fCurrent >= fNEntries - 1 || !fNEntries) return kFALSE;
+
+ fCurrent++;
+
+ return kTRUE;
+}
+
+//_______________
+void AliESDCaloTrigger::GetPosition(Int_t& col, Int_t& row) const
+{
+ //
+ if (fCurrent == -1) return;
+
+ col = fColumn[fCurrent];
+ row = fRow[fCurrent];
+}
+
+//_______________
+void AliESDCaloTrigger::GetAmplitude(Float_t& amp) const
+{
+ //
+ if (fCurrent == -1) return;
+
+ amp = fAmplitude[fCurrent];
+}
+
+//_______________
+void AliESDCaloTrigger::GetTime(Float_t& time) const
+{
+ //
+ if (fCurrent == -1) return;
+
+ time = fTime[fCurrent];
+}
+
+//_______________
+void AliESDCaloTrigger::GetL1TimeSum(Int_t& amp) const
+{
+ //
+ if (fCurrent == -1) return;
+
+ amp = fL1TimeSum[fCurrent];
+}
+
+//_______________
+void AliESDCaloTrigger::GetNL0Times(Int_t& ntimes) const
+{
+ //
+ if (fCurrent == -1) return;
+
+ ntimes = fNL0Times[fCurrent];
+}
+
+//_______________
+void AliESDCaloTrigger::GetTriggerBits(Char_t& bits) const
+{
+ //
+ if (fCurrent == -1) return;
+
+ bits = fTriggerBits[fColumn[fCurrent]][fRow[fCurrent]];
+}
+
+//_______________
+void AliESDCaloTrigger::GetL0Times(Int_t times[]) const
+{
+ //
+ if (fCurrent == -1) return;
+
+ for (Int_t i = 0; i < fNL0Times[fCurrent]; i++) times[i] = fL0Times->At(10 * fCurrent + i);
+}
+
+//_______________
+void AliESDCaloTrigger::Print(const Option_t* /*opt*/) const
+{
+ //
+ if (fCurrent == -1) return;
+ printf("============\n");
+ printf("--L0:\n");
+ printf("\tPOSITION (X: %2d Y: %2d) / FITTED F-ALTRO (AMP: %4f TIME: %3f)\n",
+ fColumn[fCurrent], fRow[fCurrent], fAmplitude[fCurrent], fTime[fCurrent]);
+ printf("\t%d L0 TIMES (", fNL0Times[fCurrent]);
+ for (Int_t i = 0; i < fNL0Times[fCurrent]; i++) printf("%2d ",fL0Times->At(10 * fCurrent + i));
+ printf(")\n");
+ printf("--L1:\n");
+ printf("\tTIME SUM: %4d\n", fL1TimeSum[fCurrent]);
+ printf("\tTHRESHOLDS (GAMMA: %4d, JET: %4d)\n", fL1Threshold[0], fL1Threshold[1]);
+ printf("--TRIGGER BITS: 0x%x\n", fTriggerBits[fColumn[fCurrent]][fRow[fCurrent]]);
+}
-// -*- mode: C++ -*-
#ifndef ALIESDCALOTRIGGER_H
#define ALIESDCALOTRIGGER_H
-
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-
-//-------------------------------------------------------------------------
-// Class AliESDCaloTrigger
-// This is a class that summarizes the Trigger Data of EMCal and Phos
-// for the ESD
-// Origin: Christian Klein-Boesing, CERN, Christian.Klein-Boesing@cern.ch
-//-------------------------------------------------------------------------
+/*
+
+Author: R. GUERNANE LPSC Grenoble CNRS/IN2P3
+*/
#include <TNamed.h>
-#include <TArrayF.h>
-
-
+class TArrayI;
-class AliESDCaloTrigger : public TNamed {
+class AliESDCaloTrigger : public TNamed
+{
public:
- AliESDCaloTrigger();
- AliESDCaloTrigger(const AliESDCaloTrigger& ctrig);
- AliESDCaloTrigger& operator=(const AliESDCaloTrigger& ctrig);
- virtual ~AliESDCaloTrigger();
- virtual void Copy(TObject &obj) const;
-
- void AddTriggerPosition(const TArrayF & array) {
- if(fTriggerPosition) *fTriggerPosition = array;
- else fTriggerPosition = new TArrayF(array);
- }
-
- void AddTriggerAmplitudes(const TArrayF & array) {
- if(fTriggerAmplitudes) *fTriggerAmplitudes = array;
- else fTriggerAmplitudes = new TArrayF(array);
- }
-
- void Reset();
-
- TArrayF* GetTriggerPosition() {return fTriggerPosition;}
- TArrayF* GetTriggerAmplitudes() {return fTriggerAmplitudes;}
-
-
+ AliESDCaloTrigger();
+ AliESDCaloTrigger(const AliESDCaloTrigger& ctrig);
+ virtual ~AliESDCaloTrigger();
+
+ AliESDCaloTrigger& operator=(const AliESDCaloTrigger& ctrig);
+
+ Bool_t IsEmpty() {return (fNEntries == 0);}
+
+ virtual void Reset() {fCurrent = -1;}
+
+ void Allocate(Int_t size);
+ void DeAllocate( );
+
+ Bool_t Add(Int_t col, Int_t row, Float_t amp, Float_t time, Int_t trgtimes[], Int_t ntrgtimes, Int_t trgts);
+
+ void SetL1Threshold(Int_t i, Int_t thr) {fL1Threshold[i] = thr;}
+ void SetTriggerBits(Int_t col, Int_t row, Int_t i, Int_t j);
+
+ void GetPosition( Int_t& col, Int_t& row ) const;
+
+ void GetAmplitude( Float_t& amp ) const;
+ void GetTime( Float_t& time ) const;
+
+ void GetTriggerBits( Char_t& bits ) const;
+ void GetNL0Times( Int_t& ntimes ) const;
+ void GetL0Times( Int_t times[] ) const;
+ Int_t GetEntries( ) const {return fNEntries;}
+
+ void GetL1TimeSum( Int_t& timesum ) const;
+
+ Int_t GetL1Threshold( Int_t i ) const {return fL1Threshold[i];}
+
+ virtual Bool_t Next();
+
+ virtual void Copy(TObject& obj) const;
+
+ virtual void Print(const Option_t* opt) const;
+
private:
- TArrayF *fTriggerAmplitudes; // Amplitude of PHOS or EMCal Trigger
- TArrayF *fTriggerPosition; // Position of PHOS or EMCal Trigger
-
- ClassDef(AliESDCaloTrigger,1)
+ Int_t fNEntries;
+ Int_t fCurrent;
+
+ Int_t* fColumn; // [fNEntries]
+ Int_t* fRow; // [fNEntries]
+ Float_t* fAmplitude; // [fNEntries]
+ Float_t* fTime; // [fNEntries]
+ Int_t* fNL0Times; // [fNEntries]
+ TArrayI* fL0Times; //
+ Int_t* fL1TimeSum; // [fNEntries]
+
+ Char_t fTriggerBits[48][64]; //
+ Int_t fL1Threshold[2]; // L1 thresholds from raw data
+
+ ClassDef(AliESDCaloTrigger, 2)
};
-
-
#endif
new (fTOFHeader) AliTOFHeader();
//fTOFHeader->SetName(fgkESDListName[kTOFHeader]);
}
- if(fPHOSTrigger)fPHOSTrigger->Reset();
- if(fEMCALTrigger)fEMCALTrigger->Reset();
+ if(fPHOSTrigger)fPHOSTrigger->DeAllocate();
+ if(fEMCALTrigger)fEMCALTrigger->DeAllocate();
if(fSPDPileupVertices)fSPDPileupVertices->Delete();
if(fTrkPileupVertices)fTrkPileupVertices->Delete();
if(fTracks)fTracks->Delete();
AliESDCaloCells *GetEMCALCells() const {return fEMCALCells; }
AliESDCaloCells *GetPHOSCells() const {return fPHOSCells; }
+ AliESDCaloTrigger* GetCaloTrigger(TString calo) const
+ {
+ if (calo.Contains("EMCAL")) return fEMCALTrigger;
+ else
+ return fPHOSTrigger;
+ }
+
AliRawDataErrorLog *GetErrorLog(Int_t i) const {
return (AliRawDataErrorLog *)(fErrorLogs?fErrorLogs->UncheckedAt(i):0x0);
}
Int_t GetNumberOfErrorLogs() const {return fErrorLogs?fErrorLogs->GetEntriesFast():0;}
-
- void AddPHOSTriggerPosition(TArrayF array) { if(fPHOSTrigger) fPHOSTrigger->AddTriggerPosition(array); }
- void AddPHOSTriggerAmplitudes(TArrayF array) { if(fPHOSTrigger) fPHOSTrigger->AddTriggerAmplitudes(array);}
- void AddEMCALTriggerPosition(TArrayF array) { if(fEMCALTrigger) fEMCALTrigger->AddTriggerPosition(array); }
- void AddEMCALTriggerAmplitudes(TArrayF array){ if(fEMCALTrigger) fEMCALTrigger->AddTriggerAmplitudes(array); }
-
Int_t GetNumberOfPileupVerticesSPD() const {
return (fSPDPileupVertices?fSPDPileupVertices->GetEntriesFast():0);
}
void SetUseOwnList(Bool_t b){fUseOwnList = b;}
Bool_t GetUseOwnList() const {return fUseOwnList;}
- TArrayF *GetEMCALTriggerPosition() const {return fEMCALTrigger?fEMCALTrigger->GetTriggerPosition():0x0;}
- TArrayF *GetEMCALTriggerAmplitudes() const {return fEMCALTrigger?fEMCALTrigger->GetTriggerAmplitudes():0x0;}
- TArrayF *GetPHOSTriggerPosition() const {return fPHOSTrigger?fPHOSTrigger->GetTriggerPosition():0x0;}
- TArrayF *GetPHOSTriggerAmplitudes() const {return fPHOSTrigger?fPHOSTrigger->GetTriggerAmplitudes():0x0;}
-
void ResetV0s() { if(fV0s) fV0s->Clear(); }
void ResetCascades() { if(fCascades) fCascades->Clear(); }
void Reset();