]>
Commit | Line | Data |
---|---|---|
fe783497 | 1 | #ifndef ALIMUONREJECTLIST_H |
2 | #define ALIMUONREJECTLIST_H | |
3 | ||
4 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
6 | ||
7 | // $Id$ | |
8 | ||
9 | /// \ingroup rec | |
10 | /// \class AliMUONRejectList | |
11 | /// \brief Object to hold the list of elements we want to reject | |
12 | /// from the reconstruction | |
13 | /// | |
14 | // Author Laurent Aphecetche | |
15 | ||
16 | #ifndef ROOT_TObject | |
17 | # include "TObject.h" | |
18 | #endif | |
19 | ||
20 | class AliMUONVStore; | |
21 | ||
22 | class AliMUONRejectList : public TObject | |
23 | { | |
24 | public: | |
25 | AliMUONRejectList(TRootIOCtor* ioCtor); | |
26 | AliMUONRejectList(); | |
27 | AliMUONRejectList(const AliMUONRejectList& rl); | |
28 | AliMUONRejectList& operator=(const AliMUONRejectList& rl); | |
29 | virtual ~AliMUONRejectList(); | |
30 | ||
3e1866ad | 31 | /// Clone this object |
fe783497 | 32 | virtual TObject* Clone(const char* /*name*/="") const { return new AliMUONRejectList(*this); } |
33 | ||
34 | /// Whether or not all our probabilities are 0.0 or 1.0 | |
35 | Bool_t IsBinary() const { return fIsBinary; } | |
36 | ||
37 | Float_t DetectionElementProbability(Int_t detElemId) const; | |
38 | Float_t BusPatchProbability(Int_t busPatchId) const; | |
39 | Float_t ManuProbability(Int_t detElemId, Int_t manuId) const; | |
40 | Float_t ChannelProbability(Int_t detElemId, Int_t manuId, Int_t manuChannel) const; | |
41 | ||
42 | void SetDetectionElementProbability(Int_t detElemId, Float_t proba=1.0); | |
43 | void SetBusPatchProbability(Int_t busPatchId, Float_t proba=1.0); | |
44 | void SetManuProbability(Int_t detElemId, Int_t manuId, Float_t proba=1.0); | |
45 | void SetChannelProbability(Int_t detElemId, Int_t manuId, Int_t manuChannel, Float_t proba=1.0); | |
46 | ||
47 | void Print(Option_t* opt="") const; | |
48 | ||
49 | private: | |
fe783497 | 50 | void ZeroOrOne(Float_t proba); |
51 | ||
52 | private: | |
53 | ||
3e1866ad | 54 | Bool_t fIsBinary; ///< Whether or not we only store zeros and ones for probabilities |
fe783497 | 55 | |
3e1866ad | 56 | UInt_t fMaxNofDEs; ///< max number of detection elements (for allocation purposes) |
57 | UInt_t fMaxNofBPs; ///< max number of bus patches (for allocation purposes) | |
58 | UInt_t fMaxNofManus; ///< max number of manus (for allocation purposes) | |
fe783497 | 59 | |
3e1866ad | 60 | UInt_t fNofDEs; ///< actual number of detection elements for which we have probabilities |
61 | UInt_t fNofBPs; ///< actual number of bus patches for which we have probabilities | |
62 | UInt_t fNofManus; ///< actual number of manus for which we have probabilities | |
fe783497 | 63 | |
3e1866ad | 64 | /// array of detection element ids |
65 | UInt_t* fDEIds; //[fMaxNofDEs] | |
fe783497 | 66 | |
3e1866ad | 67 | /// array of probabilities of DEs |
68 | Float_t* fDEProbas; //[fMaxNofDEs] | |
fe783497 | 69 | |
3e1866ad | 70 | /// array of bus patch ids |
71 | UInt_t* fBPIds; //[fMaxNofBPs] | |
72 | ||
73 | /// array of proba for bus patches | |
74 | Float_t* fBPProbas; //[fMaxNofBPs] | |
75 | ||
76 | /// array of manu ids | |
77 | UInt_t* fManuIds; //[fMaxNofManus] | |
78 | ||
79 | /// array of proba for manus | |
80 | Float_t* fManuProbas; //[fMaxNofManus] | |
fe783497 | 81 | |
3e1866ad | 82 | AliMUONVStore* fChannels; ///< probabilities for all channels |
fe783497 | 83 | |
84 | ClassDef(AliMUONRejectList,1) // (probabilistic) Reject list for MUON Tracker | |
85 | }; | |
86 | ||
87 | #endif |