ROOT logo
#ifndef ALIZDCRECO_H
#define ALIZDCRECO_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

////////////////////////////////////////////////
//  Classe for ZDC RecPoints                  //
////////////////////////////////////////////////

#include "TObject.h"

class AliZDCReco : public TObject {

public:
  AliZDCReco();
  AliZDCReco(Float_t* ezn1, Float_t* ezp1, Float_t* ezn2, Float_t* ezp2,  
	     Float_t* ezn1tow, Float_t* ezp1tow, Float_t* ezn2tow, Float_t* ezp2tow, 
	     Float_t* ezem1, Float_t* ezem2, Float_t* ref1, Float_t* ref2, 
	     //	   
	     Int_t detspnSideA,  Int_t detsppSideA, 
	     Int_t detspnSideC, Int_t detsppSideC,  
	     Int_t trsp, Int_t trspSideA, Int_t trspSideC,
	     Int_t npart, Int_t npartSideA, Int_t npartSideC, 
	     Float_t b, Float_t bSideA, Float_t bSideC,
	     UInt_t recoFlag, Bool_t energyFlag, Bool_t scalerOn, 
	     UInt_t* scaler, Int_t tdcData[32][4]);

  AliZDCReco(const AliZDCReco &oldreco);
  AliZDCReco& operator= (const AliZDCReco &reco);
  virtual ~AliZDCReco() {}

  // Getters 
  virtual Float_t GetZN1HREnergy()   const  {return fZN1Energy[0];}
  virtual Float_t GetZP1HREnergy()   const  {return fZP1Energy[0];}
  virtual Float_t GetZN2HREnergy()   const  {return fZN2Energy[0];}
  virtual Float_t GetZP2HREnergy()   const  {return fZP2Energy[0];}
  //
  virtual Float_t GetZN1LREnergy()   const  {return fZN1Energy[1];}
  virtual Float_t GetZP1LREnergy()   const  {return fZP1Energy[1];}
  virtual Float_t GetZN2LREnergy()   const  {return fZN2Energy[1];}
  virtual Float_t GetZP2LREnergy()   const  {return fZP2Energy[1];}
  //
  virtual Float_t GetZN1HREnTow(Int_t tow)  const {return fZN1EnTow[tow];}
  virtual Float_t GetZP1HREnTow(Int_t tow)  const {return fZP1EnTow[tow];}
  virtual Float_t GetZN2HREnTow(Int_t tow)  const {return fZN2EnTow[tow];}
  virtual Float_t GetZP2HREnTow(Int_t tow)  const {return fZP2EnTow[tow];}
  //
  virtual Float_t GetZN1LREnTow(Int_t tow)  const {return fZN1EnTow[tow+5];}
  virtual Float_t GetZP1LREnTow(Int_t tow)  const {return fZP1EnTow[tow+5];}
  virtual Float_t GetZN2LREnTow(Int_t tow)  const {return fZN2EnTow[tow+5];}
  virtual Float_t GetZP2LREnTow(Int_t tow)  const {return fZP2EnTow[tow+5];}
  //
  virtual Float_t GetZEM1HRsignal()   const  {return fZEM1signal[0];}
  virtual Float_t GetZEM1LRsignal()   const  {return fZEM1signal[1];}
  virtual Float_t GetZEM2HRsignal()   const  {return fZEM2signal[0];}
  virtual Float_t GetZEM2LRsignal()   const  {return fZEM2signal[1];}
  //
  virtual Float_t GetPMRef1HRsignal()   const  {return fZEM1signal[0];}
  virtual Float_t GetPMRef1LRsignal()   const  {return fZEM1signal[1];}
  virtual Float_t GetPMRef2HRsignal()   const  {return fZEM2signal[0];}
  virtual Float_t GetPMRef2LRsignal()   const  {return fZEM2signal[1];}
  //
  virtual Int_t   GetNDetSpecNSideA()  const {return fNDetSpecNSideA;}
  virtual Int_t   GetNDetSpecPSideA()  const {return fNDetSpecPSideA;}
  virtual Int_t   GetNDetSpecNSideC()  const {return fNDetSpecNSideC;}
  virtual Int_t   GetNDetSpecPSideC()  const {return fNDetSpecPSideC;}
  virtual Int_t   GetNTrueSpectators() const {return fNTrueSpectators;}
  virtual Int_t   GetNTrueSpecSideA()  const {return fNTrueSpecSideA;}
  virtual Int_t   GetNTrueSpecSideC()  const {return fNTrueSpecSideC;}
  virtual Int_t   GetNParticipants()   const {return fNParticipants;}
  virtual Int_t   GetNPartSideA()      const {return fNPartSideA;}
  virtual Int_t   GetNPartSideC()      const {return fNPartSideC;}
  virtual Float_t GetImpParameter()    const {return fImpParameter;}
  virtual Float_t GetImpParSideA()     const {return fImpParSideA;}
  virtual Float_t GetImpParSideC()     const {return fImpParSideC;}
  //
  virtual UInt_t  GetRecoFlag()      const {return fRecoFlag;}
  virtual UInt_t  GetZDCPattern()    const {return (fRecoFlag & 0x0000003f);}
  virtual UInt_t  GetChOnFlag()      const {return (fRecoFlag & 0x00000100);}
  virtual UInt_t  GetChOvflwFlag()   const {return (fRecoFlag & 0x00000200);}
  virtual UInt_t  GetChUndflwFlag()  const {return (fRecoFlag & 0x00000400);}
  //
  virtual Bool_t  GetEnergyFlag()    const {return fEnergyFlag;}
  virtual Bool_t  IsScalerOn()          const {return fIsScalerOn;}
  virtual UInt_t  GetZDCScaler(Int_t k) const {return fZDCScaler[k];}
  //
  virtual Int_t   GetZDCTDCData(Int_t j, Int_t k) const {return fZDCTDCData[j][k];}

