]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG1/AliAnaVZEROQA.cxx
Protections added (F.Bellini)
[u/mrichter/AliRoot.git] / PWG1 / AliAnaVZEROQA.cxx
index c35566c74fbd67efe59e85c35f14879085095b07..b87a16f132bf5c920544cdf22cb341af31ea8a07 100644 (file)
@@ -69,7 +69,6 @@ AliAnalysisTaskSE("AliAnaVZEROQA"),
   fV0multC(0),
   fV0ampl(0),
 
-  fhTimePMTCorr(0),
   fhEvents(0),
 
   fhVtxXYBB(0),
@@ -121,7 +120,6 @@ AliAnalysisTaskSE(name),
   fV0multC(0),
   fV0ampl(0),
 
-  fhTimePMTCorr(0),
   fhEvents(0),
 
   fhVtxXYBB(0),
@@ -172,6 +170,7 @@ void AliAnaVZEROQA::UserCreateOutputObjects()
   AliInfo("AliAnaVZEROQA::UserCreateOutputObjects");
   // Create output container
   fListOfHistos = new TList();
+  fListOfHistos->SetOwner();
 
   fhAdcNoTimeA = CreateHisto1D("hAdcNoTimeA","ADC (no Leading Time) V0A",200,0,200,"ADC charge","Entries");
   fhAdcWithTimeA = CreateHisto1D("hAdcWithTimeA","ADC ( with Leading Time) V0A",200,0,200,"ADC charge","Entries");
@@ -204,7 +203,6 @@ void AliAnaVZEROQA::UserCreateOutputObjects()
   fV0multC = CreateHisto1D("hV0multC","Total reconstructed multiplicity (V0C)",100,0.,1000.);
   fV0ampl  = CreateHisto1D("hV0ampl","V0 multiplicity in single channel (all V0 channels)",400,-0.5,99.5);
 
-  fhTimePMTCorr = CreateHisto2D("htimepmtcorr","Time measured by TDC (corrected for slewing, channels aligned) vs PMT index",64,-0.5,63.5,200,0,100,"PMT Index","Leading time (ns)");
   fhEvents = CreateHisto2D("hEvents","V0C vs V0A (empty,bb,bg)",3,-0.5,2.5,3,-0.5,2.5);
 
   fhVtxXYBB = CreateHisto2D("fhVtxXYBB","XY SPD vertex (bb)",200,-2,2,200,-2,2);
@@ -245,7 +243,6 @@ void AliAnaVZEROQA::UserCreateOutputObjects()
   fListOfHistos->Add(fV0multC);
   fListOfHistos->Add(fV0ampl);
 
-  fListOfHistos->Add(fhTimePMTCorr);
   fListOfHistos->Add(fhEvents);
 
   fListOfHistos->Add(fhVtxXYBB);
@@ -254,6 +251,8 @@ void AliAnaVZEROQA::UserCreateOutputObjects()
   fListOfHistos->Add(fhVtxZBGA);
   fListOfHistos->Add(fhVtxXYBGC);
   fListOfHistos->Add(fhVtxZBGC);
+
+  PostData(1, fListOfHistos);
 }
 
 void AliAnaVZEROQA::UserExec(Option_t */*option*/)
@@ -277,8 +276,6 @@ void AliAnaVZEROQA::UserExec(Option_t */*option*/)
     return;
   }
 
