]>
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: | |
50 | void CopyTo(AliMUONRejectList& destination) const; | |
51 | ||
52 | void ZeroOrOne(Float_t proba); | |
53 | ||
54 | private: | |
55 | ||
3e1866ad | 56 | Bool_t fIsBinary; ///< Whether or not we only store zeros and ones for probabilities |
fe783497 | 57 | |
3e1866ad | 58 | UInt_t fMaxNofDEs; ///< max number of detection elements (for allocation purposes) |
59 | UInt_t fMaxNofBPs; ///< max number of bus patches (for allocation purposes) | |
60 | UInt_t fMaxNofManus; ///< max number of manus (for allocation purposes) | |
fe783497 | 61 | |
3e1866ad | 62 | UInt_t fNofDEs; ///< actual number of detection elements for which we have probabilities |
63 | UInt_t fNofBPs; ///< actual number of bus patches for which we have probabilities | |
64 | UInt_t fNofManus; ///< actual number of manus for which we have probabilities | |
fe783497 | 65 | |
3e1866ad | 66 | /// array of detection element ids |
67 | UInt_t* fDEIds; //[fMaxNofDEs] | |
fe783497 | 68 | |
3e1866ad | 69 | /// array of probabilities of DEs |
70 | Float_t* fDEProbas; //[fMaxNofDEs] | |
fe783497 | 71 | |
3e1866ad | 72 | /// array of bus patch ids |
73 | UInt_t* fBPIds; //[fMaxNofBPs] | |
74 | ||
75 | /// array of proba for bus patches | |
76 | Float_t* fBPProbas; //[fMaxNofBPs] | |
77 | ||
78 | /// array of manu ids | |
79 | UInt_t* fManuIds; //[fMaxNofManus] | |
80 | ||
81 | /// array of proba for manus | |
82 | Float_t* fManuProbas; //[fMaxNofManus] | |
fe783497 | 83 | |
3e1866ad | 84 | AliMUONVStore* fChannels; ///< probabilities for all channels |
fe783497 | 85 | |
86 | ClassDef(AliMUONRejectList,1) // (probabilistic) Reject list for MUON Tracker | |
87 | }; | |
88 | ||
89 | #endif |