]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ZDC/AliZDCReco.h
introducing function IsSelected which allows child classes to selectively publish...
[u/mrichter/AliRoot.git] / ZDC / AliZDCReco.h
index b836cae8090fa651835995009702a0e25c0d070c..f36ac5022de1520528c345f112a1495fabd54546 100644 (file)
@@ -13,94 +13,121 @@ 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* ezn1siglr, Float_t* ezp1siglr,
-            Float_t* ezn2siglr, Float_t* ezp2siglr,
-            Float_t ezem1, Float_t ezem2, 
+  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 detspnLeft,  Int_t detsppLeft, Int_t detspnRight, Int_t detsppRight,  
-            Int_t trspnLeft, Int_t trsppLeft, Int_t trspLeft, 
-            Int_t trspnRight, Int_t trsppRight, Int_t trspRight,
-            Int_t partLeft, Int_t partRight,  
-            Float_t b);
+            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);
   virtual ~AliZDCReco() {}
 
   // Getters 
-  virtual Float_t GetZN1Energy()   const  {return fZN1Energy;}
-  virtual Float_t GetZP1Energy()   const  {return fZP1Energy;}
-  virtual Float_t GetZN2Energy()   const  {return fZN2Energy;}
-  virtual Float_t GetZP2Energy()   const  {return fZP2Energy;}
+  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 GetZN1EnTow(Int_t tow)  const {return fZN1EnTow[tow];}
-  virtual Float_t GetZP1EnTow(Int_t tow)  const {return fZP1EnTow[tow];}
-  virtual Float_t GetZN2EnTow(Int_t tow)  const {return fZN2EnTow[tow];}
-  virtual Float_t GetZP2EnTow(Int_t tow)  const {return fZP2EnTow[tow];}
+  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 GetZN1SigLowRes(Int_t tow)  const {return fZN1SigLowRes[tow];}
-  virtual Float_t GetZP1SigLowRes(Int_t tow)  const {return fZP1SigLowRes[tow];}
-  virtual Float_t GetZN2SigLowRes(Int_t tow)  const {return fZN2SigLowRes[tow];}
-  virtual Float_t GetZP2SigLowRes(Int_t tow)  const {return fZP2SigLowRes[tow];}
+  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 GetZEM1signal()   const  {return fZEM1signal;}
-  virtual Float_t GetZEM2signal()   const  {return fZEM2signal;}
+  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 Int_t   GetNDetSpecNLeft()   const {return fNDetSpecNLeft;}
-  virtual Int_t   GetNDetSpecPLeft()   const {return fNDetSpecPLeft;}
-  virtual Int_t   GetNDetSpecNRight()  const {return fNDetSpecNRight;}
-  virtual Int_t   GetNDetSpecPRight()  const {return fNDetSpecPRight;}
-  virtual Int_t   GetNTrueSpecNLeft()  const {return fNTrueSpecNLeft;}
-  virtual Int_t   GetNTrueSpecPLeft()  const {return fNTrueSpecPLeft;}
-  virtual Int_t   GetNTrueSpecLeft()   const {return fNTrueSpecLeft;}
-  virtual Int_t   GetNTrueSpecNRight() const {return fNTrueSpecNRight;}
-  virtual Int_t   GetNTrueSpecPRight() const {return fNTrueSpecPRight;}
-  virtual Int_t   GetNTrueSpecRight()  const {return fNTrueSpecRight;}
-  virtual Int_t   GetNPartLeft()       const {return fNPartLeft;}
-  virtual Int_t   GetNPartRight()      const {return fNPartRight;}
-  virtual Float_t GetImpPar()          const {return fImpPar;}
+  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 // Energy detected in ZN1 (sum of 5 tower signals)
-  Float_t fZP1Energy // Energy detected in ZP1 (sum of 5 tower signals)
-  Float_t fZN2Energy // Energy detected in ZN2 (sum of 5 tower signals)
-  Float_t fZP2Energy // Energy detected in ZP2 (sum of 5 tower signals)
+  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[5];        // Energy in ZN1 towers
-  Float_t fZP1EnTow[5]; // Energy in ZP1 towers
-  Float_t fZN2EnTow[5];        // Energy in ZN2 towers
-  Float_t fZP2EnTow[5]; // Energy in ZP2 towers
+  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 fZN1SigLowRes[5]; // Energy in ZN1 towers - low res ch.
-  Float_t fZP1SigLowRes[5]; // Energy in ZP1 towers - low res ch.
-  Float_t fZN2SigLowRes[5]; // Energy in ZN2 towers - low res ch.
-  Float_t fZP2SigLowRes[5]; // Energy in ZP2 towers - low res ch.
+  Float_t fZEM1signal[2];// Signal in EM1 ZDC
+  Float_t fZEM2signal[2];// Signal in EM2 ZDC
   //
-  Float_t fZEM1signal; // Signal in EM1 ZDC
-  Float_t fZEM2signal; // Signal in EM2 ZDC
+  Float_t fPMRef1[2];   // Reference PM side C
+  Float_t fPMRef2[2];   // Reference PM side A
   //
-  Int_t          fNDetSpecNLeft;  // Number of spectator neutrons detected
-  Int_t          fNDetSpecPLeft;  // Number of spectator protons detected
-  Int_t          fNDetSpecNRight; // Number of spectator neutrons detected
-  Int_t          fNDetSpecPRight; // Number of spectator protons detected
-  Int_t          fNTrueSpecNLeft; // Estimate of the number of spectator neutrons generated
-  Int_t          fNTrueSpecPLeft; // Estimate of the number of spectator protons generated
-  Int_t          fNTrueSpecLeft;  // Estimate of the total number of spectators
-  Int_t          fNTrueSpecNRight;// Estimate of the number of spectator neutrons generated
-  Int_t          fNTrueSpecPRight;// Estimate of the number of spectator protons generated
-  Int_t          fNTrueSpecRight; // Estimate of the total number of spectators
-  Int_t          fNPartLeft;   // Estimate of the number of participants for 1 nucleus
-  Int_t          fNPartRight;  // Estimate of the number of participants for 1 nucleus
-  Float_t fImpPar;     // Estimate of the impact parameter
-
+  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,4)  // RecPoints for the Zero Degree Calorimeters
+  ClassDef(AliZDCReco,14)  // RecPoints for the Zero Degree Calorimeters
 };
  
 #endif