]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Changes for report #76227: ZDC TDC info in ESD and physics selection (for release...
authorhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 9 Dec 2010 13:58:26 +0000 (13:58 +0000)
committerhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 9 Dec 2010 13:58:26 +0000 (13:58 +0000)
STEER/AliESDZDC.cxx
STEER/AliESDZDC.h
ZDC/AliZDCReco.cxx
ZDC/AliZDCReco.h
ZDC/AliZDCReconstructor.cxx
ZDC/AliZDCReconstructor.h

index aff13643568a3c793e1b9f52d55f0d2249f50312..c570602ffd88b6ba6d5d962102cb165b57a43836 100644 (file)
@@ -57,8 +57,7 @@ AliESDZDC::AliESDZDC() :
     fVMEScaler[i]=0;
     for(Int_t y=0; y<4; y++){
       fZDCTDCData[i][y]=0.;
-      fZNCTime[y]=0.;
-      fZNATime[y]=0.;
+      fZDCTDCCorrected[i][y]=0.;
     }
   }
 }
@@ -99,8 +98,7 @@ AliESDZDC::AliESDZDC(const AliESDZDC& zdc) :
     fVMEScaler[i] = zdc.fVMEScaler[i];
     for(Int_t y=0; y<4; y++){
        fZDCTDCData[i][y] = zdc.fZDCTDCData[i][y];
-       fZNCTime[y] = zdc.fZNCTime[y];
-       fZNATime[y] = zdc.fZNATime[y];
+       fZDCTDCCorrected[i][y] = zdc.fZDCTDCCorrected[i][y];
     }
   }
 }
@@ -145,8 +143,7 @@ AliESDZDC& AliESDZDC::operator=(const AliESDZDC&zdc)
       fVMEScaler[i] = zdc.fVMEScaler[i];
       for(Int_t y=0; y<4; y++){ 
          fZDCTDCData[i][y] = zdc.fZDCTDCData[i][y];
-         fZNCTime[y] = zdc.fZNCTime[y];
-         fZNATime[y] = zdc.fZNATime[y];
+         fZDCTDCCorrected[i][y] = zdc.fZDCTDCCorrected[i][y];
       }
     }
   } 
@@ -198,8 +195,7 @@ void AliESDZDC::Reset()
      fVMEScaler[i] = 0;
      for(Int_t y=0; y<4; y++){
         fZDCTDCData[i][y] = 0.;
-        fZNCTime[y] = 0.;
-        fZNATime[y] = 0.;
+        fZDCTDCCorrected[i][y] = 0.;
      }
   }
 }
@@ -220,7 +216,7 @@ void AliESDZDC::Print(const Option_t *) const
   printf(" ### TDCData (!=0): \n");
   for(Int_t i=0; i<32; i++){
     for(Int_t j=0; j<4; j++)
-      if(fZDCTDCData[i][j]!=0) printf("\t %d \n",fZDCTDCData[i][j]);
+      if(fZDCTDCCorrected[i][j]!=0) printf("\t %1.0f \n",fZDCTDCCorrected[i][j]);
   }
   printf("\n");
 }
index ed37ff3bd9da428e677f2ce28a7506c3f38d84ec..a86dec54dd188231bfaa37a4524d0e81a50de482 100644 (file)
 
 class AliESDZDC: public TObject {
 public:
+  enum {
+    kCorrectedTDCFilled = BIT(14)
+  };
   AliESDZDC();
   AliESDZDC(const AliESDZDC& zdc);
   AliESDZDC& operator=(const AliESDZDC& zdc);
@@ -48,6 +53,19 @@ public:
   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]);
   //