-  Float_t timeA = 0,timeC = 0;
-  Int_t ntimeA = 0, ntimeC = 0;
   for (Int_t i=0; i<64; ++i) {
       if (esdV0->GetTime(i) < 1e-6) {
        if (i >= 32) {
@@ -302,44 +299,24 @@ void AliAnaVZEROQA::UserExec(Option_t */*option*/)
       if (i >= 32) {
        fhTimeA->Fill(esdV0->GetTime(i));
        fhWidthA->Fill(esdV0->GetWidth(i));
-       fhAdcWidthA->Fill(esdV0->GetAdc(i),esdV0->GetTime(i));
+       fhAdcWidthA->Fill(esdV0->GetAdc(i),esdV0->GetWidth(i));
        fhAdcTimeA->Fill(esdV0->GetTime(i),esdV0->GetAdc(i));
       }
       else {
        fhTimeC->Fill(esdV0->GetTime(i));
        fhWidthC->Fill(esdV0->GetWidth(i));
-       fhAdcWidthC->Fill(esdV0->GetAdc(i),esdV0->GetTime(i));
+       fhAdcWidthC->Fill(esdV0->GetAdc(i),esdV0->GetWidth(i));
        fhAdcTimeC->Fill(esdV0->GetTime(i),esdV0->GetAdc(i));
        }
       fhTimePMT->Fill(i,esdV0->GetTime(i));
       fhWidthPMT->Fill(i,esdV0->GetWidth(i));
 
-      Float_t correctedTime = CorrectLeadingTime(i,esdV0->GetTime(i),esdV0->GetAdc(i));
-      fhTimePMTCorr->Fill(i,correctedTime);
-
-      if (esdV0->GetTime(i) > 1e-6) {
-       if (i >= 32) {
-         timeA += correctedTime;
-         ntimeA++;
-       }
-       else {
-         timeC += correctedTime;
-         ntimeC++;
-       }
-      }
   }
 
-  if (ntimeA > 0) timeA = timeA/ntimeA;
-  if (ntimeC > 0) timeC = timeC/ntimeC;
+  fhTimeCorr->Fill(esdV0->GetV0ATime(),esdV0->GetV0CTime());
 
-  fhTimeCorr->Fill(timeA,timeC);
-
-  Int_t flaga = 0, flagc = 0;
-  TString stra("emptyA"),strc("emptyC");
-  if (timeA > 48 && timeA < 62) { flaga = 1; stra = "BBA"; }
-  if (timeA > 26  && timeA < 33) { flaga = 2; stra = "BGA"; }
-  if (timeC > 49 && timeC < 60) { flagc = 1; strc = "BBC"; }
-  if (timeC > 43 && timeC < 48.5) { flagc = 2; strc = "BGC"; }
+  AliESDVZERO::Decision flaga = esdV0->GetV0ADecision();
+  AliESDVZERO::Decision flagc = esdV0->GetV0CDecision();
 
   fhEvents->Fill(flaga,flagc);
 
@@ -384,96 +361,3 @@ void AliAnaVZEROQA::Terminate(Option_t *)
        
   Info("AliAnaVZEROQA", "Successfully finished");
 }
-
-Float_t AliAnaVZEROQA::CorrectLeadingTime(Int_t i, Float_t time, Float_t adc) const
-{
-  // Correct for slewing and align the channels
-
-  if (time < 1e-6) return 0;
-
-  // Time offsets between channels
-  Float_t timeShift[64] = {30.2914 , 30.0019 , 30.7429 , 30.1997 , 30.1511 , 29.6437 , 30.0609 , 29.5452 , 30.1437 , 30.745 , 30.7537 , 30.446 , 30.2771 , 30.838 , 30.3748 , 30.0635 , 30.1786 , 30.282 , 31.0992 , 30.7491 , 30.624 , 30.9268 , 30.6585 , 30.4895 , 31.5815 , 31.3871 , 31.2032 , 31.5778 , 31.0838 , 31.2259 , 31.2122 , 31.5989 , 28.3792 , 28.8325 , 27.8719 , 28.3475 , 26.9925 , 27.9300 , 28.4223 , 28.4996 , 28.2934 , 28.1281 , 27.209 , 28.5327 , 28.1181 , 28.0888 , 29.5111 , 28.6601 , 29.7705 , 29.6531 , 30.3373 , 30.2345 , 30.5935 , 29.8164 , 30.2235 , 29.6505 , 30.1225 , 31.2045 , 30.8399 , 30.6789 , 30.2784 , 31.7028 , 31.4239 , 30.1814};
-  time -= timeShift[i];
-
-  // Slewing correction
-  if (adc < 1e-6) return time;
-
-  time += 30.;
-  if (adc > 300.) adc = 300.;
-  if (adc > 70.) {
-    return (time -
-           2.93028e+01 +
-           adc*1.25188e-02 -
-           adc*adc*2.68348e-05);
-  }
-  else {
-    return (time -
-           3.52314e+01 +
-           adc*5.99289e-01 -
-           adc*adc*2.74668e-02 +
-           adc*adc*adc*6.61224e-04 -
-           adc*adc*adc*adc*7.77105e-06 +
-           adc*adc*adc*adc*adc*3.51229e-08);
-  }
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-