/* $Id$ */
//-------------------------------------------------------------------------
-// AOD track base class
-// Author: Markus Oldenburg, CERN
+// AOD class for jets
+// Author: Andreas Morsch, CERN
//-------------------------------------------------------------------------
+#include <TLorentzVector.h>
#include "AliAODJet.h"
ClassImp(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);
+
}
//______________________________________________________________________________
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());
+}
/* $Id$ */
//-------------------------------------------------------------------------
-// AOD track base class
-// Author: Markus Oldenburg, CERN
+// AOD jet class
+// Author: Andreas Morsch, CERN
//-------------------------------------------------------------------------
-#include <TRef.h>
-
+#include <TLorentzVector.h>
#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