]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG3/hfe/AliHFEextraCuts.h
extra check on pointer
[u/mrichter/AliRoot.git] / PWG3 / hfe / AliHFEextraCuts.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**************************************************************************/
50685501 15//
16// Extra Cuts from the ALICE HFE Group
17// Container for cuts which are currently not implemented by
18// the Correction Framework
19//
75d81601 20#ifndef ALIHFEEXTRACUTS_H
21#define ALIHFEEXTRACUTS_H
809a4336 22
23// #ifndef ALICFCUTBASE_H
24#include "AliCFCutBase.h"
25// #endif
26
27class TList;
28
29class AliESDtrack;
30class AliMCParticle;
31
32class AliHFEextraCuts : public AliCFCutBase{
33 public:
34 typedef enum{
35 kFirst = 0,
36 kSecond = 1,
37 kBoth = 2,
38 kNone = 3,
39 kAny = 4
40 } ITSPixel_t;
41 AliHFEextraCuts(const Char_t *name, const Char_t *title);
42 AliHFEextraCuts(const AliHFEextraCuts &c);
43 AliHFEextraCuts &operator=(const AliHFEextraCuts &c);
75d81601 44 virtual ~AliHFEextraCuts();
809a4336 45
9eeae5d5 46 virtual Bool_t IsSelected(TObject *o);
47 virtual Bool_t IsSelected(TList *) { return kTRUE; };
809a4336 48
49 inline void SetClusterRatioTPC(Double_t ratio);
50 inline void SetRequireITSpixel(ITSPixel_t pixel);
51 inline void SetMinImpactParamR(Double_t impactParam);
52 inline void SetMaxImpactParamR(Double_t impactParam);
53 inline void SetMinImpactParamZ(Double_t impactParam);
54 inline void SetMaxImpactParamZ(Double_t impactParam);
55 inline void SetMinTrackletsTRD(Int_t minTracklets);
dbe3abbe 56
75d81601 57 void SetCheckITSstatus(Bool_t check) { fCheck = check; };
58 Bool_t GetCheckITSstatus() const { return fCheck; };
59
dbe3abbe 60 void SetDebugLevel(Int_t level) { fDebugLevel = level; };
61 Int_t GetDebugLevel() const { return fDebugLevel; };
809a4336 62
63 protected:
64 virtual void AddQAHistograms(TList *qaList);
65 Bool_t CheckESDCuts(AliESDtrack *track);
75d81601 66 Bool_t CheckMCCuts(AliMCParticle * /*track*/) const;
67 Bool_t CheckITSstatus(Int_t itsStatus) const;
809a4336 68 void FillQAhistosESD(AliESDtrack *track, UInt_t when);
69// void FillQAhistosMC(AliMCParticle *track, UInt_t when);
70 void FillCutCorrelation(ULong64_t survivedCut);
dbe3abbe 71 void PrintBitMap(Int_t bitmap);
809a4336 72
73 private:
74 typedef enum{
75 kMinImpactParamR = 0,
76 kMaxImpactParamR = 1,
77 kMinImpactParamZ = 2,
78 kMaxImpactParamZ = 3,
79 kClusterRatioTPC = 4,
80 kMinTrackletsTRD = 5,
81 kPixelITS = 6,
82 kNcuts = 7
83 } Cut_t;
84 enum{
85 //
86 // Common Constants
87 //
88 kBeforeCuts =0,
89 kAfterCuts = 1
90 };
91 ULong64_t fCutCorrelation; // Cut Correlation
92 ULong64_t fRequirements; // Cut Requirements
93 Float_t fImpactParamCut[4]; // Impact Parmameter Cut
94 Float_t fClusterRatioTPC; // Ratio of findable vs. found clusters in TPC
95 UChar_t fMinTrackletsTRD; // Min. Number of Tracklets inside TRD
96 UChar_t fPixelITS; // Cut on ITS Pixels
75d81601 97
98 Bool_t fCheck; // check
809a4336 99
100 TList *fQAlist; //! Directory for QA histograms
101
dbe3abbe 102 Int_t fDebugLevel; // Debug Level
103
809a4336 104 ClassDef(AliHFEextraCuts, 1) // Additional cuts implemented by the ALICE HFE group
105};
106
107//__________________________________________________________
108void AliHFEextraCuts::SetClusterRatioTPC(Double_t ratio) {
109 SETBIT(fRequirements, kClusterRatioTPC);
110 fClusterRatioTPC = ratio;
111}
112
113//__________________________________________________________
114void AliHFEextraCuts::SetRequireITSpixel(ITSPixel_t pixel) {
115 SETBIT(fRequirements, kPixelITS);
116 fPixelITS = pixel;
117}
118
119//__________________________________________________________
120void AliHFEextraCuts::SetMinImpactParamR(Double_t impactParam){
121 SETBIT(fRequirements, kMinImpactParamR);
122 fImpactParamCut[0] = impactParam;
123}
124
125//__________________________________________________________
126void AliHFEextraCuts::SetMaxImpactParamR(Double_t impactParam){
127 SETBIT(fRequirements, kMaxImpactParamR);
75d81601 128 fImpactParamCut[2] = impactParam;
809a4336 129}
130
131//__________________________________________________________
132void AliHFEextraCuts::SetMinImpactParamZ(Double_t impactParam){
133 SETBIT(fRequirements, kMinImpactParamZ);
75d81601 134 fImpactParamCut[1] = impactParam;
809a4336 135}
136
137//__________________________________________________________
138void AliHFEextraCuts::SetMaxImpactParamZ(Double_t impactParam){
139 SETBIT(fRequirements, kMaxImpactParamZ);
140 fImpactParamCut[3] = impactParam;
141}
142
143//__________________________________________________________
144void AliHFEextraCuts::SetMinTrackletsTRD(Int_t minTracklets){
145 SETBIT(fRequirements, kMinTrackletsTRD);
146 fMinTrackletsTRD = minTracklets;
147}
148#endif