]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Transition to new base class (Salvatore/Marta).
authorloizides <loizides@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 4 Sep 2013 12:11:02 +0000 (12:11 +0000)
committerloizides <loizides@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 4 Sep 2013 12:11:02 +0000 (12:11 +0000)
PWG/EMCAL/AliAnalysisTaskEmcalDev.cxx
PWG/EMCAL/AliAnalysisTaskEmcalDev.h
PWG/EMCAL/AliClusterContainer.cxx
PWG/EMCAL/AliClusterContainer.h
PWG/EMCAL/AliEmcalClusTrackMatcherTask.cxx
PWG/EMCAL/AliEmcalContainer.cxx
PWG/EMCAL/AliEmcalContainer.h
PWG/EMCAL/AliParticleContainer.cxx
PWG/EMCAL/AliParticleContainer.h

index 372529375bfa2d72d1ba4d13d2ec9ac5db87128f..f8ab54588b47e384d599306218433ace9da7018b 100644 (file)
@@ -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()
 {
index fb3db97aeee77a4b6b096b7d34f76beebbe6b83f..7b4e03cc954ba8e80e4ae988ca6f90d856f50e09 100644 (file)
@@ -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
index 1a58ddc997d5635edc1d3f648ccf8a9d936abb15..11ea1ec87354ec3d036c0391f25fda87f3d8ef03 100644 (file)
@@ -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
 {
index e6d68ccbea003fc80db407538d585efcc1235dce..81d6dbe0f95d6a211a49d513f56f4fc6df705602 100644 (file)
@@ -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();}
index d02c2ab18fcfee3b034d2ff8060d67bda130299b..3f4340035a481396783683c0471c7cf4c05bf662 100644 (file)
@@ -139,12 +139,12 @@ Bool_t AliEmcalClusTrackMatcherTask::Run()
   AliParticleContainer *tracks = static_cast<AliParticleContainer*>(fParticleCollArray.At(0));
   AliParticleContainer *clusters = static_cast<AliParticleContainer*>(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<AliEmcalParticle*>(clusters->GetNextAcceptParticle()))) {
     AliVCluster *clust = partC->GetCluster();
index 86d9048a2e8a5c600cd9e4570731223ad64d7dff..a065a2f14829530d0d06f1e0ea7924b914d4371b 100644 (file)
@@ -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<AliNamedArrayI*>(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; 
+  }
 }
index 83237dc4d205eae51c121ca35b4b1bb4b0652e3e..74b1c47feef1f53b4ddfe3a4df115d1763e485db 100644 (file)
@@ -7,6 +7,7 @@
 
 class TLorentzVector;
 class AliVEvent;
+class AliNamedArrayI;
 
 #include <TNamed.h>
 #include <TClonesArray.h>
@@ -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);
 
 };
 
index 74064615d5ec9672f6285f03c83d75cc55dcc3f1..d1c08422fc6e545046b57c532f40aa9a893daac4 100644 (file)
@@ -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
 {
index e356822fa30f90c8596834070b6039ba6f70cb15..a34111a4d9df6b669df93e753816e16784a336dc 100644 (file)
@@ -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: