// assigment operator
if(this!=&ctrig) {
TNamed::operator=(ctrig);
- // CKB dont't want to create leak if fTriggerAmp points to
- // somthing already, use new with placement
- if(fTriggerAmplitudes){
- fTriggerAmplitudes = new(fTriggerAmplitudes) TArrayF(*ctrig.fTriggerAmplitudes);
+ if(ctrig.fTriggerAmplitudes){
+ // asign or copy construct
+ if(fTriggerAmplitudes)*fTriggerAmplitudes = *ctrig.fTriggerAmplitudes;
+ else fTriggerAmplitudes = new TArrayF(*ctrig.fTriggerAmplitudes);
}
else{
- fTriggerAmplitudes = new TArrayF(*ctrig.fTriggerAmplitudes);
+ delete fTriggerAmplitudes;
+ fTriggerAmplitudes = 0;
}
- if(fTriggerPosition){
- fTriggerPosition = new(fTriggerPosition) TArrayF(*ctrig.fTriggerPosition);
+
+ if(ctrig.fTriggerPosition){
+ // asign or copy construct
+ if(fTriggerPosition)*fTriggerPosition = *ctrig.fTriggerPosition;
+ else fTriggerPosition = new TArrayF(*ctrig.fTriggerPosition);
}
else{
- fTriggerPosition = new TArrayF(*ctrig.fTriggerPosition);
+ delete fTriggerPosition;
+ fTriggerPosition = 0;
}
}
return *this;
}
+void AliESDCaloTrigger::Copy(TObject &obj) const {
+
+ // this overwrites the virtual TOBject::Copy()
+ // to allow run time copying without casting
+ // in AliESDEvent
+
+ if(this==&obj)return;
+ AliESDCaloTrigger *robj = dynamic_cast<AliESDCaloTrigger*>(&obj);
+ if(!robj)return; // not an AliESDCaloTrigger
+ *robj = *this;
+
+}
+
+
void AliESDCaloTrigger::Reset()
{
// simple reset