fV0multC(0),
fV0ampl(0),
- fhTimePMTCorr(0),
fhEvents(0),
fhVtxXYBB(0),
fV0multC(0),
fV0ampl(0),
- fhTimePMTCorr(0),
fhEvents(0),
fhVtxXYBB(0),
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);
fListOfHistos->Add(fV0multC);
fListOfHistos->Add(fV0ampl);
- fListOfHistos->Add(fhTimePMTCorr);
fListOfHistos->Add(fhEvents);
fListOfHistos->Add(fhVtxXYBB);
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) {
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(timeA,timeC);
+ fhTimeCorr->Fill(esdV0->GetV0ATime(),esdV0->GetV0CTime());
- 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);
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);
- }
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-