ROOT logo
#ifndef ALIANALYSISTASKEFFCONTBF_cxx
#define ALIANALYSISTASKEFFCONTBF_cxx

// ---------------------------------------------------------------------
//
// Task for calculating the efficiency and contamination of the Balance 
// Function for single particles and pairs
// 
// ---------------------------------------------------------------------

class TList;
class TH1F;
class TH3D;
class TH2F;
class TString;
class AliAODEvent;
class AliAODInputHandler;
class TH2D;

#include "AliPIDResponse.h"
#include "AliAnalysisTaskSE.h"

class AliAnalysisTaskEffContBF : public AliAnalysisTaskSE {
 public:
  AliAnalysisTaskEffContBF() : AliAnalysisTaskSE(), 
    fAOD(0), 
    fArrayMC(0),  
    fQAList(0), 
    fOutputList(0),
    fHistEventStats(0),
    fHistCentrality(0), 
    fHistNMult(0), 
    fHistVz(0),
    fHistNSigmaTPCvsPtbeforePID(0),
    fHistNSigmaTPCvsPtafterPID(0),  
    fHistContaminationSecondariesPlus(0),
    fHistContaminationSecondariesMinus(0),
    fHistContaminationPrimariesPlus(0),
    fHistContaminationPrimariesMinus(0),
    fHistGeneratedEtaPtPhiPlus(0),
    fHistSurvivedEtaPtPhiPlus(0),
    fHistGeneratedEtaPtPhiMinus(0),
    fHistSurvivedEtaPtPhiMinus(0),
    fHistGeneratedEtaPtPlusControl(0), 
    fHistSurvivedEtaPtPlusControl(0),
    fHistGeneratedEtaPtMinusControl(0), 
    fHistSurvivedEtaPtMinusControl(0), 
    fHistGeneratedEtaPtPlusPlus(0), 
    fHistSurvivedEtaPtPlusPlus(0),
    fHistGeneratedEtaPtMinusMinus(0), 
    fHistSurvivedEtaPtMinusMinus(0),
    fHistGeneratedEtaPtPlusMinus(0), 
    fHistSurvivedEtaPtPlusMinus(0),
    fHistGeneratedPhiEtaPlusPlus(0),
    fHistSurvivedPhiEtaPlusPlus(0),
    fHistGeneratedPhiEtaMinusMinus(0), 
    fHistSurvivedPhiEtaMinusMinus(0),
    fHistGeneratedPhiEtaPlusMinus(0),
    fHistSurvivedPhiEtaPlusMinus(0), 
    fUseCentrality(kFALSE), 
    fCentralityEstimator("V0M"), 
    fCentralityPercentileMin(0.0), 
    fCentralityPercentileMax(5.0), 
    fInjectedSignals(kFALSE),
    fPIDResponse(0),
    fElectronRejection(kFALSE),
    fElectronOnlyRejection(kFALSE),
    fElectronRejectionNSigma(-1.),
    fElectronRejectionMinPt(0.),
    fElectronRejectionMaxPt(1000.),
    fVxMax(3.0), 
    fVyMax(3.0), 
    fVzMax(10.), 
    fAODTrackCutBit(128),
    fMinNumberOfTPCClusters(80), 
    fMaxChi2PerTPCCluster(4.0),
    fMaxDCAxy(3.0), 
    fMaxDCAz(3.0),
    fMinPt(0.0), 
    fMaxPt(20.0), 
    fMinEta(-0.8),
    fMaxEta(0.8), 
    fEtaRangeMin(0.0), 
    fEtaRangeMax(1.6), 
    fPtRangeMin(0.0), 
    fPtRangeMax(20.0), 
    fEtaBin(100),
    fdEtaBin(64),
    fPtBin(100),
    fHistSurvived4EtaPtPhiPlus(0), 
    fHistSurvived8EtaPtPhiPlus(0){}
    AliAnalysisTaskEffContBF(const char *name);
    virtual ~AliAnalysisTaskEffContBF() {}
  
  virtual void   UserCreateOutputObjects();
  virtual void   UserExec(Option_t *option);
  virtual void   Terminate(Option_t *);
  
  Bool_t   IsLabelUsed(TArrayI array, Int_t label);

