* provided "as is" without express or implied warranty. *
**************************************************************************/
#include <TNamed.h>
+#include <TGeoMatrix.h>
#include "AliESDRun.h"
#include "AliESDVertex.h"
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);
+ for (Int_t m=0; m<kNPHOSMatrix; m++) fPHOSMatrix[m]=NULL;
+ for (Int_t sm=0; sm<kNEMCALMatrix; sm++) fEMCALMatrix[sm]=NULL;
}
//______________________________________________________________________________
TNamed *str = (TNamed *)((esd.fTriggerClasses).At(i));
if (str) fTriggerClasses.AddAt(new TNamed(*str),i);
}
+
+ for(Int_t m=0; m<kNPHOSMatrix; m++){
+ if(esd.fPHOSMatrix[m])
+ fPHOSMatrix[m]=new TGeoHMatrix(*(esd.fPHOSMatrix[m])) ;
+ else
+ fPHOSMatrix[m]=NULL;
+ }
+
+ for(Int_t sm=0; sm<kNEMCALMatrix; sm++){
+ if(esd.fEMCALMatrix[sm])
+ fEMCALMatrix[sm]=new TGeoHMatrix(*(esd.fEMCALMatrix[sm])) ;
+ else
+ fEMCALMatrix[sm]=NULL;
+ }
}
//______________________________________________________________________________
TNamed *str = (TNamed *)((esd.fTriggerClasses).At(i));
if (str) fTriggerClasses.AddAt(new TNamed(*str),i);
}
+
+ for(Int_t m=0; m<kNPHOSMatrix; m++){
+ if(esd.fPHOSMatrix[m])
+ fPHOSMatrix[m]=new TGeoHMatrix(*(esd.fPHOSMatrix[m])) ;
+ else
+ fPHOSMatrix[m]=0;
+ }
+
+ for(Int_t sm=0; sm<kNEMCALMatrix; sm++){
+ if(esd.fEMCALMatrix[sm])
+ fEMCALMatrix[sm]=new TGeoHMatrix(*(esd.fEMCALMatrix[sm])) ;
+ else
+ fEMCALMatrix[sm]=0;
+ }
}
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;
+
+}
+
+//______________________________________________________________________________
+AliESDRun::~AliESDRun() {
+ // Destructor
+ // Delete PHOS position matrices
+ for(Int_t m=0; m<kNPHOSMatrix; m++) {
+ if(fPHOSMatrix[m]) delete fPHOSMatrix[m] ;
+ fPHOSMatrix[m] = NULL;
+ }
+ // Delete PHOS position matrices
+ for(Int_t sm=0; sm<kNEMCALMatrix; sm++) {
+ if(fEMCALMatrix[sm]) delete fEMCALMatrix[sm] ;
+ fEMCALMatrix[sm] = NULL;
+ }
+}
+
void AliESDRun::SetDiamond(const AliESDVertex *vertex) {
// set the interaction diamond
fDiamondXY[0]=vertex->GetXv();
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();
}
// class mask as an argument.
TString trclasses;
for(Int_t i = 0; i < kNTriggerClasses; i++) {
- if (mask && (1 << i)) {
+ if (mask & (1 << i)) {
TNamed *str = (TNamed *)((fTriggerClasses).At(i));
if (str) {
trclasses += " ";
Int_t iclass = fTriggerClasses.IndexOf(trclass);
if (iclass < 0) return kFALSE;
- if (mask && (1 << iclass))
+ if (mask & (1 << iclass))
return kTRUE;
else
return kFALSE;