Changes for report #74254: ZDC and STEER (AliESDZDC) changes for TDC
authorhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 27 Oct 2010 08:00:11 +0000 (08:00 +0000)
committerhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 27 Oct 2010 08:00:11 +0000 (08:00 +0000)
STEER/AliESDZDC.cxx
STEER/AliESDZDC.h
ZDC/AliZDCQAChecker.cxx
ZDC/AliZDCReco.cxx
ZDC/AliZDCReco.h
ZDC/AliZDCReconstructor.cxx
ZDC/AliZDCReconstructor.h

index 256f72b..a2e8230 100644 (file)
@@ -55,7 +55,7 @@ AliESDZDC::AliESDZDC() :
   }
   for(Int_t i=0; i<32; i++){
     fVMEScaler[i]=0;
-    fZDCTDCData[i]=0;
+    for(Int_t y=0; y<4; y++) fZDCTDCData[i][y]=0;
   }
 }
 
@@ -93,7 +93,7 @@ AliESDZDC::AliESDZDC(const AliESDZDC& zdc) :
   }
   for(Int_t i=0; i<32; i++){
     fVMEScaler[i] = zdc.fVMEScaler[i];
-    fZDCTDCData[i] = zdc.fZDCTDCData[i];
+    for(Int_t y=0; y<4; y++) fZDCTDCData[i][y] = zdc.fZDCTDCData[i][y];
   }
 }
 
@@ -135,7 +135,7 @@ AliESDZDC& AliESDZDC::operator=(const AliESDZDC&zdc)
     fESDQuality = zdc.fESDQuality;
     for(Int_t i=0; i<32; i++){
       fVMEScaler[i] = zdc.fVMEScaler[i];
-      fZDCTDCData[i] = zdc.fZDCTDCData[i];
+      for(Int_t y=0; y<4; y++) fZDCTDCData[i][y] = zdc.fZDCTDCData[i][y];
     }
   } 
   return *this;
@@ -184,7 +184,7 @@ void AliESDZDC::Reset()
   fESDQuality=0;
   for(Int_t i=0; i<32; i++){
      fVMEScaler[i] = 0;
-     fZDCTDCData[i] = 0;
+     for(Int_t y=0; y<4; y++) fZDCTDCData[i][y] = 0;
   }
 }
 
@@ -202,7 +202,10 @@ void AliESDZDC::Print(const Option_t *) const
   printf("\n");
   //
   printf(" ### TDCData (!=0): \n");
-  for(Int_t i=0; i<32; i++) if(fZDCTDCData[i]!=0) printf("\t %d \n",fZDCTDCData[i]);
+  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]);
+  }
   printf("\n");
 }
 
index b7e4642..5735032 100644 (file)
@@ -84,14 +84,14 @@ public:
   UInt_t GetZDCScaler(Int_t i)  const {return fVMEScaler[i];}
   const UInt_t* GetZDCScaler()  const {return fVMEScaler;}
 
-  Int_t GetZDCTDCData(Int_t i) const {return fZDCTDCData[i];}
-  const Int_t* GetZDCTDCData()  const {return fZDCTDCData;}
+  Int_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 Int_t values[32]) 
-       {for(Int_t k=0; k<32; k++) fZDCTDCData[k] = values[k];}
+  void SetZDCTDC(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    Reset();
   void    Print(const Option_t *opt=0) const;
@@ -122,9 +122,9 @@ 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
-  Int_t  fZDCTDCData[32];        // ZDC TDC data
+  Int_t  fZDCTDCData[32][4];     // ZDC TDC data
 
-  ClassDef(AliESDZDC,13)
+  ClassDef(AliESDZDC,14)
 };
 
 #endif
index b047b3b..55f7073 100644 (file)
@@ -767,7 +767,7 @@ void AliZDCQAChecker::Check(Double_t *  test, AliQAv1::ALITASK_t index, TObjArra
                test[specie] += res;
                count++;
              }
-             if(TMath::Abs(sumADCZPC)>1.e-10){
+/*           if(TMath::Abs(sumADCZPC)>1.e-10){
                if((TMath::Abs(pmQZPC-pmCZPC)/pmCZPC)<percentageDiff) 
                  res=1.;
                else 
@@ -783,6 +783,7 @@ void AliZDCQAChecker::Check(Double_t *  test, AliQAv1::ALITASK_t index, TObjArra
                test[specie] += res;
                count++;
              }
+*/
             }
             esdInd++;
           }  
index 0e2548d..40b99b9 100644 (file)
@@ -61,7 +61,10 @@ AliZDCReco::AliZDCReco() :
      }
   }
   
-  for(Int_t i=0; i<32; i++) fZDCScaler[i] = fZDCTDCData[i] = 0;
+  for(Int_t i=0; i<32; i++){
+    fZDCScaler[i] = 0;
+    for(Int_t ij=0; ij<4; ij++) fZDCTDCData[i][ij] = 0;
+  }
 }
   
 
@@ -75,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, Int_t* tdcData) :
+     UInt_t recoFlag, Bool_t scalerOn, UInt_t* scaler, Int_t tdcData[32][4]) :
        
   TObject(),
   //
@@ -116,7 +119,7 @@ AliZDCReco::AliZDCReco(
   }
   for(Int_t j=0; j<32; j++){
     fZDCScaler[j] = scaler[j];
-    fZDCTDCData[j] = tdcData[j];
+    for(Int_t y=0; y<4; y++) fZDCTDCData[j][y] = tdcData[j][y];
   }
 }
 
