From 042d5330fc718a9fd4bce8062194d511bc8a15d7 Mon Sep 17 00:00:00 2001 From: hristov Date: Tue, 26 Oct 2010 16:33:49 +0000 Subject: [PATCH] Changes for report #72965: New AliESDCaloTrigger + associated modifs in AliESDEvent --- PWG4/PartCorrDep/AliAnaCaloTrigger.cxx | 155 ++++++------- STEER/AliESDCaloTrigger.cxx | 297 ++++++++++++++++++++----- STEER/AliESDCaloTrigger.h | 101 +++++---- STEER/AliESDEvent.cxx | 4 +- STEER/AliESDEvent.h | 18 +- 5 files changed, 387 insertions(+), 188 deletions(-) diff --git a/PWG4/PartCorrDep/AliAnaCaloTrigger.cxx b/PWG4/PartCorrDep/AliAnaCaloTrigger.cxx index 407ec8f3225..7953c6847d2 100755 --- a/PWG4/PartCorrDep/AliAnaCaloTrigger.cxx +++ b/PWG4/PartCorrDep/AliAnaCaloTrigger.cxx @@ -126,109 +126,110 @@ void AliAnaCaloTrigger::UserExec(Option_t *) 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(triggerAmplitudes->At(0)) ; - const Float_t ka22O = static_cast(triggerAmplitudes->At(1)) ; - const Float_t kaNN = static_cast(triggerAmplitudes->At(2)) ; - const Float_t kaNNO = static_cast(triggerAmplitudes->At(3)) ; + // if( triggerAmplitudes && triggerPosition ){ + // // trigger amplitudes + // const Float_t ka22 = static_cast(triggerAmplitudes->At(0)) ; + // const Float_t ka22O = static_cast(triggerAmplitudes->At(1)) ; + // const Float_t kaNN = static_cast(triggerAmplitudes->At(2)) ; + // const Float_t kaNNO = static_cast(triggerAmplitudes->At(3)) ; - // trigger position - const Float_t kx22 = static_cast(triggerPosition->At(0)) ; - const Float_t ky22 = static_cast(triggerPosition->At(1)) ; - const Float_t kz22 = static_cast(triggerPosition->At(2)) ; - const Float_t kxNN = static_cast(triggerPosition->At(3)) ; - const Float_t kyNN = static_cast(triggerPosition->At(4)) ; - const Float_t kzNN = static_cast(triggerPosition->At(5)) ; + // // trigger position + // const Float_t kx22 = static_cast(triggerPosition->At(0)) ; + // const Float_t ky22 = static_cast(triggerPosition->At(1)) ; + // const Float_t kz22 = static_cast(triggerPosition->At(2)) ; + // const Float_t kxNN = static_cast(triggerPosition->At(3)) ; + // const Float_t kyNN = static_cast(triggerPosition->At(4)) ; + // const Float_t kzNN = static_cast(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); diff --git a/STEER/AliESDCaloTrigger.cxx b/STEER/AliESDCaloTrigger.cxx index d3a8269c8b2..8d843b26bca 100644 --- a/STEER/AliESDCaloTrigger.cxx +++ b/STEER/AliESDCaloTrigger.cxx @@ -13,89 +13,272 @@ * 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 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(&obj); - if(!robj)return; // not an AliESDCaloTrigger - *robj = *this; +//_______________ +void AliESDCaloTrigger::Copy(TObject &obj) const +{ + // + TNamed::Copy(obj); + + AliESDCaloTrigger& dest = static_cast(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]]); +} diff --git a/STEER/AliESDCaloTrigger.h b/STEER/AliESDCaloTrigger.h index d5fc630c34d..8516d3de687 100644 --- a/STEER/AliESDCaloTrigger.h +++ b/STEER/AliESDCaloTrigger.h @@ -1,59 +1,78 @@ -// -*- 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 -#include - - +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 diff --git a/STEER/AliESDEvent.cxx b/STEER/AliESDEvent.cxx index a19530f1387..f58698a7258 100644 --- a/STEER/AliESDEvent.cxx +++ b/STEER/AliESDEvent.cxx @@ -437,8 +437,8 @@ void AliESDEvent::ResetStdContent() 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(); diff --git a/STEER/AliESDEvent.h b/STEER/AliESDEvent.h index 16cbc22fdec..8cb80c58cd1 100644 --- a/STEER/AliESDEvent.h +++ b/STEER/AliESDEvent.h @@ -353,6 +353,13 @@ public: 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); } @@ -360,12 +367,6 @@ public: 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); } @@ -392,11 +393,6 @@ public: 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(); -- 2.43.0