From 87102d3ca0be0763f47771cd844d804a7affce25 Mon Sep 17 00:00:00 2001 From: morsch Date: Mon, 4 Jun 2007 16:29:04 +0000 Subject: [PATCH] First functional implementation. --- STEER/AliAODJet.cxx | 53 +++++++++++++++++++++++++++--- STEER/AliAODJet.h | 80 +++++++++++++++++++++++++++------------------ 2 files changed, 98 insertions(+), 35 deletions(-) diff --git a/STEER/AliAODJet.cxx b/STEER/AliAODJet.cxx index cc3ee4c71e3..d554ae810b4 100644 --- a/STEER/AliAODJet.cxx +++ b/STEER/AliAODJet.cxx @@ -16,10 +16,11 @@ /* $Id$ */ //------------------------------------------------------------------------- -// AOD track base class -// Author: Markus Oldenburg, CERN +// AOD class for jets +// Author: Andreas Morsch, CERN //------------------------------------------------------------------------- +#include #include "AliAODJet.h" ClassImp(AliAODJet) @@ -31,18 +32,46 @@ AliAODJet::AliAODJet() // constructor } +AliAODJet::AliAODJet(Double_t px, Double_t py, Double_t pz, Double_t e): + AliVirtualParticle(), + fMomentum(0) +{ + // constructor + fMomentum = new TLorentzVector(px, py, pz, e); + fBackgEnergy[0] = 0.; + fBackgEnergy[1] = 0.; + fEffectiveArea[0] = 0.; + fEffectiveArea[1] = 0.; +} + +AliAODJet::AliAODJet(TLorentzVector p): + AliVirtualParticle(), + fMomentum(0) +{ + // constructor + fMomentum = new TLorentzVector(p); + fBackgEnergy[0] = 0.; + fBackgEnergy[1] = 0.; + fEffectiveArea[0] = 0.; + fEffectiveArea[1] = 0.; +} + + //______________________________________________________________________________ AliAODJet::~AliAODJet() { // destructor + delete fMomentum; } //______________________________________________________________________________ AliAODJet::AliAODJet(const AliAODJet& jet) : - AliVirtualParticle(jet) + AliVirtualParticle(jet), + fMomentum(0) { // Copy constructor - + fMomentum = new TLorentzVector(*jet.fMomentum); + } //______________________________________________________________________________ @@ -55,3 +84,19 @@ AliAODJet& AliAODJet::operator=(const AliAODJet& jet) return *this; } +void AliAODJet::Print(Option_t* /*option*/) const +{ + // Print information of all data members + printf("Jet 4-vector:\n"); + printf(" E = %13.3f\n", E() ); + printf(" Px = %13.3f\n", Px()); + printf(" Py = %13.3f\n", Py()); + printf(" Pz = %13.3f\n", Pz()); + printf("Background Energy:\n"); + printf("Charged: %13.3f\n", ChargedBgEnergy()); + printf("Neutral: %13.3f\n", NeutralBgEnergy()); + printf("Total: %13.3f\n", TotalBgEnergy()); + printf("Effective Area: \n"); + printf("Charged: %13.3f\n", EffectiveAreaCharged()); + printf("Neutral: %13.3f\n", EffectiveAreaNeutral()); +} diff --git a/STEER/AliAODJet.h b/STEER/AliAODJet.h index 2ba285e0be6..75e2108300e 100644 --- a/STEER/AliAODJet.h +++ b/STEER/AliAODJet.h @@ -6,45 +6,63 @@ /* $Id$ */ //------------------------------------------------------------------------- -// AOD track base class -// Author: Markus Oldenburg, CERN +// AOD jet class +// Author: Andreas Morsch, CERN //------------------------------------------------------------------------- -#include - +#include #include "AliVirtualParticle.h" #include "AliAODVertex.h" + class AliAODJet : public AliVirtualParticle { public: - - AliAODJet(); - - virtual ~AliAODJet(); - AliAODJet(const AliAODJet& trk); - AliAODJet& operator=(const AliAODJet& trk); - - virtual Double_t Px() const { return 0.;} - virtual Double_t Py() const { return 0.;} - virtual Double_t Pz() const { return 0.;} - virtual Double_t Pt() const { return 0.;} - virtual Double_t P() const { return 0.;} - virtual Double_t OneOverPt() const { return 0.;} - virtual Double_t Phi() const { return 0.;} - virtual Double_t Theta() const { return 0.;} - virtual Double_t E() const { return 0.;} - virtual Double_t M() const { return 0.;} - virtual Double_t Eta() const { return 0.;} - virtual Double_t Y() const { return 0.;} - virtual Short_t Charge() const { return 0;} - virtual const Double_t* PID() const { return NULL;} - - private : - - // Momentum & position - - ClassDef(AliAODJet,1); + AliAODJet(); + AliAODJet(Double_t px, Double_t py, Double_t pz, Double_t e); + AliAODJet(TLorentzVector p); + virtual ~AliAODJet(); + AliAODJet(const AliAODJet& jet); + AliAODJet& operator=(const AliAODJet& jet); +// AliVirtualParticle methods + virtual Double_t Px() const { return fMomentum->Px(); } + virtual Double_t Py() const { return fMomentum->Py(); } + virtual Double_t Pz() const { return fMomentum->Pz(); } + virtual Double_t Pt() const { return fMomentum->Pt(); } + virtual Double_t P() const { return fMomentum->P(); } + virtual Double_t OneOverPt() const { return 1. / fMomentum->Pt(); } + virtual Double_t Phi() const { return fMomentum->Phi(); } + virtual Double_t Theta() const { return fMomentum->Theta(); } + virtual Double_t E() const { return fMomentum->E(); } + virtual Double_t M() const { return fMomentum->M(); } + virtual Double_t Eta() const { return fMomentum->Eta(); } + virtual Double_t Y() const { return fMomentum->Rapidity();} +// + virtual void SetBgEnergy(Double_t bgEnCh, Double_t bgEnNe) + {fBackgEnergy[0] = bgEnCh; fBackgEnergy[1] = bgEnNe;} + virtual void SetEffArea(Double_t effACh, Double_t effANe) + {fEffectiveArea[0] = effACh; fEffectiveArea[1] = effANe;} + + virtual Double_t ChargedBgEnergy() const { return fBackgEnergy[0];} + virtual Double_t NeutralBgEnergy() const { return fBackgEnergy[1];} + virtual Double_t TotalBgEnergy() const { return (fBackgEnergy[0] + fBackgEnergy[1]);} + + virtual Double_t EffectiveAreaCharged() const { return fEffectiveArea[0];} + virtual Double_t EffectiveAreaNeutral() const { return fEffectiveArea[1];} + + virtual void Print(Option_t* /*option*/) const; + +// Dummy + virtual Short_t Charge() const { return 0;} + virtual const Double_t* PID() const { return NULL;} +// + + + private: + TLorentzVector* fMomentum; // Jet 4-momentum vector + Double_t fBackgEnergy[2]; // Subtracted background energy + Double_t fEffectiveArea[2]; // Effective jet area used for background subtraction + ClassDef(AliAODJet,1); }; #endif -- 2.31.1