]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliESDCaloTrigger.cxx
make jet event background tnamed, add reset
[u/mrichter/AliRoot.git] / STEER / AliESDCaloTrigger.cxx
index d0ec92ce6956fd801212ca95e7b4f8d80db83a16..d3a8269c8b23a12ea71262af0d9deaa8012c0e1b 100644 (file)
@@ -50,24 +50,43 @@ AliESDCaloTrigger& AliESDCaloTrigger::operator=(const AliESDCaloTrigger& ctrig)
   // 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