Fiexs needed for Pb-Pb reconstruction
authorcoppedis <coppedis@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 2 Mar 2011 18:14:48 +0000 (18:14 +0000)
committercoppedis <coppedis@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 2 Mar 2011 18:14:48 +0000 (18:14 +0000)
ZDC/AliZDCReco.cxx
ZDC/AliZDCReco.h
ZDC/AliZDCReconstructor.cxx

index 40b99b9ed65fe8ca23a2d4457a4d14775fa268f0..2dd49ba4c987f72e176417a8fa90d72b40175079 100644 (file)
@@ -47,6 +47,7 @@ AliZDCReco::AliZDCReco() :
   fImpParSideA(0),
   fImpParSideC(0),
   fRecoFlag(0x0),
+  fEnergyFlag(kFALSE),
   fIsScalerOn(kFALSE)
 { 
   //
@@ -78,7 +79,8 @@ 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[32][4]) :
+     UInt_t recoFlag, Bool_t energyFlag, Bool_t scalerOn, 
+     UInt_t* scaler, Int_t tdcData[32][4]) :
        
   TObject(),
   //
@@ -96,6 +98,7 @@ AliZDCReco::AliZDCReco(
   fImpParSideA(bSideA),
   fImpParSideC(bSideC),
   fRecoFlag(recoFlag),
+  fEnergyFlag(energyFlag),
   fIsScalerOn(scalerOn)
 { 
   //
@@ -140,6 +143,7 @@ fImpParameter(oldreco.GetImpParameter()),
 fImpParSideA(oldreco.GetImpParSideA()),      
 fImpParSideC(oldreco.GetImpParSideC()),
 fRecoFlag(oldreco.GetRecoFlag()),
+fEnergyFlag(oldreco.GetEnergyFlag()),
 fIsScalerOn(oldreco.IsScalerOn())    
 {
   // Copy constructor
index e62f36a2e462c13c8444450592b27a7662544745..f36ac5022de1520528c345f112a1495fabd54546 100644 (file)
@@ -22,7 +22,8 @@ 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[32][4]);
+            UInt_t recoFlag, Bool_t energyFlag, Bool_t scalerOn, 
+            UInt_t* scaler, Int_t tdcData[32][4]);
 
   AliZDCReco(const AliZDCReco &oldreco);
   virtual ~AliZDCReco() {}
@@ -78,6 +79,7 @@ public:
   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];}
   //
@@ -119,12 +121,13 @@ private:
   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,12)  // RecPoints for the Zero Degree Calorimeters
+  ClassDef(AliZDCReco,14)  // RecPoints for the Zero Degree Calorimeters
 };
  
 #endif
