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