+
+  UInt_t GetZDCScaler(Int_t i)  const {return fVMEScaler[i];}
+  const UInt_t* GetZDCScaler()  const {return fVMEScaler;}
+
+  Int_t GetZDCTDCData(Int_t i, Int_t j) const {return fZDCTDCData[i][j];}
+  Float_t GetZDCTDCCorrected(Int_t i, Int_t j) const {return fZDCTDCCorrected[i][j];}
+  Float_t GetZNTDCSum(Int_t ihit) const 
+          {if(ihit<4) return (Float_t) (fZDCTDCCorrected[10][ihit]+fZDCTDCCorrected[12][ihit]);
+           else return 0.;}
+  Float_t GetZNTDCDiff(Int_t ihit) const 
+          {if(ihit<4) return (Float_t) (fZDCTDCCorrected[12][ihit]-fZDCTDCCorrected[10][ihit]);
+           else return 0.;}
+  
   void  SetZDC(Double_t n1Energy, Double_t p1Energy, 
               Double_t emEnergy0, Double_t emEnergy1,
               Double_t n2Energy, Double_t p2Energy, 
@@ -80,21 +98,17 @@ public:
           {for(Int_t i=0; i<2; i++) fZNACentrCoord[i] = centrCoord[i];}
   void  SetZNCCentroid(const Float_t centrCoord[2])
           {for(Int_t i=0; i<2; i++) fZNCCentrCoord[i] = centrCoord[i];}
-
-  UInt_t GetZDCScaler(Int_t i)  const {return fVMEScaler[i];}
-  const UInt_t* GetZDCScaler()  const {return fVMEScaler;}
-
-  Float_t GetZDCTDCData(Int_t i, Int_t j) const {return fZDCTDCData[i][j];}
   
   void SetZDCScaler(const UInt_t count[32]) 
        {for(Int_t k=0; k<32; k++) fVMEScaler[k] = count[k];}
   
-  void SetZDCTDC(const Float_t values[32][4]) 
+  void SetZDCTDCData(const Int_t values[32][4]) 
        {for(Int_t k=0; k<32; k++)
                   for(Int_t j=0; j<4; j++) fZDCTDCData[k][j] = values[k][j];}
-
-  void SetZNCTime(const Float_t val[4]) {for(int k=0; k<4; k++) fZNCTime[k] = val[k];}
-  void SetZNATime(const Float_t val[4]) {for(int k=0; k<4; k++) fZNATime[k] = val[k];}
+  
+  void SetZDCTDCCorrected(const Float_t values[32][4]) 
+       {for(Int_t k=0; k<32; k++)
+                  for(Int_t j=0; j<4; j++) fZDCTDCCorrected[k][j] = values[k][j];}
 
   void    Reset();
   void    Print(const Option_t *opt=0) const;
@@ -125,11 +139,10 @@ private:
   Double32_t   fZNCCentrCoord[2]; // Coordinates of the centroid over ZNA
   UInt_t       fESDQuality;      // flags from reconstruction
   UInt_t       fVMEScaler[32];           // counts from VME scaler
-  Float_t      fZDCTDCData[32][4];// ZDC TDC data
-  Float_t      fZNCTime[4];      // ZNC corrected TDC data
-  Float_t      fZNATime[4];      // ZNA corrected TDC data
-
-  ClassDef(AliESDZDC,15)
+  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)
 };
 
 #endif
index ffeb814ff01a532709090c61179c85ab4a28294c..40b99b9ed65fe8ca23a2d4457a4d14775fa268f0 100644 (file)
@@ -63,7 +63,7 @@ AliZDCReco::AliZDCReco() :
   
   for(Int_t i=0; i<32; i++){
     fZDCScaler[i] = 0;
-    for(Int_t ij=0; ij<4; ij++) fZDCTDCData[i][ij] = 0.;
+    for(Int_t ij=0; ij<4; ij++) fZDCTDCData[i][ij] = 0;
   }
 }
   
@@ -78,7 +78,7 @@ AliZDCReco::AliZDCReco(
      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 scalerOn, UInt_t* scaler, Float_t tdcData[32][4]) :
+     UInt_t recoFlag, Bool_t scalerOn, UInt_t* scaler, Int_t tdcData[32][4]) :
        
   TObject(),
   //
