ROOT logo
/*************************************************************************
* Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
*                                                                        *
* Author: The ALICE Off-line Project.                                    *
* Contributors are mentioned in the code where appropriate.              *
*                                                                        *
* Permission to use, copy, modify and distribute this software and its   *
* documentation strictly for non-commercial purposes is hereby granted   *
* without fee, provided that the above copyright notice appears in all   *
* copies and that both the copyright notice and this permission notice   *
* appear in the supporting documentation. The authors make no claims     *
* about the suitability of this software for any purpose. It is          *
* provided "as is" without express or implied warranty.                  *
**************************************************************************/

///////////////////////////////////////////////////////////////////////////
//                Dielectron SignalBase                                  //
//                                                                       //
//                                                                       //
/*
Base class for signal extraction from a histogram or an array of histograms
The histogram is assumed to be an inv. mass spectrum,
the array of histograms is assumed to be an array with inv. mass histograms
resulting from single and mixed events, as defined in AliDielectron.cxx

*/
//                                                                       //
///////////////////////////////////////////////////////////////////////////


#include <TVectorT.h>
#include <TPaveText.h>
#include <TF1.h>
#include <TH1.h>
#include <TDatabasePDG.h>

#include "AliDielectronSignalFunc.h"
#include "AliDielectronSignalBase.h"

ClassImp(AliDielectronSignalBase)

TH1F* AliDielectronSignalBase::fgHistSimPM=0x0;
TObject* AliDielectronSignalBase::fgPeakShape=0x0;
const char* AliDielectronSignalBase::fgkValueNames[6] = {
  "Signal","Background","Significance","Signal/Background","Mass","MassWidth"};

AliDielectronSignalBase::AliDielectronSignalBase() :
  TNamed(),
  fHistSignal(0),
  fHistBackground(0),
  fHistDataPM(0),
  fHistDataPP(0),
  fHistDataMM(0),
  fHistDataME(0),
  fHistRfactor(0),
  fValues(6),
  fErrors(6),
  fIntMin(0),
  fIntMax(0),
  fFitMin(0),
  fFitMax(0),
  fRebin(1),
  fMethod(kLikeSign),
  fScaleMin(0.),
  fScaleMax(0.),
  fScaleMin2(0.),
  fScaleMax2(0.),
  fScaleFactor(1.),
  fMixingCorr(kFALSE),
  fPeakMethod(kBinCounting),
  fProcessed(kFALSE),
  fPOIpdg(443)
{
  //
  // Default Constructor
  //
}

//______________________________________________
AliDielectronSignalBase::AliDielectronSignalBase(const char* name, const char* title) :
  TNamed(name, title),
  fHistSignal(0),
  fHistBackground(0),
  fHistDataPM(0),
  fHistDataPP(0),
  fHistDataMM(0),
  fHistDataME(0),
  fHistRfactor(0),
  fValues(6),
  fErrors(6),
  fIntMin(0),
  fIntMax(0),
  fFitMin(0),
  fFitMax(0),
  fRebin(1),
  fMethod(kLikeSign),
  fScaleMin(0.),
  fScaleMax(0.),
  fScaleMin2(0.),
  fScaleMax2(0.),
  fScaleFactor(1.),
  fMixingCorr(kFALSE),
  fPeakMethod(kBinCounting),
  fProcessed(kFALSE),
  fPOIpdg(443)
{
  //
  // Named Constructor
  //
}

//______________________________________________
AliDielectronSignalBase::~AliDielectronSignalBase()
{
  //
  // Default Destructor
  //
  if(fHistSignal) delete fHistSignal;
  if(fHistBackground) delete fHistBackground;
  if (fHistDataPP) delete fHistDataPP;
  if (fHistDataPM) delete fHistDataPM;
  if (fHistDataMM) delete fHistDataMM;
  if (fHistDataME) delete fHistDataME;
  if (fHistRfactor)delete fHistRfactor;  
}

