ROOT logo
/**************************************************************************
* Copyright(c) 1998-1999, 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.                  *
**************************************************************************/
//
// Task for Efficiency studies
// Used for testing classes AliHFEcontainer and AliHFEfilter
// Creates Efficiency Histograms
//
#ifndef ALIHFEEFFICIENCY_H
#define ALIHFEEFFICIENCY_H

#include "AliAnalysisTaskSE.h"

class TList;
class TObjArray;
class AliCFAcceptanceCuts;
class AliCFEffGrid;
class AliCFContainer;
class AliHFEcollection;
class AliHFEcontainer;
class AliHFEtrackFilter;

class AliHFEefficiency : public AliAnalysisTaskSE{
  public:
    AliHFEefficiency();
    AliHFEefficiency(const Char_t *name);
    ~AliHFEefficiency();

    virtual void UserCreateOutputObjects(); 
    virtual void UserExec(Option_t *);
    virtual void Terminate(Option_t *);

    void FilterMC();
    void CutTRD() { fCutTRD = kTRUE; }

    void SetHFEcontainer(AliHFEcontainer * const cont) { fEfficiency = cont; };
    void UnsetHFEcontainer() { fEfficiency = NULL; }

    void Load(const char* filename = "EffTask.root");
    void PostProcess();
    Bool_t IsRunningTerminate() const { return TestBit(kTerminate); }
    void SetRunTerminate(Bool_t terminate = kTRUE) { SetBit(kTerminate, terminate); }

    void CalculatePTsmearing();
    void DrawPtResolution(const TList * const l);
    void DrawSignalEfficiency(AliCFEffGrid *eff, AliCFContainer *cont, Int_t var);
    void DrawCutEfficiency(AliCFEffGrid *eff, AliCFContainer *cont, Int_t var);

  private:
    enum{
      kNTracks,
      kPt
    };
    enum{ // Bit Definition
      kTerminate = BIT(18)
    };
    AliHFEefficiency(const AliHFEefficiency &);
    AliHFEefficiency &operator=(const AliHFEefficiency &);


    AliHFEtrackFilter *fFilter;           //! Track Filter
    AliHFEcutStep *fMCcut;                //! MC Signal
    AliCFAcceptanceCuts *fAcceptanceCuts; //! MC Acceptance cuts
    AliHFEcontainer *fEfficiency;         //! Efficiency container
    AliHFEcollection *fOutput;            //! QA histo container
    Bool_t fCutTRD;                       //  Apply TRD cuts

    ClassDef(AliHFEefficiency, 1);
};
#endif
 AliHFEefficiency.h:1
 AliHFEefficiency.h:2
 AliHFEefficiency.h:3
 AliHFEefficiency.h:4
 AliHFEefficiency.h:5
 AliHFEefficiency.h:6
 AliHFEefficiency.h:7
 AliHFEefficiency.h:8
 AliHFEefficiency.h:9
 AliHFEefficiency.h:10
 AliHFEefficiency.h:11
 AliHFEefficiency.h:12
 AliHFEefficiency.h:13
 AliHFEefficiency.h:14
 AliHFEefficiency.h:15
 AliHFEefficiency.h:16
 AliHFEefficiency.h:17
 AliHFEefficiency.h:18
 AliHFEefficiency.h:19
 AliHFEefficiency.h:20
 AliHFEefficiency.h:21
 AliHFEefficiency.h:22
 AliHFEefficiency.h:23
 AliHFEefficiency.h:24
 AliHFEefficiency.h:25
 AliHFEefficiency.h:26
 AliHFEefficiency.h:27
 AliHFEefficiency.h:28
 AliHFEefficiency.h:29
 AliHFEefficiency.h:30
 AliHFEefficiency.h:31
 AliHFEefficiency.h:32
 AliHFEefficiency.h:33
 AliHFEefficiency.h:34
 AliHFEefficiency.h:35
 AliHFEefficiency.h:36
 AliHFEefficiency.h:37
 AliHFEefficiency.h:38
 AliHFEefficiency.h:39
 AliHFEefficiency.h:40
 AliHFEefficiency.h:41
 AliHFEefficiency.h:42
 AliHFEefficiency.h:43
 AliHFEefficiency.h:44
 AliHFEefficiency.h:45
 AliHFEefficiency.h:46
 AliHFEefficiency.h:47
 AliHFEefficiency.h:48
 AliHFEefficiency.h:49
 AliHFEefficiency.h:50
 AliHFEefficiency.h:51
 AliHFEefficiency.h:52
 AliHFEefficiency.h:53
 AliHFEefficiency.h:54
 AliHFEefficiency.h:55
 AliHFEefficiency.h:56
 AliHFEefficiency.h:57
 AliHFEefficiency.h:58
 AliHFEefficiency.h:59
 AliHFEefficiency.h:60
 AliHFEefficiency.h:61
 AliHFEefficiency.h:62
 AliHFEefficiency.h:63
 AliHFEefficiency.h:64
 AliHFEefficiency.h:65
 AliHFEefficiency.h:66
 AliHFEefficiency.h:67
 AliHFEefficiency.h:68
 AliHFEefficiency.h:69
 AliHFEefficiency.h:70
 AliHFEefficiency.h:71
 AliHFEefficiency.h:72
 AliHFEefficiency.h:73
 AliHFEefficiency.h:74
 AliHFEefficiency.h:75
 AliHFEefficiency.h:76
 AliHFEefficiency.h:77
 AliHFEefficiency.h:78
 AliHFEefficiency.h:79
 AliHFEefficiency.h:80
 AliHFEefficiency.h:81