index c9e61793e1515e1bb495b407a342250b38cf4090..e62f36a2e462c13c8444450592b27a7662544745 100644 (file)
@@ -22,7 +22,7 @@ public:
             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 scalerOn, UInt_t* scaler, Float_t tdcData[32][4]);
+            UInt_t recoFlag, Bool_t scalerOn, UInt_t* scaler, Int_t tdcData[32][4]);
 
   AliZDCReco(const AliZDCReco &oldreco);
   virtual ~AliZDCReco() {}
@@ -81,7 +81,7 @@ public:
   virtual Bool_t  IsScalerOn()          const {return fIsScalerOn;}
   virtual UInt_t  GetZDCScaler(Int_t k) const {return fZDCScaler[k];}
   //
-  virtual Float_t   GetZDCTDCData(Int_t j, Int_t k) const {return fZDCTDCData[j][k];}
+  virtual Int_t   GetZDCTDCData(Int_t j, Int_t k) const {return fZDCTDCData[j][k];}
 
   // Print method
   virtual void Print(Option_t *) const;
@@ -122,9 +122,9 @@ private:
   Bool_t  fIsScalerOn;     // True if scaler has been read in the event
   UInt_t  fZDCScaler[32];  // Counts from ZDC VME scaler
   //
-  Float_t fZDCTDCData[32][4]; // TDC data
+  Int_t fZDCTDCData[32][4];      // TDC data raw
 
-  ClassDef(AliZDCReco,11)  // RecPoints for the Zero Degree Calorimeters
+  ClassDef(AliZDCReco,12)  // RecPoints for the Zero Degree Calorimeters
 };
  
 #endif
index f0f1c55a9f5d1dce480119933673d8cf7b4be56c..1fb5aca443da18651955cf253646146ffea58d26 100644 (file)
@@ -311,10 +311,10 @@ void AliZDCReconstructor::Reconstruct(TTree* digitsTree, TTree* clustersTree) co
   }//digits loop
  
   UInt_t counts[32];
-  Float_t  tdc[32][4];
+  Int_t  tdc[32][4];
   for(Int_t jj=0; jj<32; jj++){
     counts[jj]=0;
-    for(Int_t ii=0; ii<4; ii++) tdc[jj][ii]=0.;
+    for(Int_t ii=0; ii<4; ii++) tdc[jj][ii]=0;
   }
   
   Int_t  evQualityBlock[4] = {1,0,0,0};
