#ifndef ALIJET_H
#define ALIJET_H
+
+/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ * See cxx source for full Copyright notice */
-/* $Id$ */
-
-///////////////////////////////////////////////////////////////////
-//
-// class AliJet
-//
-// loizides@ikf.uni-frankfurt.de
-//
-///////////////////////////////////////////////////////////////////
-
+/* $Id$ */
+
+//---------------------------------------------------------------------
+// Jet class
+// Stores the output of a jet algorithm
+// Author: jgcn@mda.cinvestav.mx
+//---------------------------------------------------------------------
+
#include <TObject.h>
-#include <TClonesArray.h>
-#include <TObjString.h>
-#include <TString.h>
-class TParticle;
-class AliJetParticle;
+#include <TArrayI.h>
+#include <TArrayF.h>
-class AliJet: public TObject
+class TClonesArray;
+class TLorentzVector;
+
+class AliJet : public TObject
{
- public:
-#if 0
- AliJetEvent(Int_t size=1000);
- AliJetEvent(const AliJetEvent& source);
- virtual ~AliJetEvent();
-
- void SetVertex(Float_t v[3]){fVertexX=v[0];fVertexY=v[1];fVertexZ=v[2];}
- void SetVertex(Float_t v1,Float_t v2, Float_t v3){fVertexX=v1;fVertexY=v2;fVertexZ=v3;}
- void SetHeader(TString& s){fHeader=s;}
- void Reset(Int_t size=-1); //deletes all entries
+ public:
+
+ AliJet();
+ ~AliJet();
+
+ // Getters
+ Int_t GetNinput() const {return fNInput;}
+ Int_t GetNJets() const {return fNJets;}
+ TClonesArray* GetJets() const {return fJets;}
+ TArrayI GetInJet() const {return fInJet;}
+ TArrayI GetMultiplicities() const {return fMultiplicities;}
+ TArrayI GetNCells() const {return fNCells;}
+ TArrayF GetPtFromSignal() const {return fPtFromSignal;}
+ TArrayF GetEtaIn() const {return fEtaIn;}
+ TArrayF GetPhiIn() const {return fPhiIn;}
+ TArrayF GetPtIn() const {return fPtIn;}
+ Double_t GetEtAvg() const {return fEtAvg;}
+
+ TLorentzVector* GetJet(Int_t i);
+ Int_t GetMultiplicity(Int_t i) const;
+ Int_t GetNCell(Int_t i) const;
+ Double_t GetPx(Int_t i);
+ Double_t GetPy(Int_t i);
+ Double_t GetPz(Int_t i);
+ Double_t GetP(Int_t i);
+ Double_t GetE(Int_t i);
+ Double_t GetPt(Int_t i);
+ Double_t GetEta(Int_t i);
+ Double_t GetPhi(Int_t i);
+ Double_t GetTheta(Int_t i);
+ Double_t GetMass(Int_t i);
+
+ // Setters
+ void SetNinput(Int_t i) {fNInput = i;}
+ void AddJet(Double_t px, Double_t py, Double_t pz, Double_t e);
+ void SetMultiplicities(Int_t* m);
+ void SetNCells(Int_t* n);
+ void SetPtFromSignal(Float_t* p);
+ void SetEtaIn(Float_t* eta);
+ void SetPhiIn(Float_t* phi);
+ void SetPtIn(Float_t* pt);
+ void SetInJet(Int_t* idx);
+ void SetEtAvg(Double_t et) { fEtAvg = et; }
- //adds particle to the event
- void AddParticle(AliJetParticle* p);
- void AddParticle(const AliJetParticle* p);
- void AddParticle(const TParticle* part,Int_t idx=-1, Int_t l=0);
- void AddParticle(Float_t px, Float_t py, Float_t pz, Float_t etot, Int_t idx=-1, Int_t l=0);
- void AddParticle(Float_t px, Float_t py, Float_t pz, Float_t etot, Int_t idx, Int_t l,
- Float_t pt, Float_t phi, Float_t eta);
+ // others
+ Bool_t OutOfRange(Int_t i, const char *s) const;
+ void ClearJets(Option_t *option="");
+ void PrintJets();
- const AliJetParticle* GetParticle(Int_t n) //gets particle without boundary check
- {return (const AliJetParticle*)fParticles->At(n);}
- const AliJetParticle* GetParticleSafely(Int_t n);
- Int_t GetNParticles() const {return fNParticles;}
- const TClonesArray* GetParticles() const {return fParticles;}
- Float_t GetVertexX() const {return fVertexX;}
- Float_t GetVertexY() const {return fVertexY;}
- Float_t GetVertexZ() const {return fVertexZ;}
+ protected:
- void Print(Option_t *t="") const;
+ AliJet(const AliJet& rJet);
+ AliJet& operator = (const AliJet& rhs);
- protected:
- TString fHeader; // event description
- Int_t fNParticles; // number of particles read
- TClonesArray *fParticles; //-> particles in event
+ Int_t fNInput; // number of input objects
+ Int_t fNJets; // number of jets found
+ Double_t fEtAvg; // average background et per cell
- Float_t fVertexX; //vertex x
- Float_t fVertexY; //vertex y
- Float_t fVertexZ; //vertex z
-#endif
- ClassDef(AliJet,1) //class AliJet
+ TArrayI fInJet; // i-input object belongs to k-jet
+ TArrayI fMultiplicities; // Multiplicity of each jet
+ TArrayI fNCells; // Number of cells in jet
+ TArrayF fPtFromSignal; // percentage of pt from signal
+ TClonesArray* fJets; // 4-momenta of jets
+
+ TArrayF fEtaIn; // Arrays of input particles kine:Eta
+ TArrayF fPhiIn; // Arrays of input particles kine:Phi
+ TArrayF fPtIn; // Arrays of input particles kine:Pt
+
+ ClassDef(AliJet,1)
};
+
#endif