Since it contains fixes of coding rule violations, all classes are involved. Further...
[u/mrichter/AliRoot.git] / PWG3 / hfe / AliAnalysisTaskHFE.h
CommitLineData
809a4336 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#ifndef ALIANALYSISTASKHFE_H
16#define ALIANALYSISTASKHFE_H
17
dbe3abbe 18#ifndef ALIANALYSISTASK_H
809a4336 19#include "AliAnalysisTask.h"
dbe3abbe 20#endif
21
22#ifndef ROOT_THnSparse
23#include <THnSparse.h>
24#endif
809a4336 25
26class AliHFEpid;
27class AliHFEcuts;
259c3296 28class AliHFEmcQA;
29class AliHFEsecVtx;
809a4336 30class AliCFManager;
31class AliESDEvent;
32class AliESDtrackCuts;
33class AliMCEvent;
34class TH1I;
35class TList;
36
37class AliAnalysisTaskHFE : public AliAnalysisTask{
38 enum{
75d81601 39 kIsSecVtxOn = BIT(19),
40 kIsPriVtxOn = BIT(20)
809a4336 41 };
dbe3abbe 42 public:
75d81601 43 enum{
44 kPIDqa = 0,
45 kCUTqa = 1,
46 kMCqa = 2
47 };
dbe3abbe 48 AliAnalysisTaskHFE();
49 AliAnalysisTaskHFE(const AliAnalysisTaskHFE &ref);
50 AliAnalysisTaskHFE& operator=(const AliAnalysisTaskHFE &ref);
75d81601 51 virtual ~AliAnalysisTaskHFE();
809a4336 52
dbe3abbe 53 virtual void ConnectInputData(Option_t *);
54 virtual void CreateOutputObjects();
55 virtual void Exec(Option_t *);
56 virtual void Terminate(Option_t *);
809a4336 57
75d81601 58 Bool_t IsQAOn(Int_t qaLevel) const { return TESTBIT(fQAlevel, qaLevel); };
259c3296 59 Bool_t IsSecVtxOn() const { return TestBit(kIsSecVtxOn); };
dbe3abbe 60 Bool_t IsPriVtxOn() const { return TestBit(kIsPriVtxOn); };
75d81601 61 void SetQAOn(Int_t qaLevel) { SETBIT(fQAlevel, qaLevel); };
dbe3abbe 62 void SetPriVtxOn() { SetBit(kIsPriVtxOn, kTRUE); };
259c3296 63 void SetSecVtxOn() { SetBit(kIsSecVtxOn, kTRUE); };
75d81601 64 void SetPIDdetectors(Char_t *detectors){ fPIDdetectors = detectors; }
65 void AddPIDdetector(Char_t *detector);
66 void PrintStatus();
dbe3abbe 67
dbe3abbe 68 private:
809a4336 69 void MakeParticleContainer();
75d81601 70
71 ULong_t fQAlevel; // QA level
72 TString fPIDdetectors; // Detectors for Particle Identification
dbe3abbe 73 AliESDEvent *fESD; //! The ESD Event
74 AliMCEvent *fMC; //! The MC Event
75 AliCFManager *fCFM; //! Correction Framework Manager
259c3296 76 THnSparseF *fCorrelation; //! response matrix for unfolding
77 THnSparseF *fFakeElectrons; //! Contamination from Fake Electrons
dbe3abbe 78 AliHFEpid *fPID; //! PID
259c3296 79 AliHFEcuts *fCuts; //! Cut Collection
80 AliHFEsecVtx *fSecVtx; //! Secondary Vertex Analysis
dbe3abbe 81 AliHFEmcQA *fMCQA; //! MC QA
82 TH1I *fNEvents; //! counter for the number of Events
75d81601 83 TH1I *fNElectronTracksEvent; //! Number of Electron candidates after PID decision per Event
dbe3abbe 84 TList *fQA; //! QA histos for the cuts
259c3296 85 TList *fOutput; //! Container for Task Output
86 TList *fHistMCQA; //! Output container for MC QA histograms
87 TList *fHistSECVTX; //! Output container for sec. vertexing results
809a4336 88
dbe3abbe 89 ClassDef(AliAnalysisTaskHFE, 1) // The electron Analysis Task
809a4336 90};
91#endif
dbe3abbe 92