19-apr-2005 NvE Memberfunctions GetNtracks and GetTracks of AliJet extended in functi...
authornick <nick@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 19 Apr 2005 08:33:16 +0000 (08:33 +0000)
committernick <nick@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 19 Apr 2005 08:33:16 +0000 (08:33 +0000)
RALICE/AliJet.cxx
RALICE/AliJet.h
RALICE/AliVertex.cxx
RALICE/history.txt

index 5596c7158fe6e911f4223ae580b636210d4de7f6..78b3ad175b5d6a40781decbe70cd5d49f5223bad 100644 (file)
@@ -361,10 +361,34 @@ void AliJet::ListAll(TString f)
  }
 } 
 ///////////////////////////////////////////////////////////////////////////
-Int_t AliJet::GetNtracks() const
-{
-// Return the current number of tracks of this jet
- return fNtrk;
+Int_t AliJet::GetNtracks(Int_t idmode,Int_t chmode,Int_t pcode)
+{
+// Provide the number of user selected tracks in this jet based on the
+// idmode, chmode and pcode selections as specified by the user.
+// For specification of the selection parameters see GetTracks().
+// The default parameters correspond to no selection, which implies
+// that invokation of GetNtracks() just returns the total number of
+// tracks registered in this jet.
+//
+// Note : In case certain selections are specified, this function
+//        invokes GetTracks(idmode,chmode,pcode) to determine the
+//        number of tracks corresponding to the selections.
+//        When the jet contains a large number of tracks, invokation
+//        of GetTracks(idmode,chmode,pcode) and subsequently invoking
+//        GetEntries() for the resulting TObjArray* might be slightly
+//        faster.
+
+ Int_t n=0;
+ if (idmode==0 && chmode==2 && pcode==0)
+ {
+  return fNtrk;
+ }
+ else
+ {
+  TObjArray* arr=GetTracks(idmode,chmode,pcode);
+  n=arr->GetEntries();
+  return n;
+ }
 }
 ///////////////////////////////////////////////////////////////////////////
 Double_t AliJet::GetEnergy()
@@ -457,6 +481,7 @@ TObjArray* AliJet::GetTracks(Int_t idmode,Int_t chmode,Int_t pcode)
 //           0 ==> Select neutral tracks
 //           1 ==> Select tracks with positive charge
 //           2 ==> No selection on charge
+//           3 ==> Select all charged tracks
 //
 // pcode  =  0 ==> No selection on particle code
 //           X ==> Select tracks with particle code +X or -X
@@ -513,6 +538,7 @@ TObjArray* AliJet::GetTracks(Int_t idmode,Int_t chmode,Int_t pcode)
   if (chmode==-1 && q>=0) continue;
   if (chmode==0 && fabs(q)>1e-10) continue;
   if (chmode==1 && q<=0) continue;
+  if (chmode==3 && fabs(q)<1e-10) continue;
 
   fSelected->Add(tx);
  }
@@ -520,7 +546,7 @@ TObjArray* AliJet::GetTracks(Int_t idmode,Int_t chmode,Int_t pcode)
  return fSelected;
 }
 ///////////////////////////////////////////////////////////////////////////
-void AliJet::ShowTracks(Int_t mode) const
+void AliJet::ShowTracks(Int_t mode)
 {
 // Provide an overview of the available tracks.
 // The argument mode determines the amount of information as follows :
index 731c5452afa528a084840e97fc9bb44840f527ca..01a9595f884ef0d9b5d887027ee5e337bf4a7843 100644 (file)
@@ -33,11 +33,11 @@ class AliJet : public TNamed,public Ali4Vector
   Ali3Vector Get3Momentum() const;         // Provide the total jet 3-momentum
   Double_t GetInvmass();                   // Provide the invariant mass  
   Float_t GetCharge() const;               // Provide the total charge of the jet
-  Int_t GetNtracks() const;                // Return the number of tracks in the jet
+  Int_t GetNtracks(Int_t idmode=0,Int_t chmode=2,Int_t pcode=0); // Provide the number of selected tracks in the jet
   AliTrack* GetTrack(Int_t i) const;       // Provide i-th track of the jet (1=first track)
   AliTrack* GetIdTrack(Int_t id) const;    // Provide the track with user identifier "id"
   TObjArray* GetTracks(Int_t idmode=0,Int_t chmode=2,Int_t pcode=0); // Provide references to selected tracks
-  void ShowTracks(Int_t mode=1) const;     // Provide on overview of the available tracks
+  void ShowTracks(Int_t mode=1);           // Provide on overview of the available tracks
   Double_t GetPt();                        // Provide trans. momentum w.r.t. z-axis
   Double_t GetPl();                        // Provide long. momentum w.r.t. z-axis
   Double_t GetEt();                        // Provide trans. energy w.r.t. z-axis
@@ -63,6 +63,6 @@ class AliJet : public TNamed,public Ali4Vector
   Int_t fUserId;                         // The user defined identifier
   TObjArray* fSelected;                  //! Temp. array to hold user selected objects
  
- ClassDef(AliJet,10) // Creation and investigation of a jet of particle tracks.
+ ClassDef(AliJet,11) // Creation and investigation of a jet of particle tracks.
 };
 #endif
index dde5f0f53a6a5f7a09e206af833b17a4e85b7f39..e0b0e0fd4050610783b9d52e5a54ed7faa12a2cc 100644 (file)
@@ -266,7 +266,7 @@ AliVertex::AliVertex(const AliVertex& v) : AliJet(v.fNtinit),AliPosition(v)
  AliTrack* tx=0;
  Int_t jetflag=0,connect=0;
  AliTrack* tx2=0;
- for (Int_t it=1; it<=v.GetNtracks(); it++)
+ for (Int_t it=1; it<=v.fNtrk; it++)
  {
   tx=v.GetTrack(it);
   if (tx)
index f8d8ddd463df7c61414b3146a443382d7513320c..83c0fb61e23e281575580c74e47bddb0ff18a69c 100644 (file)
                 to prevent long output lists when many devices (and/or tracks) are present.
                 New memberfunction ShowTracks introduced in AliJet and memberfunction Data() updated.
 18-apr-2005 NvE New memberfunction GetTracks introduced in AliJet to provide various track selections.
+19-apr-2005 NvE Memberfunctions GetNtracks and GetTracks of AliJet extended in functionality.