Place the config and root file at the right place
[u/mrichter/AliRoot.git] / PWGHF / hfe / AliHFEdebugTreeTask.h
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 // Debug tree to look at the distribution of the variable we are cutting on
17 //
18 //
19 #ifndef ALIHFEDEBUGTREETASK_H
20 #define ALIHFEDEBUGTREETASK_H
21
22 #include "AliAnalysisTaskSE.h"
23
24 class AliHFEcuts;
25 class AliHFEsignalCuts;
26 class AliTrackReference;
27 class TString;
28 class TTreeSRedirector;
29 class AliHFEpidTRD;
30 class AliHFEpidTPC;
31
32 class AliHFEdebugTreeTask : public AliAnalysisTaskSE{
33   public:
34     AliHFEdebugTreeTask();
35     AliHFEdebugTreeTask(const char *name);
36     virtual ~AliHFEdebugTreeTask();
37
38     virtual void UserCreateOutputObjects();
39     virtual void UserExec(Option_t *);
40     virtual void Terminate(Option_t *) {};
41
42     // Setters for cuts
43     void SetFileName(const char *filename);
44     void SetMinNclustersTPC(Int_t mincl) { fNclustersTPC = mincl; };
45     void SetMinNclustersTPCPID(Int_t mincl) { fNclustersTPCPID = mincl; };
46     void SetMinNclustersITS(Int_t mincl) { fNclustersITS = mincl; };
47     Int_t GetElecSourceMC(TParticle * const mcpart); // return electron source id
48     AliHFEpidTPC *GetTPCResponse() { return fTPCpid; }
49     
50   private:
51     AliHFEdebugTreeTask(const AliHFEdebugTreeTask &);
52     AliHFEdebugTreeTask &operator=(const AliHFEdebugTreeTask &);
53
54     AliTrackReference *FindTrackReference(AliMCParticle *track, Float_t minRadius, Float_t maxRadius, Int_t detectorID);
55     Bool_t CheckITSstatus( const AliESDtrack * const esdtrack, Int_t layer) const;
56     
57     AliHFEcuts *fTrackCuts;           // Track
58     AliHFEsignalCuts *fSignalCuts;    // Signal Cuts
59     AliHFEpidTRD *fTRDpid;            // TRD PID
60     AliHFEpidTPC *fTPCpid;            // TPC PID
61     AliHFEextraCuts *fExtraCuts;      // HFE IP info
62     Int_t fNclustersTPC;              // Min Number of clusters in TPC
63     Int_t fNclustersTPCPID;           // Min Number of clusters for TPC PID
64     Int_t fNclustersITS;              // Min Number of clusters in ITS
65     TString fFilename;                // file name for the debug tree
66     TTreeSRedirector *fDebugTree;     // Debug Tree
67     Int_t fNparents; // number of heavy hadrons to be considered
68     Int_t fParentSelect[2][7]; // heavy hadron species
69     static const Int_t fgkGluon=21; // gluon pdg code
70     static const Int_t fgkMaxGener=10; // ancester level wanted to be checked 
71     static const Int_t fgkMaxIter=100; // number of iteration to find out matching particle 
72     static const Int_t fgkqType=7; // number of particle type to be checked
73     static const Int_t fgkEtaRanges=3; // cuts for different eta ranges
74     ClassDef(AliHFEdebugTreeTask, 1)
75 };
76 #endif
77