fZDCN2Energy(-999.),
fZDCP2Energy(-999.),
fZDCEMEnergy(-999.),
+ fNQTheta(0),
+ fQTheta(0x0),
fTriggerMask(0),
fRunNumber(-999),
fRefMult(-999),
fZDCN2Energy(-999.),
fZDCP2Energy(-999.),
fZDCEMEnergy(-999.),
+ fNQTheta(0),
+ fQTheta(0x0),
fTriggerMask(0),
- fRunNumber(nRun),
+ fRunNumber(nRun),
fRefMult(-999),
fRefMultPos(-999),
fRefMultNeg(-999),
fZDCN2Energy(n2Energy),
fZDCP2Energy(p2Energy),
fZDCEMEnergy(emEnergy),
+ fNQTheta(0),
+ fQTheta(0x0),
fTriggerMask(trigMask),
fRunNumber(nRun),
fRefMult(refMult),
AliAODHeader::~AliAODHeader()
{
// destructor
+
+ RemoveQTheta();
}
//______________________________________________________________________________
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);
}
//______________________________________________________________________________
fPeriodNumber = hdr.fPeriodNumber;
fBunchCrossNumber = hdr.fBunchCrossNumber;
fTriggerCluster = hdr.fTriggerCluster;
+
+ SetName(hdr.fName);
+ SetTitle(hdr.fTitle);
+ SetQTheta(hdr.fQTheta, hdr.fNQTheta);
}
- 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("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] : %d\n", i, GetQTheta(i));
+ }
+ }
+
+ return;
}
Int_t GetRefMultiplicity() const { return fRefMult; }
Int_t GetRefMultiplicityPos() const { return fRefMultPos; }
Int_t GetRefMultiplicityNeg() const { return fRefMultNeg; }
+
+ Double_t GetQTheta(UInt_t i) const;
+ UInt_t GetNQTheta() const { return (UInt_t)fNQTheta; }
void SetRunNumber(Int_t nRun) { fRunNumber = nRun; }
void SetBunchCrossNumber(UShort_t nBx) { fBunchCrossNumber = nBx; }
void SetRefMultiplicityPos(Int_t refMultPos) { fRefMultPos = refMultPos; }
void SetRefMultiplicityNeg(Int_t refMultNeg) { fRefMultNeg = refMultNeg; }
+ void SetQTheta(Double_t *QTheta, UInt_t size = 5);
+ void RemoveQTheta();
+
void Print(Option_t* option = "") const;
Double32_t fZDCN2Energy; // reconstructed energy in the neutron2 ZDC
Double32_t fZDCP2Energy; // reconstructed energy in the proton2 ZDC
Double32_t fZDCEMEnergy; // reconstructed energy in the electromagnetic ZDC
+ Int_t fNQTheta; // number of QTheta elements
+ Double32_t *fQTheta; // [fNQTheta] values to store Lee-Yang-Zeros
ULong64_t fTriggerMask; // Trigger Type (mask)
Int_t fRunNumber; // Run Number
Int_t fRefMult; // reference multiplicity