From ef46ebe54b6c57e71eedb768e23e51fa6445bed8 Mon Sep 17 00:00:00 2001 From: loizides Date: Wed, 4 Sep 2013 12:11:02 +0000 Subject: [PATCH] Transition to new base class (Salvatore/Marta). --- PWG/EMCAL/AliAnalysisTaskEmcalDev.cxx | 56 +++++++++++++------ PWG/EMCAL/AliAnalysisTaskEmcalDev.h | 62 +++++++++++----------- PWG/EMCAL/AliClusterContainer.cxx | 37 ++++++++++++- PWG/EMCAL/AliClusterContainer.h | 3 ++ PWG/EMCAL/AliEmcalClusTrackMatcherTask.cxx | 6 +-- PWG/EMCAL/AliEmcalContainer.cxx | 33 ++++++++++-- PWG/EMCAL/AliEmcalContainer.h | 28 ++++++---- PWG/EMCAL/AliParticleContainer.cxx | 35 ++++++++++++ PWG/EMCAL/AliParticleContainer.h | 26 +++++---- 9 files changed, 211 insertions(+), 75 deletions(-) diff --git a/PWG/EMCAL/AliAnalysisTaskEmcalDev.cxx b/PWG/EMCAL/AliAnalysisTaskEmcalDev.cxx index 372529375bf..f8ab54588b4 100644 --- a/PWG/EMCAL/AliAnalysisTaskEmcalDev.cxx +++ b/PWG/EMCAL/AliAnalysisTaskEmcalDev.cxx @@ -57,14 +57,6 @@ AliAnalysisTaskEmcalDev::AliAnalysisTaskEmcalDev() : fNbins(500), fMinBinPt(0), fMaxBinPt(250), - fClusPtCut(0.15), - fTrackPtCut(0.15), - fTrackMinEta(-0.9), - fTrackMaxEta(0.9), - fTrackMinPhi(-10), - fTrackMaxPhi(10), - fClusTimeCutLow(-10), - fClusTimeCutUp(10), fMinPtTrackInEmcal(0), fEventPlaneVsEmcal(-1), fMinEventPlane(-10), @@ -134,14 +126,6 @@ AliAnalysisTaskEmcalDev::AliAnalysisTaskEmcalDev(const char *name, Bool_t histo) fNbins(500), fMinBinPt(0), fMaxBinPt(250), - fClusPtCut(0.15), - fTrackPtCut(0.15), - fTrackMinEta(-0.9), - fTrackMaxEta(0.9), - fTrackMinPhi(-10), - fTrackMaxPhi(10), - fClusTimeCutLow(-10), - fClusTimeCutUp(10), fMinPtTrackInEmcal(0), fEventPlaneVsEmcal(-1), fMinEventPlane(-10), @@ -202,6 +186,46 @@ AliAnalysisTaskEmcalDev::~AliAnalysisTaskEmcalDev() // Destructor } +//________________________________________________________________________ +void AliAnalysisTaskEmcalDev::SetClusPtCut(Double_t cut, Int_t c) +{ + AliClusterContainer *cont = GetClusterContainer(c); + if (cont) cont->SetClusPtCut(cut); + else AliError(Form("%s in SetClusPtCut(...): container %d not found",GetName(),c)); +} + +//________________________________________________________________________ +void AliAnalysisTaskEmcalDev::SetClusTimeCut(Double_t min, Double_t max, Int_t c) +{ + AliClusterContainer *cont = GetClusterContainer(c); + if (cont) cont->SetClusTimeCut(min,max); + else AliError(Form("%s in SetClusTimeCut(...): container %d not found",GetName(),c)); +} + +//________________________________________________________________________ +void AliAnalysisTaskEmcalDev::SetTrackPtCut(Double_t cut, Int_t c) +{ + AliParticleContainer *cont = GetParticleContainer(c); + if (cont) cont->SetParticlePtCut(cut); + else AliError(Form("%s in SetTrackPtCut(...): container %d not found",GetName(),c)); +} + +//________________________________________________________________________ +void AliAnalysisTaskEmcalDev::SetTrackEtaLimits(Double_t min, Double_t max, Int_t c) +{ + AliParticleContainer *cont = GetParticleContainer(c); + if (cont) cont->SetParticleEtaLimits(min,max); + else AliError(Form("%s in SetTrackPtCut(...): container %d not found",GetName(),c)); +} + +//________________________________________________________________________ +void AliAnalysisTaskEmcalDev::SetTrackPhiLimits(Double_t min, Double_t max, Int_t c) +{ + AliParticleContainer *cont = GetParticleContainer(c); + if (cont) cont->SetParticlePhiLimits(min,max); + else AliError(Form("%s in SetTrackPhiLimits(...): container %d not found",GetName(),c)); +} + //________________________________________________________________________ void AliAnalysisTaskEmcalDev::UserCreateOutputObjects() { diff --git a/PWG/EMCAL/AliAnalysisTaskEmcalDev.h b/PWG/EMCAL/AliAnalysisTaskEmcalDev.h index fb3db97aeee..7b4e03cc954 100644 --- a/PWG/EMCAL/AliAnalysisTaskEmcalDev.h +++ b/PWG/EMCAL/AliAnalysisTaskEmcalDev.h @@ -44,18 +44,8 @@ class AliAnalysisTaskEmcalDev : public AliAnalysisTaskSE { void SetNCentBins(Int_t n) { fNcentBins = n ; } void SetCentRange(Double_t min, Double_t max) { fMinCent = min ; fMaxCent = max ; } - void SetClusName(const char *n) { AddClusterContainer(n) ; } - void SetCaloCellsName(const char *n) { fCaloCellsName = n ; } - void SetCaloTriggersName(const char *n) { fCaloTriggersName = n ; } - void SetClusPtCut(Double_t cut) { fClusPtCut = cut ; } - void SetClusTimeCut(Double_t min, Double_t max) { fClusTimeCutLow = min ; fClusTimeCutUp = max ; } void SetHistoBins(Int_t nbins, Double_t min, Double_t max) { fNbins = nbins; fMinBinPt = min; fMaxBinPt = max ; } void SetOffTrigger(UInt_t t) { fOffTrigger = t ; } - void SetPtCut(Double_t cut) { SetClusPtCut(cut) ; SetTrackPtCut(cut) ; } - void SetTrackPtCut(Double_t cut) { fTrackPtCut = cut ; } - void SetTrackEtaLimits(Double_t min, Double_t max) { fTrackMaxEta = max ; fTrackMinEta = min ; } - void SetTrackPhiLimits(Double_t min, Double_t max) { fTrackMaxPhi = max ; fTrackMinPhi = min ; } - void SetTracksName(const char *n) { AddParticleContainer(n) ; } void SetTrigClass(const char *n) { fTrigClass = n ; } void SetVzRange(Double_t min, Double_t max) { fMinVz = min ; fMaxVz = max ; } void SetForceBeamType(BeamType f) { fForceBeamType = f ; } @@ -68,6 +58,18 @@ class AliAnalysisTaskEmcalDev : public AliAnalysisTaskSE { void SetIsPythia(Bool_t i) { fIsPythia = i ; } void SetMCLabelShift(Int_t s) { fMCLabelShift = s ; } + void SetCaloCellsName(const char *n) { fCaloCellsName = n ; } + void SetCaloTriggersName(const char *n) { fCaloTriggersName = n ; } + + void SetTracksName(const char *n) { AddParticleContainer(n) ; } + void SetClusName(const char *n) { AddClusterContainer(n) ; } + + void SetClusPtCut(Double_t cut, Int_t c=0); + void SetClusTimeCut(Double_t min, Double_t max, Int_t c=0); + void SetTrackPtCut(Double_t cut, Int_t c=0); + void SetTrackEtaLimits(Double_t min, Double_t max, Int_t c=0); + void SetTrackPhiLimits(Double_t min, Double_t max, Int_t c=0); + AliParticleContainer *AddParticleContainer(const char *n); AliClusterContainer *AddClusterContainer(const char *n); void RemoveParticleContainer(Int_t i=0) { fParticleCollArray.RemoveAt(i);} @@ -78,27 +80,31 @@ class AliAnalysisTaskEmcalDev : public AliAnalysisTaskSE { AliParticleContainer *GetParticleContainer(const char* name) const; AliClusterContainer *GetClusterContainer(const char* name) const; - TClonesArray *GetParticleArray(const Int_t i=0) const; - TClonesArray *GetClusterArray(const Int_t i=0) const; + protected: + BeamType GetBeamType(); + TClonesArray *GetArrayFromEvent(const char *name, const char *clname=0); + Bool_t PythiaInfoFromFile(const char* currFile, Float_t &fXsec, Float_t &fTrials, Int_t &pthard); + + TClonesArray *GetParticleArray(const Int_t i=0) const; + TClonesArray *GetClusterArray(const Int_t i=0) const; - AliVParticle *GetAcceptParticleFromArray(Int_t p, Int_t c=0) const; - AliVCluster *GetAcceptClusterFromArray(Int_t cl, Int_t c=0) const; + AliVParticle *GetAcceptParticleFromArray(Int_t p, Int_t c=0) const; + AliVCluster *GetAcceptClusterFromArray(Int_t cl, Int_t c=0) const; - Int_t GetNParticles(Int_t i=0) const; - Int_t GetNClusters(Int_t i=0) const; + Int_t GetNParticles(Int_t i=0) const; + Int_t GetNClusters(Int_t i=0) const; - protected: - Bool_t AcceptCluster(AliVCluster *clus, Int_t c = 0) const; - Bool_t AcceptTrack(AliVParticle *track, Int_t c = 0) const; + Bool_t AcceptCluster(AliVCluster *clus, Int_t c = 0) const; + Bool_t AcceptTrack(AliVParticle *track, Int_t c = 0) const; + + // Virtual functions, to be overloaded in derived classes virtual void ExecOnce(); virtual Bool_t FillGeneralHistograms(); - virtual Bool_t FillHistograms() { return kTRUE ; } - BeamType GetBeamType(); - TClonesArray *GetArrayFromEvent(const char *name, const char *clname=0); virtual Bool_t IsEventSelected(); virtual Bool_t RetrieveEventObjects(); + virtual Bool_t FillHistograms() { return kTRUE ; } virtual Bool_t Run() { return kTRUE ; } - Bool_t PythiaInfoFromFile(const char* currFile, Float_t &fXsec, Float_t &fTrials, Int_t &pthard); + BeamType fForceBeamType; // forced beam type Bool_t fGeneralHistograms; // whether or not it should fill some general histograms @@ -115,14 +121,6 @@ class AliAnalysisTaskEmcalDev : public AliAnalysisTaskSE { Int_t fNbins; // no. of pt bins Double_t fMinBinPt; // min pt in histograms Double_t fMaxBinPt; // max pt in histograms - Double_t fClusPtCut; // cut on cluster pt - Double_t fTrackPtCut; // cut on track pt - Double_t fTrackMinEta; // cut on track eta - Double_t fTrackMaxEta; // cut on track eta - Double_t fTrackMinPhi; // cut on track phi - Double_t fTrackMaxPhi; // cut on track phi - Double_t fClusTimeCutLow; // low time cut for clusters - Double_t fClusTimeCutUp; // up time cut for clusters Double_t fMinPtTrackInEmcal; // min pt track in emcal Double_t fEventPlaneVsEmcal; // select events which have a certain event plane wrt the emcal Double_t fMinEventPlane; // minimum event plane value @@ -177,6 +175,6 @@ class AliAnalysisTaskEmcalDev : public AliAnalysisTaskSE { AliAnalysisTaskEmcalDev(const AliAnalysisTaskEmcalDev&); // not implemented AliAnalysisTaskEmcalDev &operator=(const AliAnalysisTaskEmcalDev&); // not implemented - ClassDef(AliAnalysisTaskEmcalDev, 3) // EMCAL base analysis task + ClassDef(AliAnalysisTaskEmcalDev, 4) // EMCAL base analysis task }; #endif diff --git a/PWG/EMCAL/AliClusterContainer.cxx b/PWG/EMCAL/AliClusterContainer.cxx index 1a58ddc997d..11ea1ec8735 100644 --- a/PWG/EMCAL/AliClusterContainer.cxx +++ b/PWG/EMCAL/AliClusterContainer.cxx @@ -105,10 +105,28 @@ AliVCluster* AliClusterContainer::GetAcceptCluster(Int_t i) const { } } +//________________________________________________________________________ +AliVCluster* AliClusterContainer::GetClusterWithLabel(Int_t lab) const { + + //Get particle with label lab in array + + Int_t i = GetIndexFromLabel(lab); + return GetCluster(i); +} + +//________________________________________________________________________ +AliVCluster* AliClusterContainer::GetAcceptClusterWithLabel(Int_t lab) const { + + //Get particle with label lab in array + + Int_t i = GetIndexFromLabel(lab); + return GetAcceptCluster(i); +} + //________________________________________________________________________ AliVCluster* AliClusterContainer::GetNextAcceptCluster(Int_t i) { - //Get next accepted cluster; if i >= 0 (re)start counter from i; return 0 if no accepted particle could be found + //Get next accepted cluster; if i >= 0 (re)start counter from i; return 0 if no accepted cluster could be found if (i>=0) fCurrentID = i; @@ -122,6 +140,23 @@ AliVCluster* AliClusterContainer::GetNextAcceptCluster(Int_t i) { return c; } +//________________________________________________________________________ +AliVCluster* AliClusterContainer::GetNextCluster(Int_t i) { + + //Get next cluster; if i >= 0 (re)start counter from i; return 0 if no cluster could be found + + if (i>=0) fCurrentID = i; + + const Int_t n = GetNEntries(); + AliVCluster *c = 0; + while (fCurrentID < n && !c) { + c = GetCluster(fCurrentID); + fCurrentID++; + } + + return c; +} + //________________________________________________________________________ void AliClusterContainer::GetMomentum(TLorentzVector &mom, Int_t i) const { diff --git a/PWG/EMCAL/AliClusterContainer.h b/PWG/EMCAL/AliClusterContainer.h index e6d68ccbea0..81d6dbe0f95 100644 --- a/PWG/EMCAL/AliClusterContainer.h +++ b/PWG/EMCAL/AliClusterContainer.h @@ -27,7 +27,10 @@ class AliClusterContainer : public AliEmcalContainer { AliVCluster *GetLeadingCluster(const char* opt="") ; AliVCluster *GetCluster(Int_t i) const; AliVCluster *GetAcceptCluster(Int_t i) const; + AliVCluster *GetClusterWithLabel(Int_t lab) const; + AliVCluster *GetAcceptClusterWithLabel(Int_t lab) const; AliVCluster *GetNextAcceptCluster(Int_t i=-1) ; + AliVCluster *GetNextCluster(Int_t i=-1) ; void GetMomentum(TLorentzVector &mom, Int_t i) const; Bool_t AcceptCluster(AliVCluster *vp) const; Int_t GetNClusters() const {return GetNEntries();} diff --git a/PWG/EMCAL/AliEmcalClusTrackMatcherTask.cxx b/PWG/EMCAL/AliEmcalClusTrackMatcherTask.cxx index d02c2ab18fc..3f4340035a4 100644 --- a/PWG/EMCAL/AliEmcalClusTrackMatcherTask.cxx +++ b/PWG/EMCAL/AliEmcalClusTrackMatcherTask.cxx @@ -139,12 +139,12 @@ Bool_t AliEmcalClusTrackMatcherTask::Run() AliParticleContainer *tracks = static_cast(fParticleCollArray.At(0)); AliParticleContainer *clusters = static_cast(fParticleCollArray.At(1)); - const Double_t maxd2 = fMaxDistance*fMaxDistance; - - // set the links between tracks and clusters AliEmcalParticle *partC = 0; AliEmcalParticle *partT = 0; + const Double_t maxd2 = fMaxDistance*fMaxDistance; + + // set the links between tracks and clusters clusters->ResetCurrentID(); while ((partC = static_cast(clusters->GetNextAcceptParticle()))) { AliVCluster *clust = partC->GetCluster(); diff --git a/PWG/EMCAL/AliEmcalContainer.cxx b/PWG/EMCAL/AliEmcalContainer.cxx index 86d9048a2e8..a065a2f1482 100644 --- a/PWG/EMCAL/AliEmcalContainer.cxx +++ b/PWG/EMCAL/AliEmcalContainer.cxx @@ -9,6 +9,7 @@ #include "AliEmcalJet.h" #include "AliVEvent.h" #include "AliLog.h" +#include "AliNamedArrayI.h" #include "AliEmcalContainer.h" @@ -17,10 +18,12 @@ ClassImp(AliEmcalContainer) //________________________________________________________________________ AliEmcalContainer::AliEmcalContainer(): TNamed("AliEmcalContainer","AliEmcalContainer"), - fClArray(0), fClArrayName(), fClassName(), - fCurrentID(0) + fIsParticleLevel(kFALSE), + fClArray(0), + fCurrentID(0), + fLabelMap(0) { // Default constructor. @@ -32,10 +35,12 @@ AliEmcalContainer::AliEmcalContainer(): //________________________________________________________________________ AliEmcalContainer::AliEmcalContainer(const char *name): TNamed(name,name), - fClArray(0), fClArrayName(), fClassName(), - fCurrentID(0) + fIsParticleLevel(kFALSE), + fClArray(0), + fCurrentID(0), + fLabelMap(0) { // Standard constructor. @@ -71,4 +76,24 @@ void AliEmcalContainer::SetArray(AliVEvent *event) fClArray = 0; } } + + fLabelMap = dynamic_cast(event->FindListObject(fClArrayName + "_Map")); +} + +//________________________________________________________________________ +Int_t AliEmcalContainer::GetIndexFromLabel(Int_t lab) const +{ + if (fLabelMap) { + if (lab < fLabelMap->GetSize()) { + return fLabelMap->At(lab); + } + else { + AliDebug(3,Form("%s_AliEmcalContainer::GetIndexFromLabel - Label not found in the map, returning -1...",fClArrayName.Data())); + return -1; + } + } + else { + AliDebug(3,Form("%s_AliEmcalContainer::GetIndexFromLabel - No index-label map found, returning label...",fClArrayName.Data())); + return lab; + } } diff --git a/PWG/EMCAL/AliEmcalContainer.h b/PWG/EMCAL/AliEmcalContainer.h index 83237dc4d20..74b1c47feef 100644 --- a/PWG/EMCAL/AliEmcalContainer.h +++ b/PWG/EMCAL/AliEmcalContainer.h @@ -7,6 +7,7 @@ class TLorentzVector; class AliVEvent; +class AliNamedArrayI; #include #include @@ -17,29 +18,36 @@ class AliEmcalContainer : public TNamed { AliEmcalContainer(const char *name); virtual ~AliEmcalContainer(){;} - void SetArrayName(const char *n) {fClArrayName = n;} - TClonesArray *GetArray() {return fClArray;} - Int_t GetNEntries() const {return fClArray->GetEntriesFast();} - const TString& GetArrayName() const {return fClArrayName;} - Int_t GetCurrentID() const {return fCurrentID-1; } - void SortArray() {fClArray->Sort();} + void SetArrayName(const char *n) { fClArrayName = n ; } + TClonesArray *GetArray() { return fClArray ; } + Int_t GetNEntries() const { return fClArray->GetEntriesFast() ; } + const TString& GetArrayName() const { return fClArrayName ; } + Int_t GetCurrentID() const { return fCurrentID-1 ; } + void SortArray() { fClArray->Sort() ; } + void ResetCurrentID(Int_t i=0) { fCurrentID = i ; } + void SetIsParticleLevel(Bool_t b) { fIsParticleLevel = b ; } + Bool_t GetIsParticleLevel() const { return fIsParticleLevel ; } + virtual void GetMomentum(TLorentzVector &mom, Int_t i) const = 0; virtual void SetArray(AliVEvent *event); - void ResetCurrentID(Int_t i=0) {fCurrentID = i;} + Int_t GetIndexFromLabel(Int_t lab) const; protected: - TClonesArray *fClArray; //!TClonesArray - Double_t fVertex[3]; //!event vertex array TString fClArrayName; // name of branch TString fClassName; // name of the class in the TClonesArray + Bool_t fIsParticleLevel; // whether or not it is a particle level object collection + + TClonesArray *fClArray; //!TClonesArray Int_t fCurrentID; //!current ID for automatic loops + AliNamedArrayI *fLabelMap; //!Label-Index map + Double_t fVertex[3]; //!event vertex array private: AliEmcalContainer(const AliEmcalContainer& obj); // copy constructor AliEmcalContainer& operator=(const AliEmcalContainer& other); // assignment - ClassDef(AliEmcalContainer,2); + ClassDef(AliEmcalContainer,3); }; diff --git a/PWG/EMCAL/AliParticleContainer.cxx b/PWG/EMCAL/AliParticleContainer.cxx index 74064615d5e..d1c08422fc6 100644 --- a/PWG/EMCAL/AliParticleContainer.cxx +++ b/PWG/EMCAL/AliParticleContainer.cxx @@ -101,6 +101,24 @@ AliVParticle* AliParticleContainer::GetAcceptParticle(Int_t i) const { } } +//________________________________________________________________________ +AliVParticle* AliParticleContainer::GetParticleWithLabel(Int_t lab) const { + + //Get particle with label lab in array + + Int_t i = GetIndexFromLabel(lab); + return GetParticle(i); +} + +//________________________________________________________________________ +AliVParticle* AliParticleContainer::GetAcceptParticleWithLabel(Int_t lab) const { + + //Get particle with label lab in array + + Int_t i = GetIndexFromLabel(lab); + return GetAcceptParticle(i); +} + //________________________________________________________________________ AliVParticle* AliParticleContainer::GetNextAcceptParticle(Int_t i) { @@ -118,6 +136,23 @@ AliVParticle* AliParticleContainer::GetNextAcceptParticle(Int_t i) { return p; } +//________________________________________________________________________ +AliVParticle* AliParticleContainer::GetNextParticle(Int_t i) { + + //Get next particle; if i >= 0 (re)start counter from i; return 0 if no particle could be found + + if (i>=0) fCurrentID = i; + + const Int_t n = GetNEntries(); + AliVParticle *p = 0; + while (fCurrentID < n && !p) { + p = GetParticle(fCurrentID); + fCurrentID++; + } + + return p; +} + //________________________________________________________________________ void AliParticleContainer::GetMomentum(TLorentzVector &mom, Int_t i) const { diff --git a/PWG/EMCAL/AliParticleContainer.h b/PWG/EMCAL/AliParticleContainer.h index e356822fa30..a34111a4d9d 100644 --- a/PWG/EMCAL/AliParticleContainer.h +++ b/PWG/EMCAL/AliParticleContainer.h @@ -16,20 +16,28 @@ class AliParticleContainer : public AliEmcalContainer { AliParticleContainer(const char *name); virtual ~AliParticleContainer(){;} - void SetParticlePtCut(Double_t cut) { fParticlePtCut = cut ; } - void SetParticleEtaLimits(Double_t min, Double_t max) { fParticleMaxEta = max ; fParticleMinEta = min ; } - void SetParticlePhiLimits(Double_t min, Double_t max) { fParticleMaxPhi = max ; fParticleMinPhi = min ; } + void SetParticlePtCut(Double_t cut) { fParticlePtCut = cut ; } + void SetParticleEtaLimits(Double_t min, Double_t max) { fParticleMaxEta = max ; fParticleMinEta = min ; } + void SetParticlePhiLimits(Double_t min, Double_t max) { fParticleMaxPhi = max ; fParticleMinPhi = min ; } void SetTrackBitMap(UInt_t m) { fTrackBitMap = m ; } void SetMCTrackBitMap(UInt_t m) { fMCTrackBitMap = m ; } void SetMinMCLabel(Int_t s) { fMinMCLabel = s ; } - AliVParticle *GetLeadingParticle(const char* opt="") ; - AliVParticle *GetParticle(Int_t i) const; - AliVParticle *GetAcceptParticle(Int_t i) const; - AliVParticle *GetNextAcceptParticle(Int_t i=-1) ; + Double_t GetParticlePtCut() const { return fParticlePtCut; } + Double_t GetParticleEtaMin() const { return fParticleMinEta; } + Double_t GetParticleEtaMax() const { return fParticleMaxEta; } + Double_t GetParticlePhiMin() const { return fParticleMinPhi; } + Double_t GetParticlePhiMax() const { return fParticleMaxPhi; } + AliVParticle *GetLeadingParticle(const char* opt="") ; + AliVParticle *GetParticle(Int_t i) const; + AliVParticle *GetAcceptParticle(Int_t i) const; + AliVParticle *GetParticleWithLabel(Int_t lab) const; + AliVParticle *GetAcceptParticleWithLabel(Int_t lab) const; + AliVParticle *GetNextAcceptParticle(Int_t i=-1) ; + AliVParticle *GetNextParticle(Int_t i=-1) ; void GetMomentum(TLorentzVector &mom, Int_t i) const; - Bool_t AcceptParticle(AliVParticle *vp) const; - Int_t GetNParticles() const {return GetNEntries();} + Bool_t AcceptParticle(AliVParticle *vp) const; + Int_t GetNParticles() const {return GetNEntries();} void SetClassName(const char *clname); protected: -- 2.43.0