X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=STEER%2FAliAODHeader.h;h=a022ad716bb26a1779b78277ed299942cb61097d;hb=edc9147858b62fbefee4e522b2d4431807ba633e;hp=51b0446312bcdb54d7e1eecc1bc6d6a95d96b4f8;hpb=27346f690e6b1cd6b8a229df92f56a04ccab52ba;p=u%2Fmrichter%2FAliRoot.git diff --git a/STEER/AliAODHeader.h b/STEER/AliAODHeader.h index 51b0446312b..a022ad716bb 100644 --- a/STEER/AliAODHeader.h +++ b/STEER/AliAODHeader.h @@ -12,10 +12,14 @@ #include "AliVHeader.h" #include "AliAODVertex.h" +#include +#include "AliCentrality.h" +#include "AliEventplane.h" class TGeoHMatrix; class TString; + class AliAODHeader : public AliVHeader { public : @@ -32,6 +36,7 @@ class AliAODHeader : public AliVHeader { Double_t magField, Double_t muonMagFieldScale, Double_t cent, + Double_t eventplane, Double_t n1Energy, Double_t p1Energy, Double_t n2Energy, @@ -40,13 +45,16 @@ class AliAODHeader : public AliVHeader { ULong64_t fTriggerMask, UChar_t fTriggerCluster, UInt_t fEventType, - const Char_t *title=""); + const Char_t *title="", + Int_t nMuons=0, + Int_t nDimuons=0); virtual ~AliAODHeader(); AliAODHeader(const AliAODHeader& evt); AliAODHeader& operator=(const AliAODHeader& evt); - - Int_t GetRunNumber() const { return fRunNumber; } + + Int_t GetRunNumber() const { return fRunNumber;} + Int_t GetEventNumberESDFile() const { return fEventNumberESDFile;} UShort_t GetBunchCrossNumber() const { return fBunchCrossNumber; } UInt_t GetOrbitNumber() const { return fOrbitNumber; } UInt_t GetPeriodNumber() const { return fPeriodNumber; } @@ -58,6 +66,7 @@ class AliAODHeader : public AliVHeader { Double_t GetMuonMagFieldScale() const { return fMuonMagFieldScale; } Double_t GetCentrality() const { return fCentrality; } + Double_t GetEventplane() const { return fEventplane; } Double_t GetZDCN1Energy() const { return fZDCN1Energy; } Double_t GetZDCP1Energy() const { return fZDCP1Energy; } Double_t GetZDCN2Energy() const { return fZDCN2Energy; } @@ -66,19 +75,30 @@ class AliAODHeader : public AliVHeader { Int_t GetRefMultiplicity() const { return fRefMult; } Int_t GetRefMultiplicityPos() const { return fRefMultPos; } Int_t GetRefMultiplicityNeg() const { return fRefMultNeg; } + Int_t GetNumberOfMuons() const { return fNMuons; } + Int_t GetNumberOfDimuons() const { return fNDimuons; } Double_t GetQTheta(UInt_t i) const; UInt_t GetNQTheta() const { return (UInt_t)fNQTheta; } Double_t GetDiamondX() const {return fDiamondXY[0];} Double_t GetDiamondY() const {return fDiamondXY[1];} + Double_t GetDiamondZ() const {return fDiamondZ;} Double_t GetSigma2DiamondX() const {return fDiamondCovXY[0];} Double_t GetSigma2DiamondY() const {return fDiamondCovXY[2];} + Double_t GetSigma2DiamondZ() const {return fDiamondSig2Z;} void GetDiamondCovXY(Float_t cov[3]) const { for(Int_t i=0;i<3;i++) cov[i]=fDiamondCovXY[i]; return; } + UInt_t GetL0TriggerInputs() const {return fL0TriggerInputs;} + UInt_t GetL1TriggerInputs() const {return fL1TriggerInputs;} + UShort_t GetL2TriggerInputs() const {return fL2TriggerInputs;} + AliCentrality* GetCentralityP() const { return fCentralityP; } + AliEventplane* GetEventplaneP() const { return fEventplaneP; } + void SetRunNumber(Int_t nRun) { fRunNumber = nRun; } + void SetEventNumberESDFile(Int_t n) { fEventNumberESDFile=n; } void SetBunchCrossNumber(UShort_t nBx) { fBunchCrossNumber = nBx; } void SetOrbitNumber(UInt_t nOr) { fOrbitNumber = nOr; } void SetPeriodNumber(UInt_t nPer) { fPeriodNumber = nPer; } @@ -88,8 +108,8 @@ class AliAODHeader : public AliVHeader { void SetEventType(UInt_t evttype) { fEventType = evttype; } void SetMagneticField(Double_t magFld) { fMagneticField = magFld; } void SetMuonMagFieldScale(Double_t magFldScl){ fMuonMagFieldScale = magFldScl; } - - void SetCentrality(Double_t cent) { fCentrality = cent; } + void SetCentrality(AliCentrality* cent); + void SetEventplane(AliEventplane* eventplane); void SetZDCN1Energy(Double_t n1Energy) { fZDCN1Energy = n1Energy; } void SetZDCP1Energy(Double_t p1Energy) { fZDCP1Energy = p1Energy; } void SetZDCN2Energy(Double_t n2Energy) { fZDCN2Energy = n2Energy; } @@ -99,14 +119,23 @@ class AliAODHeader : public AliVHeader { void SetRefMultiplicity(Int_t refMult) { fRefMult = refMult; } void SetRefMultiplicityPos(Int_t refMultPos) { fRefMultPos = refMultPos; } void SetRefMultiplicityNeg(Int_t refMultNeg) { fRefMultNeg = refMultNeg; } + void SetNumberOfMuons(Int_t nMuons) { fNMuons = nMuons; } + void SetNumberOfDimuons(Int_t nDimuons) { fNDimuons = nDimuons; } void SetQTheta(Double_t *QTheta, UInt_t size = 5); void RemoveQTheta(); void SetDiamond(Float_t xy[2],Float_t cov[3]) { - for(Int_t i=0;i<3;i++) {if(i<2) fDiamondXY[i]=xy[i]; fDiamondCovXY[i]=cov[i];} + for(Int_t i=0;i<3;i++) {fDiamondCovXY[i] = cov[i];} + for(Int_t i=0;i<2;i++) {fDiamondXY[i] = xy[i] ;} } - + void SetDiamondZ(Float_t z, Float_t sig2z){ + fDiamondZ=z; fDiamondSig2Z=sig2z; + } + void SetL0TriggerInputs(UInt_t n) {fL0TriggerInputs=n;} + void SetL1TriggerInputs(UInt_t n) {fL1TriggerInputs=n;} + void SetL2TriggerInputs(UShort_t n) {fL2TriggerInputs=n;} + void SetESDFileName(TString name) {fESDFileName = name;} void Print(Option_t* option = "") const; void SetPHOSMatrix(TGeoHMatrix*matrix, Int_t i) { @@ -123,6 +152,15 @@ class AliAODHeader : public AliVHeader { return ((i >= 0) && (i < kNEMCALMatrix)) ? fEMCALMatrix[i] : NULL; } + UInt_t GetOfflineTrigger() { return fOfflineTrigger; } + void SetOfflineTrigger(UInt_t trigger) { fOfflineTrigger = trigger; } + UInt_t GetNumberOfITSClusters(Int_t ilay) const {return fITSClusters[ilay];} + void SetITSClusters(Int_t ilay, UInt_t nclus); + Int_t GetTPConlyRefMultiplicity() const {return fTPConlyRefMult;} + void SetTPConlyRefMultiplicity(Int_t mult) {fTPConlyRefMult = mult;} + + TString GetESDFileName() const {return fESDFileName;} + void Clear(Option_t* = ""); enum {kNPHOSMatrix = 5}; enum {kNEMCALMatrix = 12}; @@ -131,6 +169,7 @@ class AliAODHeader : public AliVHeader { Double32_t fMagneticField; // Solenoid Magnetic Field in kG Double32_t fMuonMagFieldScale; // magnetic field scale of muon arm magnet Double32_t fCentrality; // Centrality + Double32_t fEventplane; // Event plane angle Double32_t fZDCN1Energy; // reconstructed energy in the neutron1 ZDC Double32_t fZDCP1Energy; // reconstructed energy in the proton1 ZDC Double32_t fZDCN2Energy; // reconstructed energy in the neutron2 ZDC @@ -144,6 +183,8 @@ class AliAODHeader : public AliVHeader { Int_t fRefMult; // reference multiplicity Int_t fRefMultPos; // reference multiplicity of positive particles Int_t fRefMultNeg; // reference multiplicity of negative particles + Int_t fNMuons; // number of muons in the forward spectrometer + Int_t fNDimuons; // number of dimuons in the forward spectrometer UInt_t fEventType; // Type of Event UInt_t fOrbitNumber; // Orbit Number UInt_t fPeriodNumber; // Period Number @@ -151,10 +192,50 @@ class AliAODHeader : public AliVHeader { UChar_t fTriggerCluster; // Trigger cluster (mask) Double32_t fDiamondXY[2]; // Interaction diamond (x,y) in RUN Double32_t fDiamondCovXY[3]; // Interaction diamond covariance (x,y) in RUN + Double32_t fDiamondZ; // Interaction diamond (z) in RUN + Double32_t fDiamondSig2Z; // Interaction diamond sigma^2 (z) in RUN TGeoHMatrix* fPHOSMatrix[kNPHOSMatrix]; //PHOS module position and orientation matrices TGeoHMatrix* fEMCALMatrix[kNEMCALMatrix]; //EMCAL supermodule position and orientation matrices - - ClassDef(AliAODHeader,9); + UInt_t fOfflineTrigger; // fired offline triggers for this event + TString fESDFileName; // ESD file name to which this event belongs + Int_t fEventNumberESDFile; // Event number in ESD file + UInt_t fL0TriggerInputs; // L0 Trigger Inputs (mask) + UInt_t fL1TriggerInputs; // L1 Trigger Inputs (mask) + UShort_t fL2TriggerInputs; // L2 Trigger Inputs (mask) + UInt_t fITSClusters[6]; // Number of ITS cluster per layer + 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); }; +inline +void AliAODHeader::SetCentrality(AliCentrality* cent) { + if(cent){ + if(fCentralityP)*fCentralityP = *cent; + else fCentralityP = new AliCentrality(*cent); + fCentrality = cent->GetCentralityPercentile("V0M"); + } + else{ + fCentrality = -999; + } +} +inline +void AliAODHeader::SetEventplane(AliEventplane* eventplane) { + if(eventplane){ + if(fEventplaneP)*fEventplaneP = *eventplane; + else fEventplaneP = new AliEventplane(*eventplane); + fEventplane = eventplane->GetEventplane("Q"); + } + else{ + fEventplane = -999; + } +} + +inline +void AliAODHeader::SetITSClusters(Int_t ilay, UInt_t nclus) +{ + if (ilay >= 0 && ilay < 6) fITSClusters[ilay] = nclus; +} + #endif