fRefTracks(new TRefArray())
{
// constructor
- fMomentum = new TLorentzVector(px, py, pz, e);
fBackgEnergy[0] = 0.;
fBackgEnergy[1] = 0.;
fEffectiveArea[0] = 0.;
fEffectiveArea[1] = 0.;
+ fMomentum = new TLorentzVector(px, py, pz, e);
}
AliAODJet::AliAODJet(TLorentzVector & p):
fRefTracks(new TRefArray())
{
// constructor
- fMomentum = new TLorentzVector(p);
fBackgEnergy[0] = 0.;
fBackgEnergy[1] = 0.;
fEffectiveArea[0] = 0.;
fEffectiveArea[1] = 0.;
+ fMomentum = new TLorentzVector(p);
}
//______________________________________________________________________________
AliAODJet::AliAODJet(const AliAODJet& jet) :
AliVParticle(jet),
- fMomentum(0)
+ fMomentum(0),
+ fRefTracks(0)
{
// Copy constructor
- fMomentum = new TLorentzVector(*jet.fMomentum);
- fRefTracks = new TRefArray(*jet.fRefTracks);
fBackgEnergy[0] = jet.fBackgEnergy[0];
fBackgEnergy[1] = jet.fBackgEnergy[1];
fEffectiveArea[0] = jet.fEffectiveArea[0];
fEffectiveArea[1] = jet.fEffectiveArea[1];
+
+ fMomentum = new TLorentzVector(*jet.fMomentum);
+ fRefTracks = new TRefArray(*jet.fRefTracks);
}
//______________________________________________________________________________
{
// Assignment operator
if(this!=&jet) {
+
+ fBackgEnergy[0] = jet.fBackgEnergy[0];
+ fBackgEnergy[1] = jet.fBackgEnergy[1];
+ fEffectiveArea[0] = jet.fEffectiveArea[0];
+ fEffectiveArea[1] = jet.fEffectiveArea[1];
+
+ delete fMomentum;
+ fMomentum = new TLorentzVector(*jet.fMomentum);
+ delete fRefTracks;
+ fRefTracks = new TRefArray(*jet.fRefTracks);
}
return *this;
printf("Charged: %13.3f\n", EffectiveAreaCharged());
printf("Neutral: %13.3f\n", EffectiveAreaNeutral());
}
+
+void AliAODJet::SetPxPyPzE(Double_t px, Double_t py, Double_t pz, Double_t e){
+ //
+ // Set the four Momentum from outside
+ // MomentumVector()->SetPxPyPzE() cannot be used since pointer can be 0x0
+ //
+
+ if(!fMomentum){
+ fMomentum = new TLorentzVector(px,py,pz,e);
+ }
+ else{
+ fMomentum->SetPxPyPzE(px,py,pz,e);
+ }
+}
+
+Double_t AliAODJet::DeltaR(const AliVParticle* part){
+
+ // Helper function to calculate the distance between two jets
+ // or a jet and particle
+
+ Double_t dPhi = Phi() - part->Phi();
+ if(dPhi>TMath::Pi())dPhi = dPhi - 2.*TMath::Pi();
+ if(dPhi<(-1.*TMath::Pi()))dPhi = dPhi + 2.*TMath::Pi();
+ Double_t dEta = Eta() - part->Eta();
+ Double_t dR = TMath::Sqrt(dPhi*dPhi+dEta*dEta);
+ return dR;
+}
+
+
+Int_t AliAODJet::Compare( const TObject* obj) const {
+
+ //
+ // see header file for class documentation
+ //
+
+ if (this == obj)
+ return 0;
+ // check type
+ if ( Pt() < ((AliAODJet*)(obj))->Pt())
+ return 1;
+ else
+ return -1;
+}
+