else return IsPileupFromSPD(5,0.8);
}
+Float_t AliAODEvent::GetVZEROEqMultiplicity(Int_t i) const
+{
+ // Get VZERO Multiplicity for channel i
+ // Themethod uses the equalization factors
+ // stored in the ESD-run object in order to
+ // get equal multiplicities within a VZERO rins (1/8 of VZERO)
+ if (!fAODVZERO || !fHeader) return -1;
+
+ Int_t ring = i/8;
+ Float_t factorSum = 0;
+ for(Int_t j = 8*ring; j < (8*ring+8); ++j) {
+ factorSum += fHeader->GetVZEROEqFactors(j);
+ }
+ Float_t factor = fHeader->GetVZEROEqFactors(i)*8./factorSum;
+
+ return (fAODVZERO->GetMultiplicity(i)/factor);
+}
// VZERO
AliAODVZERO *GetVZEROData() const { return fAODVZERO; }
+ virtual const Float_t* GetVZEROEqFactors() const {return fHeader?fHeader->GetVZEROEqFactors():0x0;}
+ virtual Float_t GetVZEROEqMultiplicity(Int_t i) const;
+ void SetVZEROEqFactors(const Float_t *factors) const {
+ if(fHeader && factors)
+ fHeader->SetVZEROEqFactors(factors);}
//ZDC
AliAODZDC *GetZDCData() const { return fAODZDC; }
static const char* fAODListName[kAODListN]; //!
- ClassDef(AliAODEvent,87);
+ ClassDef(AliAODEvent,88);
};
#endif
for (Int_t m=0; m<kNPHOSMatrix; m++) fPHOSMatrix[m]=NULL;
for (Int_t sm=0; sm<kNEMCALMatrix; sm++) fEMCALMatrix[sm]=NULL;
for (Int_t i = 0; i < 6; i++) fITSClusters[i] = 0;
+ for (Int_t j=0; j<64; ++j) fVZEROEqFactors[j]=-1;
}
//______________________________________________________________________________
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;
+ for (Int_t j=0; j<64; ++j) fVZEROEqFactors[j]=-1;
}
//______________________________________________________________________________
ULong64_t trigMask,
UChar_t trigClus,
UInt_t evttype,
+ const Float_t *vzeroEqFactors,
const Char_t *title,
Int_t nMuons,
Int_t nDimuons) :
for (Int_t m=0; m<kNPHOSMatrix; m++) fPHOSMatrix[m]=NULL;
for (Int_t sm=0; sm<kNEMCALMatrix; sm++) fEMCALMatrix[sm]=NULL;
for (Int_t i = 0; i < 6; i++) fITSClusters[i] = 0;
+ if (vzeroEqFactors) for (Int_t j=0; j<64; ++j) fVZEROEqFactors[j] = vzeroEqFactors[j];
}
//______________________________________________________________________________
fEMCALMatrix[sm]=0;
}
for (Int_t i = 0; i < 6; i++) fITSClusters[i] = hdr.fITSClusters[i];
+ for (Int_t j=0; j<64; ++j) fVZEROEqFactors[j]=hdr.fVZEROEqFactors[j];
}
//______________________________________________________________________________
}
for (Int_t i = 0; i < 6; i++) fITSClusters[i] = hdr.fITSClusters[i];
+ for (Int_t j=0; j<64; ++j) fVZEROEqFactors[j] = hdr.fVZEROEqFactors[j];
return *this;
}
printf("QTheta[%d] : %13.3e\n", i, GetQTheta(i));
}
}
+ printf("V0 Eq factors: ");
+ for (Int_t j=0; j<64; ++j) printf(" %.3f",fVZEROEqFactors[j]);
+ printf("\n");
return;
}
ULong64_t fTriggerMask,
UChar_t fTriggerCluster,
UInt_t fEventType,
+ const Float_t *vzeroEqFactors,
const Char_t *title="",
Int_t nMuons=0,
Int_t nDimuons=0);
void Clear(Option_t* = "");
enum {kNPHOSMatrix = 5};
enum {kNEMCALMatrix = 12};
+
+ void SetVZEROEqFactors(const Float_t* factors) {
+ if (factors)
+ for (Int_t i = 0; i < 64; ++i) fVZEROEqFactors[i] = factors[i];}
+ const Float_t* GetVZEROEqFactors() const {return fVZEROEqFactors;}
+ Float_t GetVZEROEqFactors(Int_t i) const {return fVZEROEqFactors[i];}
private :
Int_t fTPConlyRefMult; // Reference multiplicty for standard TPC only tracks
AliCentrality* fCentralityP; // Pointer to full centrality information
AliEventplane* fEventplaneP; // Pointer to full event plane information
- ClassDef(AliAODHeader, 16);
+ Float_t fVZEROEqFactors[64]; // V0 channel equalization factors for event-plane reconstruction
+ ClassDef(AliAODHeader, 17);
};
inline
void AliAODHeader::SetCentrality(AliCentrality* cent) {
const TGeoHMatrix* GetEMCALMatrix(Int_t i) const {return fESDRun?fESDRun->GetEMCALMatrix(i):0x0;}
void SetCaloTriggerType(const Int_t* type) {if (fESDRun) fESDRun->SetCaloTriggerType(type);}
Int_t* GetCaloTriggerType() const {return fESDRun?fESDRun->GetCaloTriggerType():0x0;}
- const Float_t* GetVZEROEqFactors() const {return fESDRun?fESDRun->GetVZEROEqFactors():0x0;}
- Float_t GetVZEROEqMultiplicity(Int_t i) const;
+ virtual const Float_t* GetVZEROEqFactors() const {return fESDRun?fESDRun->GetVZEROEqFactors():0x0;}
+ virtual Float_t GetVZEROEqMultiplicity(Int_t i) const;
//
void SetCurrentL3(Float_t cur) const {if(fESDRun) fESDRun->SetCurrentL3(cur);}
// and T0spread as written in OCDB
AliCentrality *fCentrality; //! Centrality for AA collision
AliEventplane *fEventplane; //! Event plane for AA collision
- ClassDef(AliESDEvent,15) //ESDEvent class
+ ClassDef(AliESDEvent,16) //ESDEvent class
};
#endif
virtual Int_t EventIndexForEMCALCell(Int_t icell) const = 0;
virtual AliVVZERO *GetVZEROData() const = 0;
+ virtual const Float_t* GetVZEROEqFactors() const {return NULL;}
+ virtual Float_t GetVZEROEqMultiplicity(Int_t /* i */) const {return -1;}
virtual AliVZDC *GetZDCData() const = 0;
- ClassDef(AliVEvent,1) // base class for AliEvent data
+ ClassDef(AliVEvent,2) // base class for AliEvent data
};
#endif