  void SetAODtrackCutBit(Int_t bit){
    fAODTrackCutBit = bit;
  }
  void SetVertexDiamond(Double_t vx, Double_t vy, Double_t vz) {
    fVxMax = vx;
    fVyMax = vy;
    fVzMax = vz;
  }

  //Centrality
  void UseCentrality() { fUseCentrality = kTRUE;}
  void SetCentralityEstimator(const char* centralityEstimator) {
    fCentralityEstimator = centralityEstimator;}
  void SetCentralityPercentileRange(Float_t min, Float_t max) { 
    fCentralityPercentileMin=min;
    fCentralityPercentileMax=max;
  }

  //Injected signals
  void SetRejectInjectedSignals() {fInjectedSignals = kTRUE;}

  // electron rejection
  void SetElectronRejection(Double_t gMaxNSigma){
    fElectronRejection = kTRUE;
    fElectronRejectionNSigma = gMaxNSigma;
  }
  
  void SetElectronOnlyRejection(Double_t gMaxNSigma){
    fElectronRejection       = kTRUE;
    fElectronOnlyRejection   = kTRUE;
    fElectronRejectionNSigma = gMaxNSigma;
  }
  
  void SetElectronRejectionPt(Double_t minPt,Double_t maxPt){
    fElectronRejectionMinPt  = minPt;
    fElectronRejectionMaxPt  = maxPt;
  }
  
  //Track cuts
  void SetMinNumberOfTPCClusters(Double_t min) {
    fMinNumberOfTPCClusters = min;}
  void SetMaxChi2PerTPCCluster(Double_t max) {
    fMaxChi2PerTPCCluster = max;}
  void SetMaxDCAxy(Double_t max) {
    fMaxDCAxy = max;}
  void SetMaxDCAz(Double_t max) {
    fMaxDCAz = max;}
  void SetMinPt(Double_t minPt) {
    fMinPt = minPt;}
  void SetMaxPt(Double_t maxPt) {
    fMaxPt = maxPt;}
 
  void SetEtaRange(Double_t minEta, Double_t maxEta, Int_t binEta, Double_t minRangeEta, Double_t maxRangeEta, Int_t bindEta){
    fMinEta = minEta;
    fMaxEta = maxEta;
    fEtaBin = binEta;
    fEtaRangeMax = maxRangeEta;
    fEtaRangeMin = minRangeEta;
    fdEtaBin = bindEta;
  }
  void SetPtRange(Double_t minRangePt, Double_t maxRangePt,Int_t binPt){
    fPtRangeMin = minRangePt;
    fPtRangeMax = maxRangePt;
    fPtBin = binPt;}  
 private:
  AliAODEvent* fAOD; //! AOD object  
  TClonesArray *fArrayMC; //! array of MC particles  
  TList       *fQAList; //! QA list
  TList       *fOutputList; //! Output list
  
  // QA histograms
  TH1F        *fHistEventStats; //!event stats
  TH1F        *fHistCentrality; //!centrality
  TH1F        *fHistNMult; //! nmult  
  TH1F        *fHistVz;//!
  TH2F        *fHistNSigmaTPCvsPtbeforePID;//TPC nsigma vs pT before PID cuts (QA histogram)
  TH2F        *fHistNSigmaTPCvsPtafterPID;//TPC nsigma vs pT after PID cuts (QA histogram)

  // output histograms
  TH3D        *fHistContaminationSecondariesPlus;//!
  TH3D        *fHistContaminationSecondariesMinus;//!
  TH3D        *fHistContaminationPrimariesPlus;//!
  TH3D        *fHistContaminationPrimariesMinus;//!
  
  // output histograms (single particles)
  TH3D        *fHistGeneratedEtaPtPhiPlus;//!correction map for positives (generated)
  TH3D        *fHistSurvivedEtaPtPhiPlus;//!correction map positives (survived)
 
  TH3D        *fHistGeneratedEtaPtPhiMinus;//!correction map for negatives (generated)
  TH3D        *fHistSurvivedEtaPtPhiMinus;//!correction map negatives (survived)
 
  TH2F        *fHistGeneratedEtaPtPlusControl;//!correction map for positives (generated)
  TH2F        *fHistSurvivedEtaPtPlusControl;//!correction map positives (survived)
 
  TH2F        *fHistGeneratedEtaPtMinusControl;//!correction map for negatives (generated)
  TH2F        *fHistSurvivedEtaPtMinusControl;//!correction map negatives (survived)
 
