]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliAODHeader.cxx
Updated task list
[u/mrichter/AliRoot.git] / STEER / AliAODHeader.cxx
index 077d9068a4a77148fb74e6e47091feadcc46b8b2..e69585c3aac4b9531128828200b8d68ceea6a0eb 100644 (file)
@@ -34,7 +34,8 @@ AliAODHeader::AliAODHeader() :
   fZDCP1Energy(-999.),
   fZDCN2Energy(-999.),
   fZDCP2Energy(-999.),
-  fZDCEMEnergy(-999.),
+  fNQTheta(0),
+  fQTheta(0x0),
   fTriggerMask(0),
   fRunNumber(-999),  
   fRefMult(-999),
@@ -49,6 +50,10 @@ AliAODHeader::AliAODHeader() :
   // 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.;
 }
 
 //______________________________________________________________________________
@@ -56,7 +61,7 @@ AliAODHeader::AliAODHeader(Int_t nRun,
                           UShort_t nBunchX,
                           UInt_t nOrbit,
                           UInt_t nPeriod,
-                          Char_t *title) :
+                          const Char_t *title) :
   AliVHeader(),
   fMagneticField(-999.),
   fMuonMagFieldScale(-999.),
@@ -65,9 +70,10 @@ AliAODHeader::AliAODHeader(Int_t nRun,
   fZDCP1Energy(-999.),
   fZDCN2Energy(-999.),
   fZDCP2Energy(-999.),
-  fZDCEMEnergy(-999.),
+  fNQTheta(0),
+  fQTheta(0x0),
   fTriggerMask(0),
-   fRunNumber(nRun),
+  fRunNumber(nRun),
   fRefMult(-999),
   fRefMultPos(-999),
   fRefMultNeg(-999),
@@ -81,6 +87,10 @@ AliAODHeader::AliAODHeader(Int_t nRun,
 
   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.;
 }
 
 //______________________________________________________________________________
@@ -98,11 +108,11 @@ AliAODHeader::AliAODHeader(Int_t nRun,
                           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),
@@ -111,7 +121,8 @@ AliAODHeader::AliAODHeader(Int_t nRun,
   fZDCP1Energy(p1Energy),
   fZDCN2Energy(n2Energy),
   fZDCP2Energy(p2Energy),
-  fZDCEMEnergy(emEnergy),
+  fNQTheta(0),
+  fQTheta(0x0),
   fTriggerMask(trigMask),
   fRunNumber(nRun),  
   fRefMult(refMult),
@@ -127,12 +138,18 @@ AliAODHeader::AliAODHeader(Int_t nRun,
 
   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.;
 }
 
 //______________________________________________________________________________
 AliAODHeader::~AliAODHeader() 
 {
   // destructor
+  
+  RemoveQTheta();
 }
 
 //______________________________________________________________________________
@@ -145,7 +162,8 @@ AliAODHeader::AliAODHeader(const AliAODHeader& hdr) :
   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), 
@@ -161,6 +179,10 @@ AliAODHeader::AliAODHeader(const AliAODHeader& hdr) :
   
   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];
 }
 
 //______________________________________________________________________________
@@ -178,7 +200,6 @@ AliAODHeader& AliAODHeader::operator=(const AliAODHeader& hdr)
     fZDCP1Energy      = hdr.fZDCP1Energy;
     fZDCN2Energy      = hdr.fZDCN2Energy;
     fZDCP2Energy      = hdr.fZDCP2Energy;
-    fZDCEMEnergy      = hdr.fZDCEMEnergy;
     fTriggerMask      = hdr.fTriggerMask;
     fRunNumber        = hdr.fRunNumber;
     fRefMult          = hdr.fRefMult;
@@ -189,14 +210,59 @@ AliAODHeader& AliAODHeader::operator=(const AliAODHeader& hdr)
     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];
   }
 
-  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 
 {
@@ -217,9 +283,17 @@ 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;
 }