index 7be6eb6c6a578f9587bb65ec9a2168e77ec2b976..c8189eace99ca9cea06dc541645d8c3064f43541 100644 (file)
@@ -426,7 +426,7 @@ void AliZDCReconstructor::Reconstruct(AliRawReader* rawReader, TTree* clustersTr
        //  **** Pb-Pb data taking 2010 -> subtracting some ch. from correlation ****
        // Not interested in o.o.t. signals (ADC modules 2, 3)
        //if(adcMod == 2 || adcMod == 3) continue;
-       if(((det==1 && quad==0) || (det==2 && quad==2) || (det==3)) && (quad != 5)){
+       if(((det==1 && quad==0) || (det==3))){
          if(det == 1){
            if(adcMod==0 || adcMod==1){
             if(gain==0) adcZN1[quad] = rawData.GetADCValue();
@@ -437,16 +437,6 @@ void AliZDCReconstructor::Reconstruct(AliRawReader* rawReader, TTree* clustersTr
              else adcZN1ootlg[quad] = rawData.GetADCValue();
           }
         }
-        else if(det == 2){
-          if(adcMod==0 || adcMod==1){
-            if(gain==0) adcZP2[quad] = rawData.GetADCValue();
-             else adcZP2lg[quad] = rawData.GetADCValue();
-          }
-          else if(adcMod==2 || adcMod==3){
-            if(gain==0) adcZP2oot[quad] = rawData.GetADCValue();
-             else adcZP2ootlg[quad] = rawData.GetADCValue();
-          }
-        }
         else if(det == 3){
           if(adcMod==0 || adcMod==1){
             if(gain==0) adcZEM[quad-1] = rawData.GetADCValue();
@@ -468,7 +458,7 @@ void AliZDCReconstructor::Reconstruct(AliRawReader* rawReader, TTree* clustersTr
           if(gain == 0) tZN1Corr[quad]  += (Float_t) (rawData.GetADCValue()-meanPed[pedindex]); 
           else tZN1Corr[quad+5]  += (Float_t) (rawData.GetADCValue()-meanPed[pedindex+kNch]); 
         }
-        else if(det==2 && quad!=2){ 
+        else if(det==2){ 
           pedindex = quad+5;
           if(gain == 0) tZP1Corr[quad]  += (Float_t) (rawData.GetADCValue()-meanPed[pedindex]); 
           else tZP1Corr[quad+5]  += (Float_t) (rawData.GetADCValue()-meanPed[pedindex+kNch]); 
@@ -647,8 +637,8 @@ void AliZDCReconstructor::Reconstruct(AliRawReader* rawReader, TTree* clustersTr
     //printf(" adcZN1 %d  adcZN1oot %d tZN1Corr %1.2f \n", adcZN1[0],adcZN1oot[0],tZN1Corr[0]);
     //printf(" adcZN1lg %d  adcZN1ootlg %d tZN1Corrlg %1.2f \n", adcZN1lg[0],adcZN1ootlg[0],tZN1Corr[5]);
     //
-    tZP1Corr[2] = adcZP1[2] - (corrCoeff1[2+5]*adcZP1oot[2]+corrCoeff0[2+5]);
-    tZP1Corr[2+5] = adcZP1lg[2] - (corrCoeff1[2+5+kNch]*adcZP1ootlg[2]+corrCoeff0[2+5+kNch]);
+    //tZP1Corr[2] = adcZP1[2] - (corrCoeff1[2+5]*adcZP1oot[2]+corrCoeff0[2+5]);
+    //tZP1Corr[2+5] = adcZP1lg[2] - (corrCoeff1[2+5+kNch]*adcZP1ootlg[2]+corrCoeff0[2+5+kNch]);
     //
     dZEM1Corr[0] = adcZEM[0]   - (corrCoeff1[10]*adcZEMoot[0]+corrCoeff0[10]);
     dZEM1Corr[1] = adcZEMlg[0] - (corrCoeff1[10+kNch]*adcZEMootlg[0]+corrCoeff0[10+kNch]);
@@ -848,6 +838,7 @@ void AliZDCReconstructor::ReconstructEventpp(TTree *clustersTree,
   Int_t nPart=0, nPartTotLeft=0, nPartTotRight=0;
   Double_t impPar=0., impPar1=0., impPar2=0.;
   
+  Bool_t energyFlag = kFALSE;
   // create the output tree
   AliZDCReco* reco = new AliZDCReco(calibSumZN1, calibSumZP1, calibSumZN2, calibSumZP2, 
                   calibTowZN1, calibTowZP1, calibTowZN2, calibTowZP2, 
@@ -856,7 +847,7 @@ void AliZDCReconstructor::ReconstructEventpp(TTree *clustersTree,
                   nGenSpec, nGenSpecLeft, nGenSpecRight, 
                   nPart, nPartTotLeft, nPartTotRight, 
                   impPar, impPar1, impPar2,
-                  recoFlag, isScalerOn, scaler, tdcData);
+                  recoFlag, energyFlag, isScalerOn, scaler, tdcData);
                  
   const Int_t kBufferSize = 4000;
   clustersTree->Branch("ZDC", "AliZDCReco", &reco, kBufferSize);
@@ -1283,13 +1274,14 @@ void AliZDCReconstructor::ReconstructEventPbPb(TTree *clustersTree,
 
   } // ONLY IF fIsCalibrationMB==kFALSE
   
+  Bool_t energyFlag = kTRUE;  
   AliZDCReco* reco = new AliZDCReco(calibSumZN1, calibSumZP1, calibSumZN2, calibSumZP2, 
                  calibTowZN1, calibTowZP1, calibTowZN2, calibTowZP2, 
                  calibZEM1, calibZEM2, sPMRef1, sPMRef2,
                  nDetSpecNLeft, nDetSpecPLeft, nDetSpecNRight, nDetSpecPRight, 
                  nGenSpec, nGenSpecA, nGenSpecC, 
                  nPart, nPartA, nPartC, b, bA, bC,
-                 recoFlag, isScalerOn, scaler, tdcData);
+                 recoFlag, energyFlag, isScalerOn, scaler, tdcData);
                    
   const Int_t kBufferSize = 4000;
   clustersTree->Branch("ZDC", "AliZDCReco", &reco, kBufferSize);
@@ -1372,7 +1364,7 @@ void AliZDCReconstructor::FillZDCintoESD(TTree *clustersTree, AliESDEvent* esd)
   }
   fESDZDC->SetZDCTDCData(tdcValues);
   fESDZDC->SetZDCTDCCorrected(tdcCorrected);
-  fESDZDC->AliESDZDC::SetBit(AliESDZDC::kCorrectedTDCFilled, kTRUE);
+  fESDZDC->AliESDZDC::SetBit(AliESDZDC::kCorrectedTDCFilled, reco.GetEnergyFlag());
   fESDZDC->AliESDZDC::SetBit(AliESDZDC::kEnergyCalibratedSignal, kTRUE);
   
   if(esd) esd->SetZDCData(fESDZDC);