"fmdClusters",
"pmdClusters",
"dimuons",
- "AliAODVZERO"
+ "AliAODVZERO",
+ "AliAODZDC"
};
//______________________________________________________________________________
fFmdClusters(0),
fPmdClusters(0),
fDimuons(0),
- fAODVZERO(0)
+ fAODVZERO(0),
+ fAODZDC(0)
{
// default constructor
}
fFmdClusters(new TClonesArray(*aod.fFmdClusters)),
fPmdClusters(new TClonesArray(*aod.fPmdClusters)),
fDimuons(new TClonesArray(*aod.fDimuons)),
- fAODVZERO(new AliAODVZERO(*aod.fAODVZERO))
+ fAODVZERO(new AliAODVZERO(*aod.fAODVZERO)),
+ fAODZDC(new AliAODZDC(*aod.fAODZDC))
{
// Copy constructor
AddObject(fHeader);
AddObject(fPmdClusters);
AddObject(fDimuons);
AddObject(fAODVZERO);
+ AddObject(fAODZDC);
fConnected = aod.fConnected;
GetStdContent();
CreateStdFolders();
AddObject(new TClonesArray("AliAODPmdCluster", 0));
AddObject(new TClonesArray("AliAODDimuon", 0));
AddObject(new AliAODVZERO());
+ AddObject(new AliAODZDC());
// set names
SetStdNames();
fPmdClusters = (TClonesArray*)fAODObjects->FindObject("pmdClusters");
fDimuons = (TClonesArray*)fAODObjects->FindObject("dimuons");
fAODVZERO = (AliAODVZERO*)fAODObjects->FindObject("AliAODVZERO");
+ fAODZDC = (AliAODZDC*)fAODObjects->FindObject("AliAODZDC");
}
//______________________________________________________________________________
#include "AliAODFmdCluster.h"
#include "AliAODDimuon.h"
#include "AliAODVZERO.h"
+#include "AliAODZDC.h"
class TTree;
class TFolder;
kAODPmdClusters,
kAODDimuons,
kAODVZERO,
+ kAODZDC,
kAODListN
};
// VZERO
AliAODVZERO *GetVZEROData() const { return fAODVZERO; }
+ //ZDC
+ AliAODZDC *GetZDCData() const { return fAODZDC; }
+
private :
TList *fAODObjects; // list of AODObjects
TClonesArray *fPmdClusters; //! PMDclusters
TClonesArray *fDimuons; //! dimuons
AliAODVZERO *fAODVZERO; //! VZERO AOD
-
+ AliAODZDC *fAODZDC; //! ZDC AOD
+
static const char* fAODListName[kAODListN]; //!
- ClassDef(AliAODEvent, 7);
+ ClassDef(AliAODEvent,87);
};
#endif
UChar_t GetTriggerCluster() const {return fHeader?fHeader->GetTriggerCluster():0;}
// ZDC CKB: put this in the header?
- AliESDZDC* GetESDZDC() const {return fESDZDC;}
+ AliESDZDC* GetESDZDC() const {return fESDZDC;}
+ AliESDZDC* GetZDCData() const {return fESDZDC;}
+
void SetZDCData(AliESDZDC * obj);
// Delegated methods for fESDZDC
//______________________________________________________________________________
AliESDZDC::AliESDZDC() :
- TObject(),
+ AliVZDC(),
fZDCN1Energy(0),
fZDCP1Energy(0),
fZDCN2Energy(0),
//______________________________________________________________________________
AliESDZDC::AliESDZDC(const AliESDZDC& zdc) :
- TObject(zdc),
+ AliVZDC(zdc),
fZDCN1Energy(zdc.fZDCN1Energy),
fZDCP1Energy(zdc.fZDCP1Energy),
fZDCN2Energy(zdc.fZDCN2Energy),
{
// assigment operator
if(this!=&zdc) {
- TObject::operator=(zdc);
+ AliVZDC::operator=(zdc);
fZDCN1Energy = zdc.fZDCN1Energy;
fZDCP1Energy = zdc.fZDCP1Energy;
fZDCN2Energy = zdc.fZDCN2Energy;
void AliESDZDC::Print(const Option_t *) const
{
// Print ESD for the ZDC
- printf("\n \t E_{ZNC} = %f TeV, E_{ZPC} = %f TeV, E_{ZNA} = %f TeV, E_{ZPA} = %f TeV,"
- " E_{ZEM} = %f GeV, Npart = %d, b = %1.2f fm\n",
- fZDCN1Energy/1000.,fZDCP1Energy/1000.,fZDCN2Energy/1000.,fZDCP2Energy/1000.,
- fZDCEMEnergy+fZDCEMEnergy1, fZDCParticipants,fImpactParameter);
+ printf(" ### ZDC energies: \n");
+ printf("\n \t E_ZNC = %1.2f (%1.2f+%1.2f+%1.2f+%1.2f+%1.2f) GeV \n \t E_ZNA = %1.2f (%1.2f+%1.2f+%1.2f+%1.2f+%1.2f) GeV\n"
+ " \t E_ZPC = %1.2f GeV E_ZPA = %1.2f GeV"
+ "\n E_ZEM1 = %1.2f GeV, E_ZEM2 = %1.2f GeV\n \t Npart = %d, b = %1.2f fm\n",
+ fZDCN1Energy, fZN1TowerEnergy[0], fZN1TowerEnergy[1],
+ fZN1TowerEnergy[2], fZN1TowerEnergy[3], fZN1TowerEnergy[4],
+ fZDCN2Energy,fZN2TowerEnergy[0], fZN2TowerEnergy[1],
+ fZN2TowerEnergy[2], fZN2TowerEnergy[3], fZN2TowerEnergy[4],
+ fZDCP1Energy,fZDCP2Energy, fZDCEMEnergy, fZDCEMEnergy1,
+ fZDCParticipants,fImpactParameter);
//
- printf(" ### VMEScaler (!=0): \n");
+ /*printf(" ### VMEScaler (!=0): \n");
for(Int_t i=0; i<32; i++) if(fVMEScaler[i]!=0) printf("\t %d \n",fVMEScaler[i]);
printf("\n");
//
printf(" ### TDCData (!=0): \n");
for(Int_t i=0; i<32; i++){
for(Int_t j=0; j<4; j++)
- if(fZDCTDCCorrected[i][j]!=0) printf("\t %1.0f \n",fZDCTDCCorrected[i][j]);
- }
+ if(TMath::Abs(fZDCTDCCorrected[i][j])>1e-4) printf("\t %1.0f \n",fZDCTDCCorrected[i][j]);
+ }*/
printf("\n");
}
// *** Scaler format: 32 floats from VME scaler ***
//-------------------------------------------------------------------------
-#include <TObject.h>
+#include <AliVZDC.h>
-class AliESDZDC: public TObject {
-public:
-
- enum {
- kCorrectedTDCFilled = BIT(14),
- kEnergyCalibratedSignal = BIT(15)
- };
+class AliESDZDC: public AliVZDC {
+public:
AliESDZDC();
AliESDZDC(const AliESDZDC& zdc);
AliESDZDC& operator=(const AliESDZDC& zdc);
- virtual void Copy(TObject &obj) const;
+
+
+ // Getters
+
+ virtual Short_t GetZDCParticipants() const {return fZDCParticipants;}
+ virtual Short_t GetZDCPartSideA() const {return fZDCPartSideA;}
+ virtual Short_t GetZDCPartSideC() const {return fZDCPartSideC;}
+ virtual Double_t GetImpactParameter() const {return fImpactParameter;}
+ virtual Double_t GetImpactParamSideA() const {return fImpactParamSideA;}
+ virtual Double_t GetImpactParamSideC() const {return fImpactParamSideC;}
+
+ virtual Double_t GetZNCEnergy() const {return (Double_t) fZDCN1Energy;}
+ virtual Double_t GetZPCEnergy() const {return (Double_t) fZDCP1Energy;}
+ virtual Double_t GetZNAEnergy() const {return (Double_t) fZDCN2Energy;}
+ virtual Double_t GetZPAEnergy() const {return (Double_t) fZDCP2Energy;}
+ virtual Double_t GetZEM1Energy() const {return (Double_t) fZDCEMEnergy;}
+ virtual Double_t GetZEM2Energy() const {return (Double_t) fZDCEMEnergy1;}
+
+ virtual const Double_t *GetZNCTowerEnergy() const {return fZN1TowerEnergy;}
+ virtual const Double_t *GetZNATowerEnergy() const {return fZN2TowerEnergy;}
+ virtual const Double_t *GetZPCTowerEnergy() const {return fZP1TowerEnergy;}
+ virtual const Double_t *GetZPATowerEnergy() const {return fZP2TowerEnergy;}
+ virtual const Double_t *GetZNCTowerEnergyLR() const {return fZN1TowerEnergyLR;}
+ virtual const Double_t *GetZNATowerEnergyLR() const {return fZN2TowerEnergyLR;}
+ const Double_t *GetZPCTowerEnergyLR() const {return fZP1TowerEnergyLR;}
+ const Double_t *GetZPATowerEnergyLR() const {return fZP2TowerEnergyLR;}
UInt_t GetESDQuality() const {return fESDQuality;}
Double_t GetZDCN1Energy() const {return fZDCN1Energy;}
Double_t GetZDCEMEnergy(Int_t i) const
{if(i==0){return fZDCEMEnergy;} else if(i==1){return fZDCEMEnergy1;}
return 0;}
- Short_t GetZDCParticipants() const {return fZDCParticipants;}
- Short_t GetZDCPartSideA() const {return fZDCPartSideA;}
- Short_t GetZDCPartSideC() const {return fZDCPartSideC;}
- Double_t GetImpactParameter() const {return fImpactParameter;}
- Double_t GetImpactParamSideA() const {return fImpactParamSideA;}
- Double_t GetImpactParamSideC() const {return fImpactParamSideC;}
+
const Double_t * GetZN1TowerEnergy() const {return fZN1TowerEnergy;}
const Double_t * GetZN2TowerEnergy() const {return fZN2TowerEnergy;}
const Double_t * GetZP1TowerEnergy() const {return fZP1TowerEnergy;}
const Double_t * GetZP1TowerEnergyLR() const {return fZP1TowerEnergyLR;}
const Double_t * GetZP2TowerEnergyLR() const {return fZP2TowerEnergyLR;}
//
- Bool_t GetZNCentroidInPbPb(Float_t beamEne, Double_t centrZNC[2], Double_t centrZNA[2]);
- Bool_t GetZNCentroidInpp(Double_t centrZNC[2], Double_t centrZNA[2]);
+ virtual Bool_t GetZNCentroidInPbPb(Float_t beamEne, Double_t centrZNC[2], Double_t centrZNA[2]);
+ virtual Bool_t GetZNCentroidInpp(Double_t centrZNC[2], Double_t centrZNA[2]);
//
UInt_t GetZDCScaler(Int_t i) const {return fVMEScaler[i];}
Float_t GetZDCTDCCorrected(Int_t i, Int_t j) const
{if(AliESDZDC::kCorrectedTDCFilled) return fZDCTDCCorrected[i][j];
else return 0.;}
+
Float_t GetZNTDCSum(Int_t ihit) const
- {if(ihit<4 && AliESDZDC::kCorrectedTDCFilled) return (Float_t) (fZDCTDCCorrected[10][ihit]+fZDCTDCCorrected[12][ihit]);
- else return 0.;}
+ {if(ihit<4 && AliESDZDC::kCorrectedTDCFilled) return (Float_t) (fZDCTDCCorrected[10][ihit]+fZDCTDCCorrected[12][ihit]);
+ else return 0.;}
Float_t GetZNTDCDiff(Int_t ihit) const
{if(ihit<4 && AliESDZDC::kCorrectedTDCFilled) return (Float_t) (fZDCTDCCorrected[12][ihit]-fZDCTDCCorrected[10][ihit]);
else return 0.;}
+ virtual Float_t GetZDCTimeSum() const
+ {if(AliESDZDC::kCorrectedTDCFilled) return (Float_t) (fZDCTDCCorrected[10][0]+fZDCTDCCorrected[12][0]);
+ else return 0.;}
+ virtual Float_t GetZDCTimeDiff() const
+ {if(AliESDZDC::kCorrectedTDCFilled) return (Float_t) (fZDCTDCCorrected[12][0]-fZDCTDCCorrected[10][0]);
+ else return 0.;}
+
void SetZDC(Double_t n1Energy, Double_t p1Energy,
Double_t emEnergy0, Double_t emEnergy1,
Double_t n2Energy, Double_t p2Energy,
void Reset();
void Print(const Option_t *opt=0) const;
-
+private:
+ virtual void Copy(TObject &obj) const;
private:
Double32_t fZDCN1Energy; // reconstructed energy in the neutron ZDC
Int_t fZDCTDCData[32][4]; // ZDC TDC data
Float_t fZDCTDCCorrected[32][4];// ZDC TDC data in ns corrected 4 phase shift
- ClassDef(AliESDZDC,16)
+ ClassDef(AliESDZDC,17)
};
#endif
AliEventplane* GetEventplane() {return 0;}
virtual AliVVZERO *GetVZEROData() const {return 0;}
+ virtual AliVZDC *GetZDCData() const {return 0;}
private:
virtual void ReorderAndExpandTreeTR();
virtual Bool_t ComputeVtx(const TObjArray *vertices, Double_t *pos,Double_t *sig,Int_t *nContributors);
// VZERO
virtual AliVVZERO *GetVZEROData() const {return 0;}
+ virtual AliVZDC *GetZDCData() const {return 0;}
private:
TList fEventList; //! List of Events
Int_t fNEvents; //! Number of Events
class AliCentrality;
class AliEventplane;
class AliVVZERO;
+class AliVZDC;
class AliVEvent : public TObject {
virtual Int_t EventIndexForPHOSCell(Int_t icell) const = 0;
virtual Int_t EventIndexForEMCALCell(Int_t icell) const = 0;
- virtual AliVVZERO *GetVZEROData() const = 0;
+ virtual AliVVZERO *GetVZEROData() const = 0;
+ virtual AliVZDC *GetZDCData() const = 0;
ClassDef(AliVEvent,1) // base class for AliEvent data
};