- Three classes by MinJung Kweon AliHFEpriVtx, AliHFEsecVtx and AliHFEmcQA for primar...
[u/mrichter/AliRoot.git] / STEER / AliESDRun.cxx
index 707abb5..2c7e281 100644 (file)
@@ -37,7 +37,8 @@ AliESDRun::AliESDRun() :
   fTriggerClasses(kNTriggerClasses)
 {
   for (Int_t i=0; i<2; i++) fDiamondXY[i]=0.;
-  for (Int_t i=0; i<3; i++) fDiamondCovXY[i]=0.;
+  fDiamondCovXY[0]=fDiamondCovXY[2]=3.*3.;
+  fDiamondCovXY[1]=0.;
   fTriggerClasses.SetOwner(kTRUE);
 }
 
@@ -67,20 +68,34 @@ AliESDRun& AliESDRun::operator=(const AliESDRun &esd)
   if(this!=&esd) {
     TObject::operator=(esd);
     fRunNumber=esd.fRunNumber;
-    fPeriodNumber=esd.fPeriodNumber;
-    fRecoVersion=esd.fRecoVersion;
-    fMagneticField=esd.fMagneticField;
-    for (Int_t i=0; i<2; i++) fDiamondXY[i]=esd.fDiamondXY[i];
-    for (Int_t i=0; i<3; i++) fDiamondCovXY[i]=esd.fDiamondCovXY[i];
-    fTriggerClasses.Clear();
-    for(Int_t i = 0; i < kNTriggerClasses; i++) {
-      TNamed *str = (TNamed *)((esd.fTriggerClasses).At(i));
-      if (str) fTriggerClasses.AddAt(new TNamed(*str),i);
-    }
+  fPeriodNumber=esd.fPeriodNumber;
+  fRecoVersion=esd.fRecoVersion;
+  fMagneticField=esd.fMagneticField;
+  for (Int_t i=0; i<2; i++) fDiamondXY[i]=esd.fDiamondXY[i];
+  for (Int_t i=0; i<3; i++) fDiamondCovXY[i]=esd.fDiamondCovXY[i];
+  fTriggerClasses.Clear();
+  for(Int_t i = 0; i < kNTriggerClasses; i++) {
+    TNamed *str = (TNamed *)((esd.fTriggerClasses).At(i));
+    if (str) fTriggerClasses.AddAt(new TNamed(*str),i);
+  }
+    
   } 
   return *this;
 }
 
+void AliESDRun::Copy(TObject &obj) const{
+
+  // this overwrites the virtual TOBject::Copy()
+  // to allow run time copying without casting
+  // in AliESDEvent
+
+  if(this==&obj)return;
+  AliESDRun *robj = dynamic_cast<AliESDRun*>(&obj);
+  if(!robj)return; // not an aliesdrun
+  *robj = *this;
+
+}
+
 void AliESDRun::SetDiamond(const AliESDVertex *vertex) {
   // set the interaction diamond
   fDiamondXY[0]=vertex->GetXv();
@@ -119,7 +134,8 @@ void AliESDRun::Reset()
   fRecoVersion = 0;
   fMagneticField = 0;
   for (Int_t i=0; i<2; i++) fDiamondXY[i]=0.;
-  for (Int_t i=0; i<3; i++) fDiamondCovXY[i]=0.;
+  fDiamondCovXY[0]=fDiamondCovXY[2]=3.*3.;
+  fDiamondCovXY[1]=0.;
   fTriggerClasses.Clear();
 }