@@ -380,7 +380,7 @@ void AliZDCReconstructor::Reconstruct(AliRawReader* rawReader, TTree* clustersTr
   Bool_t isScalerOn=kFALSE;
   Int_t jsc=0, itdc=0, iprevtdc=-1, ihittdc=0;
   UInt_t scalerData[32];
-  Float_t tdcData[32][4];      
+  Int_t tdcData[32][4];        
   for(Int_t k=0; k<32; k++){
     scalerData[k]=0;
     for(Int_t i=0; i<4; i++) tdcData[k][i]=0.;
@@ -652,7 +652,7 @@ void AliZDCReconstructor::ReconstructEventpp(TTree *clustersTree,
        const Float_t* const corrADCZN2, const Float_t* const corrADCZP2,
        const Float_t* const corrADCZEM1, const Float_t* const corrADCZEM2,
        Float_t* sPMRef1, Float_t* sPMRef2, Bool_t isScalerOn, UInt_t* scaler, 
-       Float_t tdcData[32][4], const Int_t* const evQualityBlock, 
+       Int_t tdcData[32][4], const Int_t* const evQualityBlock, 
        const Int_t* const triggerBlock, const Int_t* const chBlock, UInt_t puBits) const
 {
   // ****************** Reconstruct one event ******************
@@ -848,7 +848,7 @@ void AliZDCReconstructor::ReconstructEventPbPb(TTree *clustersTree,
        const Float_t* const corrADCZN2, const Float_t* const corrADCZP2,
        const Float_t* const corrADCZEM1, const Float_t* const corrADCZEM2,
        Float_t* sPMRef1, Float_t* sPMRef2, Bool_t isScalerOn, UInt_t* scaler, 
-       Float_t tdcData[32][4], const Int_t* const evQualityBlock, 
+       Int_t tdcData[32][4], const Int_t* const evQualityBlock, 
        const Int_t* const triggerBlock, const Int_t* const chBlock, UInt_t puBits) const
 {
   // ****************** Reconstruct one event ******************
@@ -1333,26 +1333,21 @@ void AliZDCReconstructor::FillZDCintoESD(TTree *clustersTree, AliESDEvent* esd)
   }    
   
   // Writing TDC data into ZDC ESDs
-  Float_t tdcValues[32][4];
-  Float_t zncTime[4]={0.,0.,0.,0.}, znaTime[4]={0.,0.,0.,0.};
+  Int_t tdcValues[32][4]; 
+  Float_t tdcCorrected[32][4];
   for(Int_t jk=0; jk<32; jk++){
-    Int_t indc=0, inda=0;
     for(Int_t lk=0; lk<4; lk++){
-      tdcValues[jk][lk] = 0.025*reco.GetZDCTDCData(jk, lk);
-      if((jk==10) && (tdcValues[jk][lk]!=0)){
-         zncTime[indc] = tdcValues[jk][lk]-tdcValues[14][0]+fMeanPhase;
-         indc++;
-      }
-      else if((jk==12) && (tdcValues[jk][lk]!=0)){
-         znaTime[inda] = tdcValues[jk][lk]-tdcValues[14][0]+fMeanPhase;
-        inda++;
-      }
+      tdcValues[jk][lk] = reco.GetZDCTDCData(jk, lk);
     }
   }
-  fESDZDC->SetZDCTDC(tdcValues);
-  
-  fESDZDC->SetZNCTime(zncTime);
-  fESDZDC->SetZNATime(znaTime);
+  for(Int_t jk=0; jk<32; jk++){
+    for(Int_t lk=0; lk<4; lk++){
+      if(tdcValues[jk][lk]!=0.) tdcCorrected[jk][lk] = 0.025*(tdcValues[jk][lk]-tdcValues[14][0])+fMeanPhase;
+    }
+  }
+  fESDZDC->SetZDCTDCData(tdcValues);
+  fESDZDC->SetZDCTDCCorrected(tdcCorrected);
+  fESDZDC->AliESDZDC::SetBit(AliESDZDC::kCorrectedTDCFilled, kTRUE);
   
   if(esd) esd->SetZDCData(fESDZDC);
 }
index bba587f9a617450d6c3b8be643796e26ab5a291f..d892d5d5f51866a1acab5cb79e39c9b2fce262e0 100644 (file)
@@ -81,14 +81,14 @@ private:
         const Float_t* const corrADCZN2, const Float_t* const corrADCZP2,
         const Float_t* const corrADCZEM1, const Float_t* const corrADCZEM2,
         Float_t* sPMRef1, Float_t* sPMRef2, Bool_t isScalerOn, UInt_t* scaler, 
-        Float_t tdcData[32][4], const Int_t* const evQualityBlock, 
+        Int_t tdcData[32][4], const Int_t* const evQualityBlock, 
         const Int_t* const triggerBlock, const Int_t* const chBlock, UInt_t puBits) const;
   void   ReconstructEventPbPb(TTree *clustersTree, 
         const Float_t* const corrADCZN1, const Float_t* const corrADCZP1, 
         const Float_t* const corrADCZN2, const Float_t* const corrADCZP2,
         const Float_t* const corrADCZEM1, const Float_t* const corrADCZEM2,
         Float_t* sPMRef1, Float_t* sPMRef2, Bool_t isScalerOn, UInt_t* scaler, 
-        Float_t tdcData[32][4], const Int_t* const evQualityBlock, 
+        Int_t tdcData[32][4], const Int_t* const evQualityBlock, 
         const Int_t* const triggerBlock, const Int_t* const chBlock, UInt_t puBits) const;
 
   static AliZDCRecoParam *fgRecoParam; // reconstruction parameters