Major update of the HFE package (comments inside the code
[u/mrichter/AliRoot.git] / PWG3 / hfe / AliHFEefficiency.h
CommitLineData
70da6c5a 1/**************************************************************************
2* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3* *
4* Author: The ALICE Off-line Project. *
5* Contributors are mentioned in the code where appropriate. *
6* *
7* Permission to use, copy, modify and distribute this software and its *
8* documentation strictly for non-commercial purposes is hereby granted *
9* without fee, provided that the above copyright notice appears in all *
10* copies and that both the copyright notice and this permission notice *
11* appear in the supporting documentation. The authors make no claims *
12* about the suitability of this software for any purpose. It is *
13* provided "as is" without express or implied warranty. *
14**************************************************************************/
15//
16// Task for Efficiency studies
17// Used for testing classes AliHFEcontainer and AliHFEfilter
18// Creates Efficiency Histograms
19//
20#ifndef ALIHFEEFFICIENCY_H
21#define ALIHFEEFFICIENCY_H
22
23#include "AliAnalysisTaskSE.h"
24
25class TList;
26class TObjArray;
27class AliCFAcceptanceCuts;
28class AliCFEffGrid;
29class AliCFContainer;
30class AliHFEcollection;
31class AliHFEcontainer;
32class AliHFEtrackFilter;
33
34class AliHFEefficiency : public AliAnalysisTaskSE{
35 public:
36 AliHFEefficiency();
37 AliHFEefficiency(const Char_t *name);
38 ~AliHFEefficiency();
39
40 virtual void UserCreateOutputObjects();
41 virtual void UserExec(Option_t *);
42 virtual void Terminate(Option_t *);
43
44 void FilterMC();
45 void CutTRD() { fCutTRD = kTRUE; }
46
47 void SetHFEcontainer(AliHFEcontainer * const cont) { fEfficiency = cont; };
48 void UnsetHFEcontainer() { fEfficiency = NULL; }
49
50 void Load(const char* filename = "EffTask.root");
51 void PostProcess();
faee3b18 52 Bool_t IsRunningTerminate() const { return TestBit(kTerminate); }
53 void SetRunTerminate(Bool_t terminate = kTRUE) { SetBit(kTerminate, terminate); }
70da6c5a 54
55 void CalculatePTsmearing();
3a72645a 56 void DrawPtResolution(const TList * const l);
70da6c5a 57
58 private:
59 enum{
60 kNTracks,
61 kPt
62 };
faee3b18 63 enum{ // Bit Definition
64 kTerminate = BIT(18)
65 };
70da6c5a 66 AliHFEefficiency(const AliHFEefficiency &);
67 AliHFEefficiency &operator=(const AliHFEefficiency &);
68 void DrawSignalEfficiency(AliCFEffGrid *eff, AliCFContainer *cont, Int_t var);
69 void DrawCutEfficiency(AliCFEffGrid *eff, AliCFContainer *cont, Int_t var);
70
71 AliHFEtrackFilter *fFilter; //! Track Filter
72 AliHFEcutStep *fMCcut; //! MC Signal
73 AliCFAcceptanceCuts *fAcceptanceCuts; //! MC Acceptance cuts
74 AliHFEcontainer *fEfficiency; //! Efficiency container
75 AliHFEcollection *fOutput; //! QA histo container
76 Bool_t fCutTRD; // Apply TRD cuts
77
78 ClassDef(AliHFEefficiency, 1);
79};
80#endif