fNeutralFraction(0),
fTrigger(0),
fMomentum(0),
+ fVectorAreaCharged(0),
fRefTracks(new TRefArray())
{
// constructor
fNeutralFraction(0),
fTrigger(0),
fMomentum(0),
+ fVectorAreaCharged(0),
fRefTracks(new TRefArray())
{
// constructor
fNeutralFraction(0),
fTrigger(0),
fMomentum(0),
+ fVectorAreaCharged(0),
fRefTracks(new TRefArray())
{
// constructor
{
// destructor
delete fMomentum;
+ delete fVectorAreaCharged;
delete fRefTracks;
}
fNeutralFraction(jet.fNeutralFraction),
fTrigger(jet.fTrigger),
fMomentum(0),
+ fVectorAreaCharged(0),
fRefTracks(0)
{
// Copy constructor
fEffectiveArea[1] = jet.fEffectiveArea[1];
fEffectiveAreaError[0] = jet.fEffectiveAreaError[0];
fEffectiveAreaError[1] = jet.fEffectiveAreaError[1];
- fMomentum = new TLorentzVector(*jet.fMomentum);
+ if(jet.fMomentum)fMomentum = new TLorentzVector(*jet.fMomentum);
+ if(jet.fVectorAreaCharged)fVectorAreaCharged = new TLorentzVector(*jet.fVectorAreaCharged);
fRefTracks = new TRefArray(*jet.fRefTracks);
}
fEffectiveAreaError[1] = jet.fEffectiveAreaError[1];
fNeutralFraction = jet.fNeutralFraction;
fTrigger = jet.fTrigger;
- delete fMomentum;
- fMomentum = new TLorentzVector(*jet.fMomentum);
+
+
+ if(jet.fMomentum){
+ if(fMomentum)*fMomentum = *jet.fMomentum;
+ else fMomentum = new TLorentzVector(*jet.fMomentum);
+ }
+
+ if(jet.fVectorAreaCharged){
+ if(fVectorAreaCharged)*fVectorAreaCharged = *jet.fVectorAreaCharged;
+ else fVectorAreaCharged = new TLorentzVector(*jet.fVectorAreaCharged);
+ }
delete fRefTracks;
fRefTracks = new TRefArray(*jet.fRefTracks);
}
}
-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;
+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);
}