//-------------------------------------------------------------------------
#include "AliAODHeader.h"
+#include <TGeoMatrix.h>
ClassImp(AliAODHeader)
fZDCP1Energy(-999.),
fZDCN2Energy(-999.),
fZDCP2Energy(-999.),
- fZDCEMEnergy(-999.),
+ fNQTheta(0),
+ fQTheta(0x0),
fTriggerMask(0),
fRunNumber(-999),
fRefMult(-999),
// default constructor
SetName("header");
+ for(int j=0; j<2; j++) fZDCEMEnergy[j] = -999.;
+ for(Int_t i=0; i<2; i++) fDiamondXY[i]=0.;
+ fDiamondCovXY[0]=fDiamondCovXY[2]=3.*3.;
+ fDiamondCovXY[1]=0.;
+ for (Int_t m=0; m<kNPHOSMatrix; m++) fPHOSMatrix[m]=NULL;
+ for (Int_t sm=0; sm<kNEMCALMatrix; sm++) fEMCALMatrix[sm]=NULL;
}
//______________________________________________________________________________
UShort_t nBunchX,
UInt_t nOrbit,
UInt_t nPeriod,
- Char_t *title) :
+ const Char_t *title) :
AliVHeader(),
fMagneticField(-999.),
fMuonMagFieldScale(-999.),
fZDCP1Energy(-999.),
fZDCN2Energy(-999.),
fZDCP2Energy(-999.),
- fZDCEMEnergy(-999.),
+ fNQTheta(0),
+ fQTheta(0x0),
fTriggerMask(0),
- fRunNumber(nRun),
+ fRunNumber(nRun),
fRefMult(-999),
fRefMultPos(-999),
fRefMultNeg(-999),
SetName("header");
SetTitle(title);
+ for(int j=0; j<2; j++) fZDCEMEnergy[j] = -999.;
+ for(Int_t i=0; i<2; i++) fDiamondXY[i]=0.;
+ fDiamondCovXY[0]=fDiamondCovXY[2]=3.*3.;
+ fDiamondCovXY[1]=0.;
+ for (Int_t m=0; m<kNPHOSMatrix; m++) fPHOSMatrix[m]=NULL;
+ for (Int_t sm=0; sm<kNEMCALMatrix; sm++) fEMCALMatrix[sm]=NULL;
}
//______________________________________________________________________________
Double_t p1Energy,
Double_t n2Energy,
Double_t p2Energy,
- Double_t emEnergy,
+ Double_t *emEnergy,
ULong64_t trigMask,
UChar_t trigClus,
UInt_t evttype,
- Char_t *title) :
+ const Char_t *title) :
AliVHeader(),
fMagneticField(magField),
fMuonMagFieldScale(muonMagFieldScale),
fZDCP1Energy(p1Energy),
fZDCN2Energy(n2Energy),
fZDCP2Energy(p2Energy),
- fZDCEMEnergy(emEnergy),
+ fNQTheta(0),
+ fQTheta(0x0),
fTriggerMask(trigMask),
fRunNumber(nRun),
fRefMult(refMult),
SetName("header");
SetTitle(title);
+ for(int j=0; j<2; j++) fZDCEMEnergy[j] = emEnergy[j];
+ for(Int_t i=0; i<2; i++) fDiamondXY[i]=0.;
+ fDiamondCovXY[0]=fDiamondCovXY[2]=3.*3.;
+ fDiamondCovXY[1]=0.;
+ for (Int_t m=0; m<kNPHOSMatrix; m++) fPHOSMatrix[m]=NULL;
+ for (Int_t sm=0; sm<kNEMCALMatrix; sm++) fEMCALMatrix[sm]=NULL;
}
//______________________________________________________________________________
AliAODHeader::~AliAODHeader()
{
// destructor
+
+ RemoveQTheta();
}
//______________________________________________________________________________
fZDCP1Energy(hdr.fZDCP1Energy),
fZDCN2Energy(hdr.fZDCN2Energy),
fZDCP2Energy(hdr.fZDCP2Energy),
- fZDCEMEnergy(hdr.fZDCEMEnergy),
+ fNQTheta(0),
+ fQTheta(0x0),
fTriggerMask(hdr.fTriggerMask),
fRunNumber(hdr.fRunNumber),
fRefMult(hdr.fRefMult),
SetName(hdr.fName);
SetTitle(hdr.fTitle);
+ SetQTheta(hdr.fQTheta, hdr.fNQTheta);
+ SetZDCEMEnergy(hdr.fZDCEMEnergy[0], hdr.fZDCEMEnergy[1]);
+ for(Int_t i=0; i<2; i++) fDiamondXY[i]=hdr.fDiamondXY[i];
+ for(Int_t i=0; i<3; i++) fDiamondCovXY[i]=hdr.fDiamondCovXY[i];
+
+
+ for(Int_t m=0; m<kNPHOSMatrix; m++){
+ if(hdr.fPHOSMatrix[m])
+ fPHOSMatrix[m]=new TGeoHMatrix(*(hdr.fPHOSMatrix[m])) ;
+ else
+ fPHOSMatrix[m]=0;
+ }
+
+ for(Int_t sm=0; sm<kNEMCALMatrix; sm++){
+ if(hdr.fEMCALMatrix[sm])
+ fEMCALMatrix[sm]=new TGeoHMatrix(*(hdr.fEMCALMatrix[sm])) ;
+ else
+ fEMCALMatrix[sm]=0;
+ }
+
}
//______________________________________________________________________________
fZDCP1Energy = hdr.fZDCP1Energy;
fZDCN2Energy = hdr.fZDCN2Energy;
fZDCP2Energy = hdr.fZDCP2Energy;
- fZDCEMEnergy = hdr.fZDCEMEnergy;
fTriggerMask = hdr.fTriggerMask;
fRunNumber = hdr.fRunNumber;
fRefMult = hdr.fRefMult;
fPeriodNumber = hdr.fPeriodNumber;
fBunchCrossNumber = hdr.fBunchCrossNumber;
fTriggerCluster = hdr.fTriggerCluster;
+
+ SetName(hdr.fName);
+ SetTitle(hdr.fTitle);
+ SetQTheta(hdr.fQTheta, hdr.fNQTheta);
+ SetZDCEMEnergy(hdr.fZDCEMEnergy[0], hdr.fZDCEMEnergy[1]);
+ for(Int_t i=0; i<2; i++) fDiamondXY[i]=hdr.fDiamondXY[i];
+ for(Int_t i=0; i<3; i++) fDiamondCovXY[i]=hdr.fDiamondCovXY[i];
+
+ for(Int_t m=0; m<kNPHOSMatrix; m++){
+ if(hdr.fPHOSMatrix[m])
+ fPHOSMatrix[m]=new TGeoHMatrix(*(hdr.fPHOSMatrix[m])) ;
+ else
+ fPHOSMatrix[m]=0;
+ }
+
+ for(Int_t sm=0; sm<kNEMCALMatrix; sm++){
+ if(hdr.fEMCALMatrix[sm])
+ fEMCALMatrix[sm]=new TGeoHMatrix(*(hdr.fEMCALMatrix[sm])) ;
+ else
+ fEMCALMatrix[sm]=0;
+ }
+
}
- SetName(hdr.fName);
- SetTitle(hdr.fTitle);
return *this;
}
+//______________________________________________________________________________
+void AliAODHeader::SetQTheta(Double_t *QTheta, UInt_t size)
+{
+ if (QTheta && size>0) {
+ if (size != (UInt_t)fNQTheta) {
+ RemoveQTheta();
+ fNQTheta = size;
+ fQTheta = new Double_t[fNQTheta];
+ }
+
+ for (Int_t i = 0; i < fNQTheta; i++) {
+ fQTheta[i] = QTheta[i];
+ }
+ } else {
+ RemoveQTheta();
+ }
+
+ return;
+}
+
+//______________________________________________________________________________
+Double_t AliAODHeader::GetQTheta(UInt_t i) const
+{
+ if (fQTheta && i < (UInt_t)fNQTheta) {
+ return fQTheta[i];
+ } else {
+ return -999.;
+ }
+}
+
+//______________________________________________________________________________
+void AliAODHeader::RemoveQTheta()
+{
+ delete[] fQTheta;
+ fQTheta = 0x0;
+ fNQTheta = 0;
+
+ return;
+}
+
//______________________________________________________________________________
void AliAODHeader::Print(Option_t* /*option*/) const
{
printf("ZDC P1 Energy : %f\n", fZDCP1Energy);
printf("ZDC N2 Energy : %f\n", fZDCN2Energy);
printf("ZDC P2 Energy : %f\n", fZDCP2Energy);
- printf("ZDC EM Energy : %f\n", fZDCEMEnergy);
+ printf("ZDC EM1 Energy : %f\n", fZDCEMEnergy[0]);
+ printf("ZDC EM2 Energy : %f\n", fZDCEMEnergy[1]);
printf("ref. Multiplicity : %d\n", fRefMult);
printf("ref. Multiplicity (pos) : %d\n", fRefMultPos);
printf("ref. Multiplicity (neg) : %d\n", fRefMultNeg);
+ if (fQTheta) {
+ for (UInt_t i = 0; i<(UInt_t)fNQTheta; i++) {
+ printf("QTheta[%d] : %13.3e\n", i, GetQTheta(i));
+ }
+ }
+
+ return;
}