//______________________________________________
TPaveText* AliDielectronSignalBase::DrawStats(Double_t x1/*=0.*/, Double_t y1/*=0.*/, Double_t x2/*=0.*/, Double_t y2/*=0.*/)
{
  //
  // Draw extracted values in a TPaveText
  // with the corners x1,y2,x2,y2
  //
  if (TMath::Abs(x1)<1e-20&&TMath::Abs(x2)<1e-20){
    x1=.6;
    x2=.9;
    y1=.7;
    y2=.9;
  }
  TPaveText *t=new TPaveText(x1,y1,x2,y2,"brNDC");
  t->SetFillColor(kWhite);
  t->SetBorderSize(1);
  t->SetTextAlign(12);
  t->AddText(Form("Range  : %.2f - %.2f GeV/c^{2}", fIntMin, fIntMax));
  t->AddText(Form("Signal : %.1f #pm %.1f", fValues(0), fErrors(0)));
  t->AddText(Form("Backgnd: %.1f #pm %.1f", fValues(1), fErrors(1)));
  t->AddText(Form("Signif.: %.2f #pm %.2f", fValues(2), fErrors(2)));
  t->AddText(Form("S/B    : %.2f #pm %.2f", fValues(3), fErrors(3)));
  if(fValues(4)>0)
    t->AddText(Form("Mass: %.2f #pm %.2f GeV/c^{2}", fValues(4), fErrors(4)));
  if(fValues(5)>0)
    t->AddText(Form("Mass res.: %.1f #pm %.1f MeV/c^{2}", 1000*fValues(5), 1000*fErrors(5)));
  t->Draw();

  return t;
}

//______________________________________________
void AliDielectronSignalBase::Print(Option_t */*option*/) const
{
  //
  // Print the statistics
  //
  printf("Signal : %.5g #pm %.5g\n",fValues(0), fErrors(0));
  printf("Backgnd: %.5g #pm %.5g\n",fValues(1), fErrors(1));
  printf("Signif.: %.5g #pm %.5g\n",fValues(2), fErrors(2));
  printf("SoB    : %.5g #pm %.5g\n",fValues(3), fErrors(3));
  if(fValues(4)>0)
    printf("Mass: %.5g #pm %.5g\n", fValues(4), fErrors(4));
  if(fValues(5)>0)
    printf("Mass res.: %.5g #pm %.5g\n", fValues(5), fErrors(5));
}

//______________________________________________
Double_t AliDielectronSignalBase::ScaleHistograms(TH1* histRaw, TH1* histBackground, Double_t intMin, Double_t intMax)
{
  //
  // scale histBackground to match the integral of histRaw in the interval intMin, intMax
  //

  //protect using over and underflow bins in normalisation calculation
  if (intMin<histRaw->GetXaxis()->GetXmin()) intMin=histRaw->GetXaxis()->GetXmin();
  if (intMin<histBackground->GetXaxis()->GetXmin()) intMin=histBackground->GetXaxis()->GetXmin();
  
  if (intMax>histRaw->GetXaxis()->GetXmax())
    intMax=histRaw->GetXaxis()->GetXmax()-histRaw->GetBinWidth(histRaw->GetNbinsX())/2.;
  if (intMax>histBackground->GetXaxis()->GetXmax())
    intMax=histBackground->GetXaxis()->GetXmax()-histBackground->GetBinWidth(histBackground->GetNbinsX())/2.;
  
  Double_t intRaw  = histRaw->Integral(histRaw->FindBin(intMin),histRaw->FindBin(intMax));
  Double_t intBack = histBackground->Integral(histBackground->FindBin(intMin),histBackground->FindBin(intMax));
  Double_t scaleFactor=intBack>0?intRaw/intBack:0.;
  if (intBack>0){
    histBackground->Sumw2();
    histBackground->Scale(scaleFactor);
  }

  return scaleFactor;
}
//______________________________________________
Double_t AliDielectronSignalBase::ScaleHistograms(TH1* histRaw, TH1* histBackground, Double_t intMin, Double_t intMax, Double_t intMin2, Double_t intMax2)
{
  //
  // scale histBackground to match the integral of histRaw in the interval intMin, intMax and intMin2, intMax2
  //

  if(intMin2==intMax2) return (ScaleHistograms(histRaw, histBackground, intMin, intMax));

  //protect using over and underflow bins in normalisation calculation
  if (intMin<histRaw->GetXaxis()->GetXmin()) intMin=histRaw->GetXaxis()->GetXmin();
  if (intMin<histBackground->GetXaxis()->GetXmin()) intMin=histBackground->GetXaxis()->GetXmin();
  
  if (intMax2>histRaw->GetXaxis()->GetXmax())
    intMax2=histRaw->GetXaxis()->GetXmax()-histRaw->GetBinWidth(histRaw->GetNbinsX())/2.;
  if (intMax2>histBackground->GetXaxis()->GetXmax())
    intMax2=histBackground->GetXaxis()->GetXmax()-histBackground->GetBinWidth(histBackground->GetNbinsX())/2.;
  
  Double_t intRaw  = histRaw->Integral(histRaw->FindBin(intMin),histRaw->FindBin(intMax));
  Double_t intBack = histBackground->Integral(histBackground->FindBin(intMin),histBackground->FindBin(intMax));
  intRaw  += histRaw->Integral(histRaw->FindBin(intMin2),histRaw->FindBin(intMax2));
  intBack += histBackground->Integral(histBackground->FindBin(intMin2),histBackground->FindBin(intMax2));

  Double_t scaleFactor=intBack>0?intRaw/intBack:0.;
  if (intBack>0){
    histBackground->Sumw2();
    histBackground->Scale(scaleFactor);
  }

  return scaleFactor;
}

