]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - JETAN/AliJetUnitArray.h
propagate changes to DEV
[u/mrichter/AliRoot.git] / JETAN / AliJetUnitArray.h
index 20e810c2f45dcfe577d6ec35a1f89a900c8670e8..0d9dfbed77bf60f4ca922ff39734d927eadf6d15 100644 (file)
@@ -4,27 +4,52 @@
 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
  *  *  * See cxx source for full Copyright notice     */
 
-//------------------------------------------------------------------
-//  Unit used by UA1 algorithm
-//  Authors: Sarah Blyth (LBL/UCT)
-//           Magali Estienne (IReS) (new version for JETAN)
-//------------------------------------------------------------------
+/* $Id$ */
 
+// Class description : Unit red as input by jet finder algorithm to store
+//                     the physical characteristics of a particle
+//
+// Author: magali.estienne@subatech.in2p3.fr
+//
+// Unit used by jet finder algorithm
+//
+//
 
+#include <Riostream.h> 
 #include <TObject.h>
+#include <TRefArray.h>
+#include <TMath.h>
+#include "AliESDtrack.h"
+#include "AliAODTrack.h"
+#include "AliVParticle.h"
+#include "AliESDCaloCells.h"
+#include "AliAODCaloCells.h"
+#include "AliESDCaloCluster.h"
+#include "AliAODCaloCluster.h"
 #include "AliJetFinderTypes.h"
 