  // output histograms (pairs)
  TH2F        *fHistGeneratedEtaPtPlusPlus;//!correction map for ++ (generated)
  TH2F        *fHistSurvivedEtaPtPlusPlus;//!correction map ++ (survived)
 
  TH2F        *fHistGeneratedEtaPtMinusMinus;//!correction map for -- (generated)
  TH2F        *fHistSurvivedEtaPtMinusMinus;//!correction map -- (survived)
 
  TH2F        *fHistGeneratedEtaPtPlusMinus;//!correction map for +- (generated)
  TH2F        *fHistSurvivedEtaPtPlusMinus;//!correction map +- (survived)

  TH2F        *fHistGeneratedPhiEtaPlusPlus;//!correction map for ++ (generated)
  TH2F        *fHistSurvivedPhiEtaPlusPlus;//!correction map ++ (survived)
 
  TH2F        *fHistGeneratedPhiEtaMinusMinus;//!correction map for -- (generated)
  TH2F        *fHistSurvivedPhiEtaMinusMinus;//!correction map -- (survived)
 
  TH2F        *fHistGeneratedPhiEtaPlusMinus;//!correction map for +- (generated)
  TH2F        *fHistSurvivedPhiEtaPlusMinus;//!correction map +- (survived)

  Bool_t  fUseCentrality;// Bool_t use centrality or not
  TString fCentralityEstimator;//"V0M","TRK","TKL","ZDC","FMD"
  Float_t fCentralityPercentileMin, fCentralityPercentileMax; //min-max centrality percentile

  Bool_t fInjectedSignals;//Flag for using the rejection of injected signals

  AliPIDResponse *fPIDResponse;     //! PID response object
  Bool_t   fElectronRejection;//flag to use electron rejection
  Bool_t   fElectronOnlyRejection;//flag to use electron rejection with exclusive electron PID (no other particle in nsigma range)
  Double_t fElectronRejectionNSigma;//nsigma cut for electron rejection
  Double_t fElectronRejectionMinPt;//minimum pt for electron rejection (default = 0.)
  Double_t fElectronRejectionMaxPt;//maximum pt for electron rejection (default = 1000.)

  Double_t fVxMax;//vxmax
  Double_t fVyMax;//vymax
  Double_t fVzMax;//vzmax
  
  Int_t fAODTrackCutBit;//track cut bit from track selection (only used for AODs)

  Double_t fMinNumberOfTPCClusters;//!
  Double_t fMaxChi2PerTPCCluster;//!
  Double_t fMaxDCAxy, fMaxDCAz;//!
  Double_t fMinPt, fMaxPt;//!
  Double_t fMinEta, fMaxEta;//!
  Double_t fEtaRangeMin;// acceptance cuts 
  Double_t fEtaRangeMax; // acceptance cuts
  Double_t fPtRangeMin;  //acceptance cuts
  Double_t fPtRangeMax;  //acceptance cuts
  
  Int_t fEtaBin;  //acceptance cuts
  Int_t fdEtaBin;  //acceptance cuts
  Int_t fPtBin; //acceptance cuts

  TH3F        *fHistSurvived4EtaPtPhiPlus;//!
  TH3F        *fHistSurvived8EtaPtPhiPlus;//!

  AliAnalysisTaskEffContBF(const AliAnalysisTaskEffContBF&); // not implemented
  AliAnalysisTaskEffContBF& operator=(const AliAnalysisTaskEffContBF&); // not implemented
  
  ClassDef(AliAnalysisTaskEffContBF, 1); // example of analysis
};

