From: cvetan Date: Tue, 22 Mar 2011 14:17:26 +0000 (+0000) Subject: Implementation of the new ZDC timing cut, which now uses the corrected times stored... X-Git-Url: http://git.uio.no/git/?a=commitdiff_plain;h=fcb18b05b0d532476db1fe6396fbdf09b0936409;p=u%2Fmrichter%2FAliRoot.git Implementation of the new ZDC timing cut, which now uses the corrected times stored in ESD. To be used in the pass2 of LHC10h. --- diff --git a/ANALYSIS/AliTriggerAnalysis.cxx b/ANALYSIS/AliTriggerAnalysis.cxx index b86b06368b1..074b528c2c0 100644 --- a/ANALYSIS/AliTriggerAnalysis.cxx +++ b/ANALYSIS/AliTriggerAnalysis.cxx @@ -64,6 +64,7 @@ AliTriggerAnalysis::AliTriggerAnalysis() : fHistZDC(0), fHistTDCZDC(0), fHistTimeZDC(0), + fHistTimeCorrZDC(0), fHistFMDA(0), fHistFMDC(0), fHistFMDSingle(0), @@ -118,6 +119,11 @@ AliTriggerAnalysis::~AliTriggerAnalysis() delete fHistTimeZDC; fHistTimeZDC = 0; } + if (fHistTimeCorrZDC) + { + delete fHistTimeCorrZDC; + fHistTimeCorrZDC = 0; + } if (fHistFMDA) { @@ -171,6 +177,7 @@ void AliTriggerAnalysis::EnableHistograms() fHistZDC = new TH1F("fHistZDC", "ZDC;trigger bits;events", 8, -1.5, 6.5); fHistTDCZDC = new TH1F("fHistTDCZDC", "ZDC;TDC bits;events", 32, -0.5, 32-0.5); fHistTimeZDC = new TH2F("fHistTimeZDC", "ZDC;TDC timing A+C vs C-A; events", 120,-30,30,120,-600,-540); + fHistTimeCorrZDC = new TH2F("fHistTimeCorrZDC", "ZDC;Corrected TDC timing A+C vs C-A; events", 120,-30,30,120,-100,-40); // TODO check limits fHistFMDA = new TH1F("fHistFMDA", "FMDA;combinations above threshold;events", 102, -1.5, 100.5); @@ -1006,16 +1013,34 @@ Bool_t AliTriggerAnalysis::ZDCTimeTrigger(const AliESDEvent *aEsd, Bool_t fillHi const Float_t refDelta = -2.1; const Float_t sigmaSum = 3.25; const Float_t sigmaDelta = 2.25; + + // Cuts for the new corrected TDC values + const Float_t refSumCorr = -65.5; + const Float_t sigmaSumCorr = 6.0; + const Float_t sigmaDeltaCorr = 1.2; + for(Int_t i = 0; i < 4; ++i) { if (esdZDC->GetZDCTDCData(10,i) != 0) { Float_t tdcC = 0.025*(esdZDC->GetZDCTDCData(10,i)-esdZDC->GetZDCTDCData(14,i)); + Float_t tdcCcorr = esdZDC->GetZDCTDCCorrected(10,i); for(Int_t j = 0; j < 4; ++j) { if (esdZDC->GetZDCTDCData(12,j) != 0) { Float_t tdcA = 0.025*(esdZDC->GetZDCTDCData(12,j)-esdZDC->GetZDCTDCData(14,j)); - if(fillHists) fHistTimeZDC->Fill(tdcC-tdcA,tdcC+tdcA); - if (((tdcC-tdcA-refDelta)*(tdcC-tdcA-refDelta)/(sigmaDelta*sigmaDelta) + - (tdcC+tdcA-refSum)*(tdcC+tdcA-refSum)/(sigmaSum*sigmaSum))< 1.0) - zdcAccept = kTRUE; + Float_t tdcAcorr = esdZDC->GetZDCTDCCorrected(12,j); + if(fillHists) { + fHistTimeZDC->Fill(tdcC-tdcA,tdcC+tdcA); + fHistTimeCorrZDC->Fill(tdcCcorr-tdcAcorr,tdcCcorr+tdcAcorr); + } + if (esdZDC->TestBit(AliESDZDC::kCorrectedTDCFilled)) { + if (((tdcCcorr-tdcAcorr-refDelta)*(tdcCcorr-tdcAcorr-refDelta)/(sigmaDeltaCorr*sigmaDeltaCorr) + + (tdcCcorr+tdcAcorr-refSumCorr)*(tdcCcorr+tdcAcorr-refSumCorr)/(sigmaSumCorr*sigmaSumCorr))< 1.0) + zdcAccept = kTRUE; + } + else { + if (((tdcC-tdcA-refDelta)*(tdcC-tdcA-refDelta)/(sigmaDelta*sigmaDelta) + + (tdcC+tdcA-refSum)*(tdcC+tdcA-refSum)/(sigmaSum*sigmaSum))< 1.0) + zdcAccept = kTRUE; + } } } } @@ -1141,7 +1166,7 @@ Long64_t AliTriggerAnalysis::Merge(TCollection* list) TObject* obj; // collections of all histograms - const Int_t nHists = 11; + const Int_t nHists = 12; TList collections[nHists]; Int_t count = 0; @@ -1157,6 +1182,7 @@ Long64_t AliTriggerAnalysis::Merge(TCollection* list) collections[n++].Add(entry->fHistZDC); collections[n++].Add(entry->fHistTDCZDC); collections[n++].Add(entry->fHistTimeZDC); + collections[n++].Add(entry->fHistTimeCorrZDC); collections[n++].Add(entry->fHistFMDA); collections[n++].Add(entry->fHistFMDC); collections[n++].Add(entry->fHistFMDSingle); @@ -1197,6 +1223,10 @@ Long64_t AliTriggerAnalysis::Merge(TCollection* list) fHistTimeZDC->Merge(&collections[n++]); else n++; + if (fHistTimeCorrZDC) + fHistTimeCorrZDC->Merge(&collections[n++]); + else + n++; fHistFMDA->Merge(&collections[n++]); fHistFMDC->Merge(&collections[n++]); fHistFMDSingle->Merge(&collections[n++]); @@ -1234,6 +1264,8 @@ void AliTriggerAnalysis::SaveHistograms() const else Printf("Cannot save fHistTDCZDC"); if (fHistTimeZDC) fHistTimeZDC->Write(); else Printf("Cannot save fHistTimeZDC"); + if (fHistTimeCorrZDC) fHistTimeCorrZDC->Write(); + else Printf("Cannot save fHistTimeCorrZDC"); if (fHistFMDA) fHistFMDA->Write(); else Printf("Cannot save fHistFMDA"); if (fHistFMDC) fHistFMDC->Write(); diff --git a/ANALYSIS/AliTriggerAnalysis.h b/ANALYSIS/AliTriggerAnalysis.h index 4f2c08f4fbb..631d9035e21 100644 --- a/ANALYSIS/AliTriggerAnalysis.h +++ b/ANALYSIS/AliTriggerAnalysis.h @@ -116,6 +116,7 @@ class AliTriggerAnalysis : public TObject TH1F* fHistZDC; //histograms that histogram the criterion the cut is applied on: fired bits (6 bins) TH1F* fHistTDCZDC; // histograms that histogram the criterion the cut is applied on: TDC bits (32 bins) TH2F* fHistTimeZDC; // histograms that histogram the criterion the cut is applied on: ZDC TDC timing + TH2F* fHistTimeCorrZDC; // histograms that histogram the criterion the cut is applied on: ZDC Corrected TDC timing TH1F* fHistFMDA; // histograms that histogram the criterion the cut is applied on: number of hit combination above threshold TH1F* fHistFMDC; // histograms that histogram the criterion the cut is applied on: number of hit combination above threshold TH1F* fHistFMDSingle; // histograms that histogram the criterion the cut is applied on: single mult value (more than one entry per event) @@ -126,7 +127,7 @@ class AliTriggerAnalysis : public TObject Bool_t fMC; // flag if MC is analyzed AliESDtrackCuts* fEsdTrackCuts; //Track Cuts to select ESD tracks - ClassDef(AliTriggerAnalysis, 12) + ClassDef(AliTriggerAnalysis, 13) private: AliTriggerAnalysis(const AliTriggerAnalysis&);