  // Print method
  virtual void Print(Option_t *) const;

private:
  // Data members
  Float_t fZN1Energy[2]; // Energy detected in ZN1 (sum of 5 tower signals)
  Float_t fZP1Energy[2]; // Energy detected in ZP1 (sum of 5 tower signals)
  Float_t fZN2Energy[2]; // Energy detected in ZN2 (sum of 5 tower signals)
  Float_t fZP2Energy[2]; // Energy detected in ZP2 (sum of 5 tower signals)
  //
  Float_t fZN1EnTow[10]; // Energy in ZN1 towers
  Float_t fZP1EnTow[10]; // Energy in ZP1 towers
  Float_t fZN2EnTow[10]; // Energy in ZN2 towers
  Float_t fZP2EnTow[10]; // Energy in ZP2 towers
  //
  Float_t fZEM1signal[2];// Signal in EM1 ZDC
  Float_t fZEM2signal[2];// Signal in EM2 ZDC
  //
  Float_t fPMRef1[2];	 // Reference PM side C
  Float_t fPMRef2[2];	 // Reference PM side A
  //
  Int_t	  fNDetSpecNSideA; // Number of spectator neutrons detected
  Int_t	  fNDetSpecPSideA; // Number of spectator protons detected
  Int_t	  fNDetSpecNSideC; // Number of spectator neutrons detected
  Int_t	  fNDetSpecPSideC; // Number of spectator protons detected
  Int_t	  fNTrueSpectators;// Estimate of the total number of spectators
  Int_t	  fNTrueSpecSideA; // Estimate of the number of spectators side A
  Int_t	  fNTrueSpecSideC; // Estimate of the number of spectators side C
  Int_t	  fNParticipants;  // Estimate of the total number of participants
  Int_t	  fNPartSideA;	   // Estimate of the number of participants side A
  Int_t	  fNPartSideC;	   // Estimate of the number of participants side C
  Float_t fImpParameter;   // Estimate of the impact parameter
  Float_t fImpParSideA;	   // Estimate of the impact parameter side A
  Float_t fImpParSideC;	   // Estimate of the impact parameter side B
  //
  UInt_t  fRecoFlag;       // Reconstruction flag
  Bool_t  fEnergyFlag;     // Is the reco value in energy?
  Bool_t  fIsScalerOn;     // True if scaler has been read in the event
  UInt_t  fZDCScaler[32];  // Counts from ZDC VME scaler
  //
  Int_t fZDCTDCData[32][4];      // TDC data raw

  ClassDef(AliZDCReco,14)  // RecPoints for the Zero Degree Calorimeters
};
 