+class TList;
+class TVector3;
+
 class AliJetUnitArray : public TObject
 {
  public:
   AliJetUnitArray();
-  AliJetUnitArray(Int_t absId, Int_t esdId, Float_t eta, Float_t phi, Float_t en, Float_t px, Float_t py, Float_t pz, Float_t Deta, Float_t Dphi, AliJetFinderUnitDetectorFlagType_t det, AliJetFinderUnitFlagType_t inout, AliJetFinderUnitCutFlagType_t cut, Float_t mass, Int_t clusId);
+  AliJetUnitArray(Int_t absId, Int_t esdId, Float_t eta, Float_t phi, Float_t en, Float_t Deta, Float_t Dphi, 
+                 AliJetFinderUnitDetectorFlagType_t det, AliJetFinderUnitFlagType_t inout, AliJetFinderUnitCutFlagType_t cut, 
+                 AliJetFinderUnitCutFlagType_t cut2, AliJetFinderUnitSignalFlagType_t signal, Float_t mass, Int_t clusId);
+  AliJetUnitArray(Int_t absId, Int_t esdId, Float_t eta, Float_t phi, Float_t en, Float_t px, Float_t py, Float_t pz, 
+                 Float_t Deta, Float_t Dphi, AliJetFinderUnitDetectorFlagType_t det, AliJetFinderUnitFlagType_t inout, 
+                 AliJetFinderUnitCutFlagType_t cut, Float_t mass, Int_t clusId);
   ~AliJetUnitArray();
 
   // Setter
   void SetUnitEnergy(Float_t energy)  {fUnitEnergy = energy;}
   void SetUnitEta(Float_t eta)        {fUnitEta = eta;} 
   void SetUnitPhi(Float_t phi)        {fUnitPhi = phi;}
+  void SetUnitPx(Float_t px)          {fUnitPx = px;}
+  void SetUnitPy(Float_t py)          {fUnitPy = py;}
+  void SetUnitPz(Float_t pz)          {fUnitPz = pz;}
   void SetUnitDeta(Float_t deta)      {fUnitDeta = deta;} 
   void SetUnitDphi(Float_t dphi)      {fUnitDphi = dphi;}
   void SetUnitID(Int_t id)            {fUnitID = id;}
@@ -39,6 +64,10 @@ class AliJetUnitArray : public TObject
   { 
     fUnitCutFlag = cutFlag; 
   } 
+  void SetUnitCutFlag2(AliJetFinderUnitCutFlagType_t cutFlag)
+  {
+    fUnitCutFlag2 = cutFlag;
+  }
   void SetUnitSignalFlag(AliJetFinderUnitSignalFlagType_t signalFlag)    
   { 
     fUnitSignalFlag = signalFlag; 
@@ -47,21 +76,36 @@ class AliJetUnitArray : public TObject
   { 
     fUnitDetectorFlag = detectorflag; 
   } 
-  void SetUnitPxPyPz(Double_t *pxyz)  {fUnitPx = pxyz[0]; fUnitPy = pxyz[1]; fUnitPz = pxyz[2];}
+  void SetUnitSignalFlagC(Bool_t init, AliJetFinderUnitSignalFlagType_t flag);
+  void SetUnitSignalFlagN(Bool_t init, AliJetFinderUnitSignalFlagType_t flag);
   void SetUnitMass(Float_t mass) {fUnitMass = mass;}
+  void SetUnitTrackRef(TRefArray* trackref)     {fUnitTrackRef = trackref;}
+  void SetUnitCellRef(TRefArray* cellref)       {fUnitCellRef = cellref;}
+  void SetUnitClusterRef(TRefArray* clusterref) {fUnitClusterRef = clusterref;}
 
   // Getter
-  Float_t GetUnitEnergy() const            {return fUnitEnergy;}
-  Float_t GetUnitEta() const               {return fUnitEta;}
-  Float_t GetUnitPhi() const               {return fUnitPhi;}         
-  Float_t GetUnitDeta() const              {return fUnitDeta;}
-  Float_t GetUnitDphi() const              {return fUnitDphi;}         
-  Int_t   GetUnitID() const                {return fUnitID;}
-  Int_t   GetUnitTrackID() const             {return fUnitTrackID;}
-  Int_t   GetUnitEntries() const           {return fUnitNum;}
-  Int_t   GetUnitClusterID() const         {return fUnitClusterID;}
-  Float_t GetUnitMass() const              {return fUnitMass;}
-  Bool_t  GetUnitPxPyPz(Double_t* p) const {p[0]=fUnitPx; p[1]=fUnitPy; p[2]=fUnitPz; return kTRUE;}
+  Float_t     GetUnitEnergy() const            {return fUnitEnergy;}
+  Float_t     GetUnitEta() const               {return fUnitEta;}
+  Float_t     GetUnitPhi() const               {return fUnitPhi;} 
+  Float_t     GetUnitPx() const                {return fUnitPx;}
+  Float_t     GetUnitPy() const                {return fUnitPy;}
+  Float_t     GetUnitPz() const                {return fUnitPz;}
+  Float_t     GetUnitDeta() const              {return fUnitDeta;}
+  Float_t     GetUnitDphi() const              {return fUnitDphi;}         
+  Int_t       GetUnitID() const                {return fUnitID;}
+  Int_t       GetUnitTrackID() const           {return fUnitTrackID;}
+  Int_t       GetUnitEntries() const           {return fUnitNum;}
+  Int_t       GetUnitClusterID() const         {return fUnitClusterID;}
+  Float_t     GetUnitMass() const              {return fUnitMass;}
+  Bool_t      GetUnitSignalFlagC(Int_t ind, AliJetFinderUnitSignalFlagType_t &flagc);
+  Bool_t      GetUnitSignalFlagN(Int_t ind, AliJetFinderUnitSignalFlagType_t &flagn);
+  TRefArray*  GetUnitTrackRef() const          {return fUnitTrackRef;}
+  TRefArray*  GetUnitCellRef() const           {return fUnitCellRef;}
+  TRefArray*  GetUnitClusterRef() const        {return fUnitClusterRef;}
+
+  Float_t     EtaToTheta(Float_t arg) const;
+  void        ClearUnitTrackRef();
+  void        ClearUnitCellRef();
 
   AliJetFinderUnitFlagType_t GetUnitFlag() const     
   {
@@ -71,6 +115,10 @@ class AliJetUnitArray : public TObject
   {
          return fUnitCutFlag;
   }
+  AliJetFinderUnitCutFlagType_t GetUnitCutFlag2() const
+  {
+          return fUnitCutFlag2;
+  }
   AliJetFinderUnitSignalFlagType_t GetUnitSignalFlag() const     
   {
          return fUnitSignalFlag;
@@ -80,31 +128,39 @@ class AliJetUnitArray : public TObject
          return fUnitDetectorFlag;
   }
 
-
-  Bool_t operator>  ( AliJetUnitArray unit1) const;
-  Bool_t operator<  ( AliJetUnitArray unit1) const;
-  Bool_t operator== ( AliJetUnitArray unit1) const;
-
  protected:
-  Float_t         fUnitEnergy;                          // Energy of the unit 
-  Float_t         fUnitEta;                             // Eta of the unit
-  Float_t         fUnitPhi;                             // Phi of the unit
-  Float_t         fUnitDeta;                            // Delta Eta of the unit
-  Float_t         fUnitDphi;                            // Delta Phi of the unit
-  Int_t           fUnitID;                              // ID of the unit
-  Int_t           fUnitTrackID;                         // ID of the unit
-  Int_t           fUnitNum;                             // number of units
-  Int_t           fUnitClusterID;                       // ID of the unit
+  AliJetUnitArray(const AliJetUnitArray& rUnit);
+  AliJetUnitArray& operator = (const AliJetUnitArray& rhs);
+  Bool_t operator>  (const AliJetUnitArray* unit1) const;
+  Bool_t operator<  (const AliJetUnitArray* unit1) const;
+  Bool_t operator== (const AliJetUnitArray* unit1) const;
+
+  Float_t                            fUnitEnergy;       // Energy (Pt,et) of the unit 
+  Float_t                            fUnitEta;          // Eta of the unit
+  Float_t                            fUnitPhi;          // Phi of the unit
+  Float_t                            fUnitDeta;         // Delta Eta of the unit
+  Float_t                            fUnitDphi;         // Delta Phi of the unit
+  Int_t                              fUnitID;           // ID of the unit
+  Int_t                              fUnitTrackID;      // ID of a given charged track 
+  Int_t                              fUnitNum;          // Number of units
+  Int_t                              fUnitClusterID;    // ID for clusters
   AliJetFinderUnitFlagType_t         fUnitFlag;         // Flag of the unit
-  AliJetFinderUnitCutFlagType_t      fUnitCutFlag;      // Flag of the unit
-  AliJetFinderUnitSignalFlagType_t   fUnitSignalFlag;   // Flag of the unit
+  AliJetFinderUnitCutFlagType_t      fUnitCutFlag;      // Cut flag of the unit in the tpc
+  AliJetFinderUnitCutFlagType_t      fUnitCutFlag2;     // Cut flag of the unit in the emcal
+  AliJetFinderUnitSignalFlagType_t   fUnitSignalFlag;   // Signal flag of the unit
   AliJetFinderUnitDetectorFlagType_t fUnitDetectorFlag; // Detector flag of the unit
-  Float_t         fUnitPx;                              // Px of charged track
-  Float_t         fUnitPy;                              // Py of charged track
-  Float_t         fUnitPz;                              // Pz of charged track
-  Float_t         fUnitMass;                            // Mass of charged particle
+  Float_t                            fUnitPx;           // Px of charged track
+  Float_t                            fUnitPy;           // Py of charged track
+  Float_t                            fUnitPz;           // Pz of charged track
+  Float_t                            fUnitMass;         // Mass of particle
+  vector< AliJetFinderUnitSignalFlagType_t >   fVc;     //|| added for background studies
+  vector< AliJetFinderUnitSignalFlagType_t >   fVn;     //|| added for background studies
+  TRefArray*                         fUnitTrackRef;     //! pointer to array of references to esd tracks
+  TRefArray*                         fUnitCellRef;      //! pointer to array of references to esd cells
+  TRefArray*                         fUnitClusterRef;   //! pointer to array of references to esd clusters
+
+  ClassDef(AliJetUnitArray,2)
 
-  ClassDef(AliJetUnitArray,1)
 };
 
 #endif