@@ -171,7 +174,7 @@ fIsScalerOn(oldreco.IsScalerOn())
   fPMRef2[1] = oldreco.GetPMRef2LRsignal();
   for(Int_t j=0; j<32; j++){
     fZDCScaler[j] = oldreco.GetZDCScaler(j);
-    fZDCTDCData[j] = oldreco.GetZDCTDCData(j);
+    for(Int_t y=0; y<4; y++) fZDCTDCData[j][y] = oldreco.GetZDCTDCData(j, y);
   }
 }
 
index 55bd4ab..769b864 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, Int_t *tdcData);
+            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 Int_t   GetZDCTDCData(Int_t j) const {return fZDCTDCData[j];}
+  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
   //
-  Int_t   fZDCTDCData[32]; // TDC data
+  Int_t   fZDCTDCData[32][4]; // TDC data
 
-  ClassDef(AliZDCReco,9)  // RecPoints for the Zero Degree Calorimeters
+  ClassDef(AliZDCReco,10)  // RecPoints for the Zero Degree Calorimeters
 };
  
 #endif
index 44a8756..9010c5e 100644 (file)
@@ -119,6 +119,12 @@ void AliZDCReconstructor::Init()
     printf("\n\n ***** ZDC reconstruction initialized for %s @ %1.0f + %1.0f GeV *****\n\n",
        beamType.Data(), fBeamEnergy, fBeamEnergy);
   
+  // if EMD calibration run NO ENERGY CALIBRATION should be performed
+  // pp-like reconstruction must be performed (E cailb. coeff. = 1)
+  if((runType.CompareTo("CALIBRATION_EMD")) == 0){
+    fRecoMode=1; 
+  }
+  
   fESDZDC = new AliESDZDC();
 
 }
@@ -288,10 +294,10 @@ void AliZDCReconstructor::Reconstruct(TTree* digitsTree, TTree* clustersTree) co
   }//digits loop
  
   UInt_t counts[32];
-  Int_t  tdc[32];
+  Int_t  tdc[32][4];
   for(Int_t jj=0; jj<32; jj++){
     counts[jj]=0;
-    tdc[jj]=0;
+    for(Int_t ii=0; ii<4; ii++) tdc[jj][ii]=0;
   }
   
   Int_t  evQualityBlock[4] = {1,0,0,0};
@@ -355,12 +361,12 @@ void AliZDCReconstructor::Reconstruct(AliRawReader* rawReader, TTree* clustersTr
   }  
 
   Bool_t isScalerOn=kFALSE;
-  Int_t jsc=0, itdc=0;
+  Int_t jsc=0, itdc=0, iprevtdc=-1, ihittdc=0;
   UInt_t scalerData[32];
-  Int_t tdcData[32];   
+  Int_t tdcData[32][4];        
   for(Int_t k=0; k<32; k++){
     scalerData[k]=0;
-    tdcData[k]=0;
+    for(Int_t i=0; i<4; i++) tdcData[k][i]=0;
   }
   
   Int_t  evQualityBlock[4] = {1,0,0,0};
@@ -531,11 +537,13 @@ void AliZDCReconstructor::Reconstruct(AliRawReader* rawReader, TTree* clustersTr
    }// VME SCALER DATA
    // ***************************** Reading ZDC TDC
    else if(rawData.GetADCModule()==kZDCTDCGeo && rawData.IsZDCTDCDatum()==kTRUE){
-       tdcData[itdc] = rawData.GetZDCTDCDatum();
+       itdc = rawData.GetChannel(); 
+       if(itdc==iprevtdc) ihittdc++;
+       else ihittdc=0;
+       iprevtdc=itdc;
+       tdcData[itdc][ihittdc] = rawData.GetZDCTDCDatum();
        // Ch. debug
-       //printf("   Reconstructed VME Scaler: %d %d  ",jsc,scalerData[jsc]);
-       //
-       itdc++;
+       printf("   Reconstructed TDC[%d, %d] %d  ",itdc, ihittdc, tdcData[itdc][ihittdc]);
    }// ZDC TDC DATA
    // ***************************** Reading PU
    else if(rawData.GetADCModule()==kPUGeo){
@@ -626,7 +634,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, 
-       Int_t* tdcData, 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 ******************
@@ -821,7 +829,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, 
-       Int_t* tdcData, 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 ******************
@@ -1298,8 +1306,10 @@ void AliZDCReconstructor::FillZDCintoESD(TTree *clustersTree, AliESDEvent* esd)
   }
   
   // Writing TDC data into ZDC ESDs
-  Int_t tdcValues[32];
-  for(Int_t jk=0; jk<32; jk++) tdcValues[jk] = reco.GetZDCTDCData(jk);
+  Int_t tdcValues[32][4];
+  for(Int_t jk=0; jk<32; jk++){
+    for(Int_t lk=0; lk<4; lk++) tdcValues[jk][lk] = reco.GetZDCTDCData(jk, lk);
+  }
   fESDZDC->SetZDCTDC(tdcValues);
   
   if(esd) esd->SetZDCData(fESDZDC);
index d20a204..d226b4d 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, 
-        Int_t* tdcData, 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, 
-        Int_t* tdcData, 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