Class moved.
[u/mrichter/AliRoot.git] / STEER / AliAODJet.cxx
CommitLineData
df9db588 1/**************************************************************************
2 * Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
16/* $Id$ */
17
18//-------------------------------------------------------------------------
87102d3c 19// AOD class for jets
20// Author: Andreas Morsch, CERN
df9db588 21//-------------------------------------------------------------------------
22
87102d3c 23#include <TLorentzVector.h>
df9db588 24#include "AliAODJet.h"
25
26ClassImp(AliAODJet)
27
28
29//______________________________________________________________________________
a1708071 30AliAODJet::AliAODJet() :
ff7c57dd 31 AliVParticle(),
2e7293a2 32 fMomentum(0),
33 fRefTracks(new TRefArray())
df9db588 34{
35 // constructor
a1708071 36 fBackgEnergy[0] = 0.;
37 fBackgEnergy[1] = 0.;
38 fEffectiveArea[0] = 0.;
39 fEffectiveArea[1] = 0.;
df9db588 40}
41
87102d3c 42AliAODJet::AliAODJet(Double_t px, Double_t py, Double_t pz, Double_t e):
ff7c57dd 43 AliVParticle(),
2e7293a2 44 fMomentum(0),
45 fRefTracks(new TRefArray())
87102d3c 46{
47 // constructor
87102d3c 48 fBackgEnergy[0] = 0.;
49 fBackgEnergy[1] = 0.;
50 fEffectiveArea[0] = 0.;
51 fEffectiveArea[1] = 0.;
9333290e 52 fMomentum = new TLorentzVector(px, py, pz, e);
87102d3c 53}
54
a1708071 55AliAODJet::AliAODJet(TLorentzVector & p):
ff7c57dd 56 AliVParticle(),
2e7293a2 57 fMomentum(0),
58 fRefTracks(new TRefArray())
87102d3c 59{
60 // constructor
87102d3c 61 fBackgEnergy[0] = 0.;
62 fBackgEnergy[1] = 0.;
63 fEffectiveArea[0] = 0.;
64 fEffectiveArea[1] = 0.;
9333290e 65 fMomentum = new TLorentzVector(p);
87102d3c 66}
67
68
df9db588 69//______________________________________________________________________________
70AliAODJet::~AliAODJet()
71{
72 // destructor
87102d3c 73 delete fMomentum;
2e7293a2 74 delete fRefTracks;
df9db588 75}
76
77//______________________________________________________________________________
78AliAODJet::AliAODJet(const AliAODJet& jet) :
ff7c57dd 79 AliVParticle(jet),
0cd61c1d 80 fMomentum(0),
81 fRefTracks(0)
df9db588 82{
83 // Copy constructor
2e7293a2 84 fBackgEnergy[0] = jet.fBackgEnergy[0];
d3ad3ee1 85 fBackgEnergy[1] = jet.fBackgEnergy[1];
2e7293a2 86 fEffectiveArea[0] = jet.fEffectiveArea[0];
87 fEffectiveArea[1] = jet.fEffectiveArea[1];
9333290e 88
89 fMomentum = new TLorentzVector(*jet.fMomentum);
90 fRefTracks = new TRefArray(*jet.fRefTracks);
df9db588 91}
92
93//______________________________________________________________________________
94AliAODJet& AliAODJet::operator=(const AliAODJet& jet)
95{
96 // Assignment operator
97 if(this!=&jet) {
9333290e 98
99 fBackgEnergy[0] = jet.fBackgEnergy[0];
100 fBackgEnergy[1] = jet.fBackgEnergy[1];
101 fEffectiveArea[0] = jet.fEffectiveArea[0];
102 fEffectiveArea[1] = jet.fEffectiveArea[1];
103
104 delete fMomentum;
105 fMomentum = new TLorentzVector(*jet.fMomentum);
106 delete fRefTracks;
107 fRefTracks = new TRefArray(*jet.fRefTracks);
df9db588 108 }
109
110 return *this;
111}
112
87102d3c 113void AliAODJet::Print(Option_t* /*option*/) const
114{
115 // Print information of all data members
116 printf("Jet 4-vector:\n");
117 printf(" E = %13.3f\n", E() );
118 printf(" Px = %13.3f\n", Px());
119 printf(" Py = %13.3f\n", Py());
120 printf(" Pz = %13.3f\n", Pz());
121 printf("Background Energy:\n");
122 printf("Charged: %13.3f\n", ChargedBgEnergy());
123 printf("Neutral: %13.3f\n", NeutralBgEnergy());
124 printf("Total: %13.3f\n", TotalBgEnergy());
125 printf("Effective Area: \n");
126 printf("Charged: %13.3f\n", EffectiveAreaCharged());
127 printf("Neutral: %13.3f\n", EffectiveAreaNeutral());
128}
944efc80 129
130void AliAODJet::SetPxPyPzE(Double_t px, Double_t py, Double_t pz, Double_t e){
131 //
132 // Set the four Momentum from outside
133 // MomentumVector()->SetPxPyPzE() cannot be used since pointer can be 0x0
134 //
135
136 if(!fMomentum){
137 fMomentum = new TLorentzVector(px,py,pz,e);
138 }
139 else{
140 fMomentum->SetPxPyPzE(px,py,pz,e);
141 }
142}
a19f293d 143
144Double_t AliAODJet::DeltaR(const AliVParticle* part){
145
146 // Helper function to calculate the distance between two jets
147 // or a jet and particle
148
149 Double_t dPhi = Phi() - part->Phi();
150 if(dPhi>TMath::Pi())dPhi = dPhi - 2.*TMath::Pi();
151 if(dPhi<(-1.*TMath::Pi()))dPhi = dPhi + 2.*TMath::Pi();
152 Double_t dEta = Eta() - part->Eta();
153 Double_t dR = TMath::Sqrt(dPhi*dPhi+dEta*dEta);
154 return dR;
155}