1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
16 // Debug tree to look at the distribution of the variable we are cutting on
19 #ifndef ALIHFEDEBUGTREETASK_H
20 #define ALIHFEDEBUGTREETASK_H
22 #include "AliAnalysisTaskSE.h"
25 class AliHFEsignalCuts;
26 class AliTrackReference;
28 class TTreeSRedirector;
32 class AliHFEdebugTreeTask : public AliAnalysisTaskSE{
34 AliHFEdebugTreeTask();
35 AliHFEdebugTreeTask(const char *name);
36 virtual ~AliHFEdebugTreeTask();
38 virtual void UserCreateOutputObjects();
39 virtual void UserExec(Option_t *);
40 virtual void Terminate(Option_t *) {};
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; }
51 AliHFEdebugTreeTask(const AliHFEdebugTreeTask &);
52 AliHFEdebugTreeTask &operator=(const AliHFEdebugTreeTask &);
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;
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)