#endif
 AliZDCReco.h:1
 AliZDCReco.h:2
 AliZDCReco.h:3
 AliZDCReco.h:4
 AliZDCReco.h:5
 AliZDCReco.h:6
 AliZDCReco.h:7
 AliZDCReco.h:8
 AliZDCReco.h:9
 AliZDCReco.h:10
 AliZDCReco.h:11
 AliZDCReco.h:12
 AliZDCReco.h:13
 AliZDCReco.h:14
 AliZDCReco.h:15
 AliZDCReco.h:16
 AliZDCReco.h:17
 AliZDCReco.h:18
 AliZDCReco.h:19
 AliZDCReco.h:20
 AliZDCReco.h:21
 AliZDCReco.h:22
 AliZDCReco.h:23
 AliZDCReco.h:24
 AliZDCReco.h:25
 AliZDCReco.h:26
 AliZDCReco.h:27
 AliZDCReco.h:28
 AliZDCReco.h:29
 AliZDCReco.h:30
 AliZDCReco.h:31
 AliZDCReco.h:32
 AliZDCReco.h:33
 AliZDCReco.h:34
 AliZDCReco.h:35
 AliZDCReco.h:36
 AliZDCReco.h:37
 AliZDCReco.h:38
 AliZDCReco.h:39
 AliZDCReco.h:40
 AliZDCReco.h:41
 AliZDCReco.h:42
 AliZDCReco.h:43
 AliZDCReco.h:44
 AliZDCReco.h:45
 AliZDCReco.h:46
 AliZDCReco.h:47
 AliZDCReco.h:48
 AliZDCReco.h:49
 AliZDCReco.h:50
 AliZDCReco.h:51
 AliZDCReco.h:52
 AliZDCReco.h:53
 AliZDCReco.h:54
 AliZDCReco.h:55
 AliZDCReco.h:56
 AliZDCReco.h:57
 AliZDCReco.h:58
 AliZDCReco.h:59
 AliZDCReco.h:60
 AliZDCReco.h:61
 AliZDCReco.h:62
 AliZDCReco.h:63
 AliZDCReco.h:64
 AliZDCReco.h:65
 AliZDCReco.h:66
 AliZDCReco.h:67
 AliZDCReco.h:68
 AliZDCReco.h:69
 AliZDCReco.h:70
 AliZDCReco.h:71
 AliZDCReco.h:72
 AliZDCReco.h:73
 AliZDCReco.h:74
 AliZDCReco.h:75
 AliZDCReco.h:76
 AliZDCReco.h:77
 AliZDCReco.h:78
 AliZDCReco.h:79
 AliZDCReco.h:80
 AliZDCReco.h:81
 AliZDCReco.h:82
 AliZDCReco.h:83
 AliZDCReco.h:84
 AliZDCReco.h:85
 AliZDCReco.h:86
 AliZDCReco.h:87
 AliZDCReco.h:88
 AliZDCReco.h:89
 AliZDCReco.h:90
 AliZDCReco.h:91
 AliZDCReco.h:92
 AliZDCReco.h:93
 AliZDCReco.h:94
 AliZDCReco.h:95
 AliZDCReco.h:96
 AliZDCReco.h:97
 AliZDCReco.h:98
 AliZDCReco.h:99
 AliZDCReco.h:100
 AliZDCReco.h:101
 AliZDCReco.h:102
 AliZDCReco.h:103
 AliZDCReco.h:104
 AliZDCReco.h:105
 AliZDCReco.h:106
 AliZDCReco.h:107
 AliZDCReco.h:108
 AliZDCReco.h:109
 AliZDCReco.h:110
 AliZDCReco.h:111
 AliZDCReco.h:112
 AliZDCReco.h:113
 AliZDCReco.h:114
 AliZDCReco.h:115
 AliZDCReco.h:116
 AliZDCReco.h:117
 AliZDCReco.h:118
 AliZDCReco.h:119
 AliZDCReco.h:120
 AliZDCReco.h:121
 AliZDCReco.h:122
 AliZDCReco.h:123
 AliZDCReco.h:124
 AliZDCReco.h:125
 AliZDCReco.h:126
 AliZDCReco.h:127
 AliZDCReco.h:128
 AliZDCReco.h:129
 AliZDCReco.h:130
 AliZDCReco.h:131
 AliZDCReco.h:132
 AliZDCReco.h:133
 AliZDCReco.h:134