]>
Commit | Line | Data |
---|---|---|
61f55b30 | 1 | /************************************************************************** |
2 | * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
3 | * See cxx source for full Copyright notice * | |
4 | **************************************************************************/ | |
5 | ||
6 | /* $Id: AliRsnPIDScheme.h,v 1.5 2007/02/21 14:33:25 pulvir Exp $ */ | |
7 | ||
8 | //------------------------------------------------------------------------- | |
9 | // Class AliRsnPIDDef | |
10 | // Simple collection of reconstructed tracks, selected from an ESD event | |
11 | // | |
12 | // author: A. Pulvirenti (email: alberto.pulvirenti@ct.infn.it) | |
13 | //------------------------------------------------------------------------- | |
14 | ||
15 | #ifndef ALIRSNPIDDEFESD_H | |
16 | #define ALIRSNPIDDEFESD_H | |
17 | ||
18 | class AliESDtrack; | |
19 | ||
6f4a992c | 20 | class AliRsnPIDDefESD : public TObject |
21 | { | |
61f55b30 | 22 | public: |
23 | ||
e343e521 | 24 | enum EDetector { |
6f4a992c | 25 | kITS = 0, |
61f55b30 | 26 | kTPC, |
27 | kTRD, | |
28 | kTOF, | |
29 | kHMPID, | |
30 | kDetectors | |
31 | }; | |
32 | ||
e343e521 | 33 | enum EScheme { |
61f55b30 | 34 | kSchemeESD = 0, |
35 | kSchemeITS, | |
36 | kSchemeTPC, | |
37 | kSchemeTOF, | |
38 | kSchemeITSandTPC, | |
39 | kSchemeITSandTOF, | |
40 | kSchemeTPCandTOF, | |
41 | kSchemeITSandTPCandTOF, | |
42 | kSchemeITSandTPCandTOFwithSP, | |
e343e521 | 43 | kSchemeITSandTPCorTOFwithSP, |
61f55b30 | 44 | kSchemeLastPIDType |
45 | }; | |
46 | ||
47 | AliRsnPIDDefESD(); | |
48 | AliRsnPIDDefESD(const AliRsnPIDDefESD& copy); | |
49 | virtual ~AliRsnPIDDefESD() {} | |
50 | ||
51 | void UseESDWeights() {fUseESDWeights = kTRUE;}; | |
52 | void NoESDWeights() {fUseESDWeights = kFALSE;} | |
53 | void SetScheme(EScheme scheme, Double_t divValue = 1.0); | |
54 | void IncludeDet(EDetector det) {if (CheckBounds(det)) fUseDet[det] = kTRUE;} | |
55 | void ExcludeDet(EDetector det) {if (CheckBounds(det)) fUseDet[det] = kFALSE;} | |
56 | void IncludeAll() { Int_t det; for (det = 0; det < kDetectors; det++) fUseDet[det] = kTRUE; } | |
57 | void ExcludeAll() { Int_t det; for (det = 0; det < kDetectors; det++) fUseDet[det] = kFALSE; } | |
e343e521 | 58 | void SetDivValue(EDetector det, Double_t value,Bool_t userHigher=kTRUE); |
61f55b30 | 59 | void ComputeWeights(AliESDtrack *track, Double_t *weights); |
60 | void PrintStatus(); | |
4fbb2459 | 61 | const char* DetName(EDetector det) const; |
7a3ae0d2 | 62 | const char* SchemeName(); |
61f55b30 | 63 | |
64 | private: | |
65 | ||
4fbb2459 | 66 | Bool_t CheckBounds(EDetector det) const { return (det >= kITS && det < kDetectors); } |
e343e521 | 67 | Bool_t CheckDivValue(EDetector det,Double_t value); |
61f55b30 | 68 | |
69 | Bool_t fUseESDWeights; // with this flag, ESD weights are used | |
70 | Bool_t fUseDet[kDetectors]; // flag to switch off info from a detector | |
e343e521 | 71 | Double_t fDivValue[kDetectors]; // division value for detector weight acceptance |
72 | Double_t fUseHigher[kDetectors]; // accepted higher or lower then div value | |
61f55b30 | 73 | |
74 | ClassDef(AliRsnPIDDefESD,1); | |
75 | }; | |
76 | ||
77 | #endif |