#endif
 AliAnalysisTaskEffContBF.h:1
 AliAnalysisTaskEffContBF.h:2
 AliAnalysisTaskEffContBF.h:3
 AliAnalysisTaskEffContBF.h:4
 AliAnalysisTaskEffContBF.h:5
 AliAnalysisTaskEffContBF.h:6
 AliAnalysisTaskEffContBF.h:7
 AliAnalysisTaskEffContBF.h:8
 AliAnalysisTaskEffContBF.h:9
 AliAnalysisTaskEffContBF.h:10
 AliAnalysisTaskEffContBF.h:11
 AliAnalysisTaskEffContBF.h:12
 AliAnalysisTaskEffContBF.h:13
 AliAnalysisTaskEffContBF.h:14
 AliAnalysisTaskEffContBF.h:15
 AliAnalysisTaskEffContBF.h:16
 AliAnalysisTaskEffContBF.h:17
 AliAnalysisTaskEffContBF.h:18
 AliAnalysisTaskEffContBF.h:19
 AliAnalysisTaskEffContBF.h:20
 AliAnalysisTaskEffContBF.h:21
 AliAnalysisTaskEffContBF.h:22
 AliAnalysisTaskEffContBF.h:23
 AliAnalysisTaskEffContBF.h:24
 AliAnalysisTaskEffContBF.h:25
 AliAnalysisTaskEffContBF.h:26
 AliAnalysisTaskEffContBF.h:27
 AliAnalysisTaskEffContBF.h:28
 AliAnalysisTaskEffContBF.h:29
 AliAnalysisTaskEffContBF.h:30
 AliAnalysisTaskEffContBF.h:31
 AliAnalysisTaskEffContBF.h:32
 AliAnalysisTaskEffContBF.h:33
 AliAnalysisTaskEffContBF.h:34
 AliAnalysisTaskEffContBF.h:35
 AliAnalysisTaskEffContBF.h:36
 AliAnalysisTaskEffContBF.h:37
 AliAnalysisTaskEffContBF.h:38
 AliAnalysisTaskEffContBF.h:39
 AliAnalysisTaskEffContBF.h:40
 AliAnalysisTaskEffContBF.h:41
 AliAnalysisTaskEffContBF.h:42
 AliAnalysisTaskEffContBF.h:43
 AliAnalysisTaskEffContBF.h:44
 AliAnalysisTaskEffContBF.h:45
 AliAnalysisTaskEffContBF.h:46
 AliAnalysisTaskEffContBF.h:47
 AliAnalysisTaskEffContBF.h:48
 AliAnalysisTaskEffContBF.h:49
 AliAnalysisTaskEffContBF.h:50
 AliAnalysisTaskEffContBF.h:51
 AliAnalysisTaskEffContBF.h:52
 AliAnalysisTaskEffContBF.h:53
 AliAnalysisTaskEffContBF.h:54
 AliAnalysisTaskEffContBF.h:55
 AliAnalysisTaskEffContBF.h:56
 AliAnalysisTaskEffContBF.h:57
 AliAnalysisTaskEffContBF.h:58
 AliAnalysisTaskEffContBF.h:59
 AliAnalysisTaskEffContBF.h:60
 AliAnalysisTaskEffContBF.h:61
 AliAnalysisTaskEffContBF.h:62
 AliAnalysisTaskEffContBF.h:63
 AliAnalysisTaskEffContBF.h:64
 AliAnalysisTaskEffContBF.h:65
 AliAnalysisTaskEffContBF.h:66
 AliAnalysisTaskEffContBF.h:67
 AliAnalysisTaskEffContBF.h:68
 AliAnalysisTaskEffContBF.h:69
 AliAnalysisTaskEffContBF.h:70
 AliAnalysisTaskEffContBF.h:71
 AliAnalysisTaskEffContBF.h:72
 AliAnalysisTaskEffContBF.h:73
 AliAnalysisTaskEffContBF.h:74
 AliAnalysisTaskEffContBF.h:75
 AliAnalysisTaskEffContBF.h:76
 AliAnalysisTaskEffContBF.h:77
 AliAnalysisTaskEffContBF.h:78
 AliAnalysisTaskEffContBF.h:79
 AliAnalysisTaskEffContBF.h:80
 AliAnalysisTaskEffContBF.h:81
 AliAnalysisTaskEffContBF.h:82
 AliAnalysisTaskEffContBF.h:83
 AliAnalysisTaskEffContBF.h:84
 AliAnalysisTaskEffContBF.h:85
 AliAnalysisTaskEffContBF.h:86
 AliAnalysisTaskEffContBF.h:87
 AliAnalysisTaskEffContBF.h:88
 AliAnalysisTaskEffContBF.h:89
 AliAnalysisTaskEffContBF.h:90
 AliAnalysisTaskEffContBF.h:91
 AliAnalysisTaskEffContBF.h:92
 AliAnalysisTaskEffContBF.h:93
 AliAnalysisTaskEffContBF.h:94
 AliAnalysisTaskEffContBF.h:95
 AliAnalysisTaskEffContBF.h:96
 AliAnalysisTaskEffContBF.h:97
 AliAnalysisTaskEffContBF.h:98
 AliAnalysisTaskEffContBF.h:99
 AliAnalysisTaskEffContBF.h:100
 AliAnalysisTaskEffContBF.h:101
 AliAnalysisTaskEffContBF.h:102
 AliAnalysisTaskEffContBF.h:103
 AliAnalysisTaskEffContBF.h:104
 AliAnalysisTaskEffContBF.h:105
 AliAnalysisTaskEffContBF.h:106
 AliAnalysisTaskEffContBF.h:107
 AliAnalysisTaskEffContBF.h:108
 AliAnalysisTaskEffContBF.h:109
 AliAnalysisTaskEffContBF.h:110
 AliAnalysisTaskEffContBF.h:111
 AliAnalysisTaskEffContBF.h:112
 AliAnalysisTaskEffContBF.h:113
 AliAnalysisTaskEffContBF.h:114
 AliAnalysisTaskEffContBF.h:115
 AliAnalysisTaskEffContBF.h:116
 AliAnalysisTaskEffContBF.h:117
 AliAnalysisTaskEffContBF.h:118
 AliAnalysisTaskEffContBF.h:119
 AliAnalysisTaskEffContBF.h:120
 AliAnalysisTaskEffContBF.h:121
 AliAnalysisTaskEffContBF.h:122
 AliAnalysisTaskEffContBF.h:123
 AliAnalysisTaskEffContBF.h:124
 AliAnalysisTaskEffContBF.h:125
 AliAnalysisTaskEffContBF.h:126
 AliAnalysisTaskEffContBF.h:127
 AliAnalysisTaskEffContBF.h:128
 AliAnalysisTaskEffContBF.h:129
 AliAnalysisTaskEffContBF.h:130
 AliAnalysisTaskEffContBF.h:131
 AliAnalysisTaskEffContBF.h:132
 AliAnalysisTaskEffContBF.h:133
 AliAnalysisTaskEffContBF.h:134
 AliAnalysisTaskEffContBF.h:135
 AliAnalysisTaskEffContBF.h:136
 AliAnalysisTaskEffContBF.h:137
 AliAnalysisTaskEffContBF.h:138
 AliAnalysisTaskEffContBF.h:139
 AliAnalysisTaskEffContBF.h:140
 AliAnalysisTaskEffContBF.h:141
 AliAnalysisTaskEffContBF.h:142
 AliAnalysisTaskEffContBF.h:143
 AliAnalysisTaskEffContBF.h:144
 AliAnalysisTaskEffContBF.h:145
 AliAnalysisTaskEffContBF.h:146
 AliAnalysisTaskEffContBF.h:147
 AliAnalysisTaskEffContBF.h:148
 AliAnalysisTaskEffContBF.h:149
 AliAnalysisTaskEffContBF.h:150
 AliAnalysisTaskEffContBF.h:151
 AliAnalysisTaskEffContBF.h:152
 AliAnalysisTaskEffContBF.h:153
 AliAnalysisTaskEffContBF.h:154
 AliAnalysisTaskEffContBF.h:155
 AliAnalysisTaskEffContBF.h:156
 AliAnalysisTaskEffContBF.h:157
 AliAnalysisTaskEffContBF.h:158
 AliAnalysisTaskEffContBF.h:159
 AliAnalysisTaskEffContBF.h:160
 AliAnalysisTaskEffContBF.h:161
 AliAnalysisTaskEffContBF.h:162
 AliAnalysisTaskEffContBF.h:163
 AliAnalysisTaskEffContBF.h:164
 AliAnalysisTaskEffContBF.h:165
 AliAnalysisTaskEffContBF.h:166
 AliAnalysisTaskEffContBF.h:167
 AliAnalysisTaskEffContBF.h:168
 AliAnalysisTaskEffContBF.h:169
 AliAnalysisTaskEffContBF.h:170
 AliAnalysisTaskEffContBF.h:171
 AliAnalysisTaskEffContBF.h:172
 AliAnalysisTaskEffContBF.h:173
 AliAnalysisTaskEffContBF.h:174
 AliAnalysisTaskEffContBF.h:175
 AliAnalysisTaskEffContBF.h:176
 AliAnalysisTaskEffContBF.h:177
 AliAnalysisTaskEffContBF.h:178
 AliAnalysisTaskEffContBF.h:179
 AliAnalysisTaskEffContBF.h:180
 AliAnalysisTaskEffContBF.h:181
 AliAnalysisTaskEffContBF.h:182
 AliAnalysisTaskEffContBF.h:183
 AliAnalysisTaskEffContBF.h:184
 AliAnalysisTaskEffContBF.h:185
 AliAnalysisTaskEffContBF.h:186
 AliAnalysisTaskEffContBF.h:187
 AliAnalysisTaskEffContBF.h:188
 AliAnalysisTaskEffContBF.h:189
 AliAnalysisTaskEffContBF.h:190
 AliAnalysisTaskEffContBF.h:191
 AliAnalysisTaskEffContBF.h:192
 AliAnalysisTaskEffContBF.h:193
 AliAnalysisTaskEffContBF.h:194
 AliAnalysisTaskEffContBF.h:195
 AliAnalysisTaskEffContBF.h:196
 AliAnalysisTaskEffContBF.h:197
 AliAnalysisTaskEffContBF.h:198
 AliAnalysisTaskEffContBF.h:199
 AliAnalysisTaskEffContBF.h:200
 AliAnalysisTaskEffContBF.h:201
 AliAnalysisTaskEffContBF.h:202
 AliAnalysisTaskEffContBF.h:203
 AliAnalysisTaskEffContBF.h:204
 AliAnalysisTaskEffContBF.h:205
 AliAnalysisTaskEffContBF.h:206
 AliAnalysisTaskEffContBF.h:207
 AliAnalysisTaskEffContBF.h:208
 AliAnalysisTaskEffContBF.h:209
 AliAnalysisTaskEffContBF.h:210
 AliAnalysisTaskEffContBF.h:211
 AliAnalysisTaskEffContBF.h:212
 AliAnalysisTaskEffContBF.h:213
 AliAnalysisTaskEffContBF.h:214
 AliAnalysisTaskEffContBF.h:215
 AliAnalysisTaskEffContBF.h:216
 AliAnalysisTaskEffContBF.h:217
 AliAnalysisTaskEffContBF.h:218
 AliAnalysisTaskEffContBF.h:219
 AliAnalysisTaskEffContBF.h:220
 AliAnalysisTaskEffContBF.h:221
 AliAnalysisTaskEffContBF.h:222
 AliAnalysisTaskEffContBF.h:223
 AliAnalysisTaskEffContBF.h:224
 AliAnalysisTaskEffContBF.h:225
 AliAnalysisTaskEffContBF.h:226
 AliAnalysisTaskEffContBF.h:227
 AliAnalysisTaskEffContBF.h:228
 AliAnalysisTaskEffContBF.h:229
 AliAnalysisTaskEffContBF.h:230
 AliAnalysisTaskEffContBF.h:231
 AliAnalysisTaskEffContBF.h:232
 AliAnalysisTaskEffContBF.h:233
 AliAnalysisTaskEffContBF.h:234
 AliAnalysisTaskEffContBF.h:235
 AliAnalysisTaskEffContBF.h:236
 AliAnalysisTaskEffContBF.h:237
 AliAnalysisTaskEffContBF.h:238
 AliAnalysisTaskEffContBF.h:239
 AliAnalysisTaskEffContBF.h:240
 AliAnalysisTaskEffContBF.h:241
 AliAnalysisTaskEffContBF.h:242
 AliAnalysisTaskEffContBF.h:243
 AliAnalysisTaskEffContBF.h:244
 AliAnalysisTaskEffContBF.h:245
 AliAnalysisTaskEffContBF.h:246
 AliAnalysisTaskEffContBF.h:247
 AliAnalysisTaskEffContBF.h:248
 AliAnalysisTaskEffContBF.h:249
 AliAnalysisTaskEffContBF.h:250
 AliAnalysisTaskEffContBF.h:251
 AliAnalysisTaskEffContBF.h:252
 AliAnalysisTaskEffContBF.h:253
 AliAnalysisTaskEffContBF.h:254
 AliAnalysisTaskEffContBF.h:255
 AliAnalysisTaskEffContBF.h:256
 AliAnalysisTaskEffContBF.h:257
 AliAnalysisTaskEffContBF.h:258
 AliAnalysisTaskEffContBF.h:259