X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=STEER%2FAliAODJet.cxx;h=83fc5f57d1c0ee8bbd411977839718d7954b1a74;hb=cb1cf314de7fb4da6a8f19f0e5b88e973828e9ae;hp=b18fe08c47f5b8f9acac1d0a8172c63a566356b1;hpb=0cd61c1dacd6fc01791faf322f7c16ced1dc6451;p=u%2Fmrichter%2FAliRoot.git diff --git a/STEER/AliAODJet.cxx b/STEER/AliAODJet.cxx index b18fe08c47f..83fc5f57d1c 100644 --- a/STEER/AliAODJet.cxx +++ b/STEER/AliAODJet.cxx @@ -29,6 +29,8 @@ ClassImp(AliAODJet) //______________________________________________________________________________ AliAODJet::AliAODJet() : AliVParticle(), + fNeutralFraction(0), + fTrigger(0), fMomentum(0), fRefTracks(new TRefArray()) { @@ -37,10 +39,13 @@ AliAODJet::AliAODJet() : fBackgEnergy[1] = 0.; fEffectiveArea[0] = 0.; fEffectiveArea[1] = 0.; + fEffectiveAreaError[0] = fEffectiveAreaError[1] = 0; } AliAODJet::AliAODJet(Double_t px, Double_t py, Double_t pz, Double_t e): AliVParticle(), + fNeutralFraction(0), + fTrigger(0), fMomentum(0), fRefTracks(new TRefArray()) { @@ -48,12 +53,15 @@ AliAODJet::AliAODJet(Double_t px, Double_t py, Double_t pz, Double_t e): fBackgEnergy[0] = 0.; fBackgEnergy[1] = 0.; fEffectiveArea[0] = 0.; - fEffectiveArea[1] = 0.; + fEffectiveArea[1] = 0.; + fEffectiveAreaError[0] = fEffectiveAreaError[1] = 0; fMomentum = new TLorentzVector(px, py, pz, e); } AliAODJet::AliAODJet(TLorentzVector & p): AliVParticle(), + fNeutralFraction(0), + fTrigger(0), fMomentum(0), fRefTracks(new TRefArray()) { @@ -61,7 +69,8 @@ AliAODJet::AliAODJet(TLorentzVector & p): fBackgEnergy[0] = 0.; fBackgEnergy[1] = 0.; fEffectiveArea[0] = 0.; - fEffectiveArea[1] = 0.; + fEffectiveArea[1] = 0.; + fEffectiveAreaError[0] = fEffectiveAreaError[1] = 0; fMomentum = new TLorentzVector(p); } @@ -77,6 +86,8 @@ AliAODJet::~AliAODJet() //______________________________________________________________________________ AliAODJet::AliAODJet(const AliAODJet& jet) : AliVParticle(jet), + fNeutralFraction(jet.fNeutralFraction), + fTrigger(jet.fTrigger), fMomentum(0), fRefTracks(0) { @@ -85,7 +96,8 @@ AliAODJet::AliAODJet(const AliAODJet& jet) : fBackgEnergy[1] = jet.fBackgEnergy[1]; fEffectiveArea[0] = jet.fEffectiveArea[0]; fEffectiveArea[1] = jet.fEffectiveArea[1]; - + fEffectiveAreaError[0] = jet.fEffectiveAreaError[0]; + fEffectiveAreaError[1] = jet.fEffectiveAreaError[1]; fMomentum = new TLorentzVector(*jet.fMomentum); fRefTracks = new TRefArray(*jet.fRefTracks); } @@ -100,7 +112,10 @@ AliAODJet& AliAODJet::operator=(const AliAODJet& jet) fBackgEnergy[1] = jet.fBackgEnergy[1]; fEffectiveArea[0] = jet.fEffectiveArea[0]; fEffectiveArea[1] = jet.fEffectiveArea[1]; - + fEffectiveAreaError[0] = jet.fEffectiveAreaError[0]; + fEffectiveAreaError[1] = jet.fEffectiveAreaError[1]; + fNeutralFraction = jet.fNeutralFraction; + fTrigger = jet.fTrigger; delete fMomentum; fMomentum = new TLorentzVector(*jet.fMomentum); delete fRefTracks; @@ -126,3 +141,41 @@ void AliAODJet::Print(Option_t* /*option*/) const 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; +} + + +void AliAODJet::AddTrack(TObject *tr) { + // Add a track to the list of referenced tracks + if (fRefTracks->GetEntries() == 0) { + new(fRefTracks) TRefArray(TProcessID::GetProcessWithUID(tr)); + } + + fRefTracks->Add(tr); +} +