TObject* AliDielectronSignalBase::DescribePeakShape(ESignalExtractionMethod method, Bool_t replaceValErr,  TH1F *mcShape) {
  //
  // Describe the extracted peak by the selected method and overwrite signal etc if needed
  //

  fPeakMethod=method;
  Double_t data=0.;
  Double_t mc=0.;
  Double_t massPOI=TDatabasePDG::Instance()->GetParticle(fPOIpdg)->Mass();
  Double_t nPOI     = fHistSignal->GetBinContent(fHistSignal->FindBin(massPOI));
  Double_t binWidth = fHistSignal->GetBinWidth(  fHistSignal->FindBin(massPOI));
  TF1 *fit=0x0;
  Int_t parMass =-1;
  Int_t parSigma=-1;

  // do the scaling/fitting
  switch(fPeakMethod) {
  case kBinCounting: /*nothing needs to be done*/ 
    break;

  case kMCScaledMax:
    if(!mcShape) { printf(" ERROR: No MC histogram passed. Returning. \n"); return 0x0; }
    data = fHistSignal->GetBinContent(fHistSignal->FindBin(massPOI));
    mc   = mcShape->GetBinContent(fHistSignal->FindBin(massPOI));
    mcShape->Scale(data / mc );
    break;

  case kMCScaledInt:
    if(!mcShape) { printf(" ERROR: No MC histogram passed. Returning. \n"); return 0x0; }
    if(mcShape->GetBinWidth(1)!=fHistSignal->GetBinWidth(1)) 
      printf(" WARNING: MC and signal histogram have different bin widths. \n");
    data = fHistSignal->Integral(fHistSignal->FindBin(fIntMin),fHistSignal->FindBin(fIntMax));
    mc   = mcShape->Integral(mcShape->FindBin(fIntMin),mcShape->FindBin(fIntMax));
    mcShape->Scale(data / mc );
    break;

  case kMCFitted:
    if(!mcShape && !fgHistSimPM) { printf(" ERROR: No MC histogram passed or set. Returning. \n"); return 0x0; }
    if(!fgHistSimPM) fgHistSimPM=mcShape;
    fit = new TF1("fitMC",AliDielectronSignalFunc::PeakFunMC,fFitMin,fFitMax,1);
    fit->SetParNames("N");
    fHistSignal->Fit(fit,"RNI0");
    break;

  case kCrystalBall:
    fit = new TF1("fitCB",AliDielectronSignalFunc::PeakFunCB,fFitMin,fFitMax,5);
    fit->SetParNames("alpha","n","meanx","sigma","N");
    //  fit->SetParameters(-.2,5.,gMjpsi,.06,20);
    //  fit->SetParameters(1.,3.6,gMjpsi,.08,700);
    fit->SetParameters(0.4, 4.0, massPOI, 0.025, 1.3*nPOI);
    fit->SetParLimits(0, 0.0,           1.           );
    fit->SetParLimits(1, 0.01,          10.          );
    fit->SetParLimits(2, massPOI-0.02,  massPOI+0.02 );
    fit->SetParLimits(3, 0.001,          0.2         );
    fit->SetParLimits(4, 0.2*nPOI,      2.0*nPOI     );
    parMass=2;
    parSigma=3;
    fHistSignal->Fit(fit,"RNI0");
    break;

  case kGaus:
    fit = new TF1("fitGaus",AliDielectronSignalFunc::PeakFunGaus,fFitMin,fFitMax,3);
    //fit = new TF1("fitGaus","gaus",fFitMin,fFitMax);
    fit->SetParNames("N","meanx","sigma");
    fit->SetParameters(1.3*nPOI, massPOI, 0.025);
    fit->SetParLimits(0, 0.2*nPOI,      2.0*nPOI     );
    fit->SetParLimits(1, massPOI-0.02, massPOI+0.02);
    fit->SetParLimits(2, 0.001,         1.           );
    parMass=1;
    parSigma=2;
    fHistSignal->Fit(fit,"RNI0");
    break;

  }

  // overwrite values and errors if requested
  if(replaceValErr) {
    switch(fPeakMethod) {
    case kBinCounting:
      fValues(0) = fHistSignal->IntegralAndError(fHistSignal->FindBin(fIntMin), fHistSignal->FindBin(fIntMax), fErrors(0));
      SetSignificanceAndSOB();
      break;
    case kMCScaledMax:
    case kMCScaledInt:
      fValues(0) = mcShape->IntegralAndError(mcShape->FindBin(fIntMin), mcShape->FindBin(fIntMax), fErrors(0));
      SetSignificanceAndSOB();
      break;

    case kMCFitted:
    case kCrystalBall:
    case kGaus:
      fValues(0) = fit->Integral(fIntMin, fIntMax)/binWidth;
      fErrors(0) = fit->IntegralError(fIntMin, fIntMax)/binWidth;
      SetSignificanceAndSOB();
      break;
    }
    // set mass position and width
    if(parMass>=0) {
      fValues(4) = fit->GetParameter(parMass);
      fErrors(4) = fit->GetParError(parMass);
    }
    if(parSigma>=0) {
      fValues(5) = fit->GetParameter(parSigma);
      fErrors(5) = fit->GetParError(parSigma);
    }
    else {
      // calculate FWHM
      SetFWHM();
    }
  }

  // set the peak method obj
  switch(fPeakMethod) {
  case kBinCounting:
    fgPeakShape=(TH1F*)fHistSignal->Clone("BinCount");
    break;
  case kMCScaledMax:
  case kMCScaledInt:
    fgPeakShape=mcShape;
    break;
  case kMCFitted:
  case kCrystalBall:
  case kGaus:
    fgPeakShape=fit;
    break;
  }

  return fgPeakShape;

}
 AliDielectronSignalBase.cxx:1
 AliDielectronSignalBase.cxx:2
 AliDielectronSignalBase.cxx:3
 AliDielectronSignalBase.cxx:4
 AliDielectronSignalBase.cxx:5
 AliDielectronSignalBase.cxx:6
 AliDielectronSignalBase.cxx:7
 AliDielectronSignalBase.cxx:8
 AliDielectronSignalBase.cxx:9
 AliDielectronSignalBase.cxx:10
 AliDielectronSignalBase.cxx:11
 AliDielectronSignalBase.cxx:12
 AliDielectronSignalBase.cxx:13
 AliDielectronSignalBase.cxx:14
 AliDielectronSignalBase.cxx:15
 AliDielectronSignalBase.cxx:16
 AliDielectronSignalBase.cxx:17
 AliDielectronSignalBase.cxx:18
 AliDielectronSignalBase.cxx:19
 AliDielectronSignalBase.cxx:20
 AliDielectronSignalBase.cxx:21
 AliDielectronSignalBase.cxx:22
 AliDielectronSignalBase.cxx:23
 AliDielectronSignalBase.cxx:24
 AliDielectronSignalBase.cxx:25
 AliDielectronSignalBase.cxx:26
 AliDielectronSignalBase.cxx:27
 AliDielectronSignalBase.cxx:28
 AliDielectronSignalBase.cxx:29
 AliDielectronSignalBase.cxx:30
 AliDielectronSignalBase.cxx:31
 AliDielectronSignalBase.cxx:32
 AliDielectronSignalBase.cxx:33
 AliDielectronSignalBase.cxx:34
 AliDielectronSignalBase.cxx:35
 AliDielectronSignalBase.cxx:36
 AliDielectronSignalBase.cxx:37
 AliDielectronSignalBase.cxx:38
 AliDielectronSignalBase.cxx:39
 AliDielectronSignalBase.cxx:40
 AliDielectronSignalBase.cxx:41
 AliDielectronSignalBase.cxx:42
 AliDielectronSignalBase.cxx:43
 AliDielectronSignalBase.cxx:44
 AliDielectronSignalBase.cxx:45
 AliDielectronSignalBase.cxx:46
 AliDielectronSignalBase.cxx:47
 AliDielectronSignalBase.cxx:48
 AliDielectronSignalBase.cxx:49
 AliDielectronSignalBase.cxx:50
 AliDielectronSignalBase.cxx:51
 AliDielectronSignalBase.cxx:52
 AliDielectronSignalBase.cxx:53
 AliDielectronSignalBase.cxx:54
 AliDielectronSignalBase.cxx:55
 AliDielectronSignalBase.cxx:56
 AliDielectronSignalBase.cxx:57
 AliDielectronSignalBase.cxx:58
 AliDielectronSignalBase.cxx:59
 AliDielectronSignalBase.cxx:60
 AliDielectronSignalBase.cxx:61
 AliDielectronSignalBase.cxx:62
 AliDielectronSignalBase.cxx:63
 AliDielectronSignalBase.cxx:64
 AliDielectronSignalBase.cxx:65
 AliDielectronSignalBase.cxx:66
 AliDielectronSignalBase.cxx:67
 AliDielectronSignalBase.cxx:68
 AliDielectronSignalBase.cxx:69
 AliDielectronSignalBase.cxx:70
 AliDielectronSignalBase.cxx:71
 AliDielectronSignalBase.cxx:72
 AliDielectronSignalBase.cxx:73
 AliDielectronSignalBase.cxx:74
 AliDielectronSignalBase.cxx:75
 AliDielectronSignalBase.cxx:76
 AliDielectronSignalBase.cxx:77
 AliDielectronSignalBase.cxx:78
 AliDielectronSignalBase.cxx:79
 AliDielectronSignalBase.cxx:80
 AliDielectronSignalBase.cxx:81
 AliDielectronSignalBase.cxx:82
 AliDielectronSignalBase.cxx:83
 AliDielectronSignalBase.cxx:84
 AliDielectronSignalBase.cxx:85
 AliDielectronSignalBase.cxx:86
 AliDielectronSignalBase.cxx:87
 AliDielectronSignalBase.cxx:88
 AliDielectronSignalBase.cxx:89
 AliDielectronSignalBase.cxx:90
 AliDielectronSignalBase.cxx:91
 AliDielectronSignalBase.cxx:92
 AliDielectronSignalBase.cxx:93
 AliDielectronSignalBase.cxx:94
 AliDielectronSignalBase.cxx:95
 AliDielectronSignalBase.cxx:96
 AliDielectronSignalBase.cxx:97
 AliDielectronSignalBase.cxx:98
 AliDielectronSignalBase.cxx:99
 AliDielectronSignalBase.cxx:100
 AliDielectronSignalBase.cxx:101
 AliDielectronSignalBase.cxx:102
 AliDielectronSignalBase.cxx:103
 AliDielectronSignalBase.cxx:104
 AliDielectronSignalBase.cxx:105
 AliDielectronSignalBase.cxx:106
 AliDielectronSignalBase.cxx:107
 AliDielectronSignalBase.cxx:108
 AliDielectronSignalBase.cxx:109
 AliDielectronSignalBase.cxx:110
 AliDielectronSignalBase.cxx:111
 AliDielectronSignalBase.cxx:112
 AliDielectronSignalBase.cxx:113
 AliDielectronSignalBase.cxx:114
 AliDielectronSignalBase.cxx:115
 AliDielectronSignalBase.cxx:116
 AliDielectronSignalBase.cxx:117
 AliDielectronSignalBase.cxx:118
 AliDielectronSignalBase.cxx:119
 AliDielectronSignalBase.cxx:120
 AliDielectronSignalBase.cxx:121
 AliDielectronSignalBase.cxx:122
 AliDielectronSignalBase.cxx:123
 AliDielectronSignalBase.cxx:124
 AliDielectronSignalBase.cxx:125
 AliDielectronSignalBase.cxx:126
 AliDielectronSignalBase.cxx:127
 AliDielectronSignalBase.cxx:128
 AliDielectronSignalBase.cxx:129
 AliDielectronSignalBase.cxx:130
 AliDielectronSignalBase.cxx:131
 AliDielectronSignalBase.cxx:132
 AliDielectronSignalBase.cxx:133
 AliDielectronSignalBase.cxx:134
 AliDielectronSignalBase.cxx:135
 AliDielectronSignalBase.cxx:136
 AliDielectronSignalBase.cxx:137
 AliDielectronSignalBase.cxx:138
 AliDielectronSignalBase.cxx:139
 AliDielectronSignalBase.cxx:140
 AliDielectronSignalBase.cxx:141
 AliDielectronSignalBase.cxx:142
 AliDielectronSignalBase.cxx:143
 AliDielectronSignalBase.cxx:144
 AliDielectronSignalBase.cxx:145
 AliDielectronSignalBase.cxx:146
 AliDielectronSignalBase.cxx:147
 AliDielectronSignalBase.cxx:148
 AliDielectronSignalBase.cxx:149
 AliDielectronSignalBase.cxx:150
 AliDielectronSignalBase.cxx:151
 AliDielectronSignalBase.cxx:152
 AliDielectronSignalBase.cxx:153
 AliDielectronSignalBase.cxx:154
 AliDielectronSignalBase.cxx:155
 AliDielectronSignalBase.cxx:156
 AliDielectronSignalBase.cxx:157
 AliDielectronSignalBase.cxx:158
 AliDielectronSignalBase.cxx:159
 AliDielectronSignalBase.cxx:160
 AliDielectronSignalBase.cxx:161
 AliDielectronSignalBase.cxx:162
 AliDielectronSignalBase.cxx:163
 AliDielectronSignalBase.cxx:164
 AliDielectronSignalBase.cxx:165
 AliDielectronSignalBase.cxx:166
 AliDielectronSignalBase.cxx:167
 AliDielectronSignalBase.cxx:168
 AliDielectronSignalBase.cxx:169
 AliDielectronSignalBase.cxx:170
 AliDielectronSignalBase.cxx:171
 AliDielectronSignalBase.cxx:172
 AliDielectronSignalBase.cxx:173
 AliDielectronSignalBase.cxx:174
 AliDielectronSignalBase.cxx:175
 AliDielectronSignalBase.cxx:176
 AliDielectronSignalBase.cxx:177
 AliDielectronSignalBase.cxx:178
 AliDielectronSignalBase.cxx:179
 AliDielectronSignalBase.cxx:180
 AliDielectronSignalBase.cxx:181
 AliDielectronSignalBase.cxx:182
 AliDielectronSignalBase.cxx:183
 AliDielectronSignalBase.cxx:184
 AliDielectronSignalBase.cxx:185
 AliDielectronSignalBase.cxx:186
 AliDielectronSignalBase.cxx:187
 AliDielectronSignalBase.cxx:188
 AliDielectronSignalBase.cxx:189
 AliDielectronSignalBase.cxx:190
 AliDielectronSignalBase.cxx:191
 AliDielectronSignalBase.cxx:192
 AliDielectronSignalBase.cxx:193
 AliDielectronSignalBase.cxx:194
 AliDielectronSignalBase.cxx:195
 AliDielectronSignalBase.cxx:196
 AliDielectronSignalBase.cxx:197
 AliDielectronSignalBase.cxx:198
 AliDielectronSignalBase.cxx:199
 AliDielectronSignalBase.cxx:200
 AliDielectronSignalBase.cxx:201
 AliDielectronSignalBase.cxx:202
 AliDielectronSignalBase.cxx:203
 AliDielectronSignalBase.cxx:204
 AliDielectronSignalBase.cxx:205
 AliDielectronSignalBase.cxx:206
 AliDielectronSignalBase.cxx:207
 AliDielectronSignalBase.cxx:208
 AliDielectronSignalBase.cxx:209
 AliDielectronSignalBase.cxx:210
 AliDielectronSignalBase.cxx:211
 AliDielectronSignalBase.cxx:212
 AliDielectronSignalBase.cxx:213
 AliDielectronSignalBase.cxx:214
 AliDielectronSignalBase.cxx:215
 AliDielectronSignalBase.cxx:216
 AliDielectronSignalBase.cxx:217
 AliDielectronSignalBase.cxx:218
 AliDielectronSignalBase.cxx:219
 AliDielectronSignalBase.cxx:220
 AliDielectronSignalBase.cxx:221
 AliDielectronSignalBase.cxx:222
 AliDielectronSignalBase.cxx:223
 AliDielectronSignalBase.cxx:224
 AliDielectronSignalBase.cxx:225
 AliDielectronSignalBase.cxx:226
 AliDielectronSignalBase.cxx:227
 AliDielectronSignalBase.cxx:228
 AliDielectronSignalBase.cxx:229
 AliDielectronSignalBase.cxx:230
 AliDielectronSignalBase.cxx:231
 AliDielectronSignalBase.cxx:232
 AliDielectronSignalBase.cxx:233
 AliDielectronSignalBase.cxx:234
 AliDielectronSignalBase.cxx:235
 AliDielectronSignalBase.cxx:236
 AliDielectronSignalBase.cxx:237
 AliDielectronSignalBase.cxx:238
 AliDielectronSignalBase.cxx:239
 AliDielectronSignalBase.cxx:240
 AliDielectronSignalBase.cxx:241
 AliDielectronSignalBase.cxx:242
 AliDielectronSignalBase.cxx:243
 AliDielectronSignalBase.cxx:244
 AliDielectronSignalBase.cxx:245
 AliDielectronSignalBase.cxx:246
 AliDielectronSignalBase.cxx:247
 AliDielectronSignalBase.cxx:248
 AliDielectronSignalBase.cxx:249
 AliDielectronSignalBase.cxx:250
 AliDielectronSignalBase.cxx:251
 AliDielectronSignalBase.cxx:252
 AliDielectronSignalBase.cxx:253
 AliDielectronSignalBase.cxx:254
 AliDielectronSignalBase.cxx:255
 AliDielectronSignalBase.cxx:256
 AliDielectronSignalBase.cxx:257
 AliDielectronSignalBase.cxx:258
 AliDielectronSignalBase.cxx:259
 AliDielectronSignalBase.cxx:260
 AliDielectronSignalBase.cxx:261
 AliDielectronSignalBase.cxx:262
 AliDielectronSignalBase.cxx:263
 AliDielectronSignalBase.cxx:264
 AliDielectronSignalBase.cxx:265
 AliDielectronSignalBase.cxx:266
 AliDielectronSignalBase.cxx:267
 AliDielectronSignalBase.cxx:268
 AliDielectronSignalBase.cxx:269
 AliDielectronSignalBase.cxx:270
 AliDielectronSignalBase.cxx:271
 AliDielectronSignalBase.cxx:272
 AliDielectronSignalBase.cxx:273
 AliDielectronSignalBase.cxx:274
 AliDielectronSignalBase.cxx:275
 AliDielectronSignalBase.cxx:276
 AliDielectronSignalBase.cxx:277
 AliDielectronSignalBase.cxx:278
 AliDielectronSignalBase.cxx:279
 AliDielectronSignalBase.cxx:280
 AliDielectronSignalBase.cxx:281
 AliDielectronSignalBase.cxx:282
 AliDielectronSignalBase.cxx:283
 AliDielectronSignalBase.cxx:284
 AliDielectronSignalBase.cxx:285
 AliDielectronSignalBase.cxx:286
 AliDielectronSignalBase.cxx:287
 AliDielectronSignalBase.cxx:288
 AliDielectronSignalBase.cxx:289
 AliDielectronSignalBase.cxx:290
 AliDielectronSignalBase.cxx:291
 AliDielectronSignalBase.cxx:292
 AliDielectronSignalBase.cxx:293
 AliDielectronSignalBase.cxx:294
 AliDielectronSignalBase.cxx:295
 AliDielectronSignalBase.cxx:296
 AliDielectronSignalBase.cxx:297
 AliDielectronSignalBase.cxx:298
 AliDielectronSignalBase.cxx:299
 AliDielectronSignalBase.cxx:300
 AliDielectronSignalBase.cxx:301
 AliDielectronSignalBase.cxx:302
 AliDielectronSignalBase.cxx:303
 AliDielectronSignalBase.cxx:304
 AliDielectronSignalBase.cxx:305
 AliDielectronSignalBase.cxx:306
 AliDielectronSignalBase.cxx:307
 AliDielectronSignalBase.cxx:308
 AliDielectronSignalBase.cxx:309
 AliDielectronSignalBase.cxx:310
 AliDielectronSignalBase.cxx:311
 AliDielectronSignalBase.cxx:312
 AliDielectronSignalBase.cxx:313
 AliDielectronSignalBase.cxx:314
 AliDielectronSignalBase.cxx:315
 AliDielectronSignalBase.cxx:316
 AliDielectronSignalBase.cxx:317
 AliDielectronSignalBase.cxx:318
 AliDielectronSignalBase.cxx:319
 AliDielectronSignalBase.cxx:320
 AliDielectronSignalBase.cxx:321
 AliDielectronSignalBase.cxx:322
 AliDielectronSignalBase.cxx:323
 AliDielectronSignalBase.cxx:324
 AliDielectronSignalBase.cxx:325
 AliDielectronSignalBase.cxx:326
 AliDielectronSignalBase.cxx:327
 AliDielectronSignalBase.cxx:328
 AliDielectronSignalBase.cxx:329
 AliDielectronSignalBase.cxx:330
 AliDielectronSignalBase.cxx:331
 AliDielectronSignalBase.cxx:332
 AliDielectronSignalBase.cxx:333
 AliDielectronSignalBase.cxx:334
 AliDielectronSignalBase.cxx:335
 AliDielectronSignalBase.cxx:336
 AliDielectronSignalBase.cxx:337
 AliDielectronSignalBase.cxx:338
 AliDielectronSignalBase.cxx:339
 AliDielectronSignalBase.cxx:340
 AliDielectronSignalBase.cxx:341
 AliDielectronSignalBase.cxx:342
 AliDielectronSignalBase.cxx:343
 AliDielectronSignalBase.cxx:344
 AliDielectronSignalBase.cxx:345
 AliDielectronSignalBase.cxx:346
 AliDielectronSignalBase.cxx:347
 AliDielectronSignalBase.cxx:348
 AliDielectronSignalBase.cxx:349
 AliDielectronSignalBase.cxx:350
 AliDielectronSignalBase.cxx:351
 AliDielectronSignalBase.cxx:352
 AliDielectronSignalBase.cxx:353
 AliDielectronSignalBase.cxx:354
 AliDielectronSignalBase.cxx:355
 AliDielectronSignalBase.cxx:356
 AliDielectronSignalBase.cxx:357
 AliDielectronSignalBase.cxx:358
 AliDielectronSignalBase.cxx:359
 AliDielectronSignalBase.cxx:360
 AliDielectronSignalBase.cxx:361