1 #ifndef ALIMUONREJECTLIST_H
2 #define ALIMUONREJECTLIST_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
10 /// \class AliMUONRejectList
11 /// \brief Object to hold the list of elements we want to reject
12 /// from the reconstruction
14 // Author Laurent Aphecetche
22 class AliMUONRejectList : public TObject
25 AliMUONRejectList(TRootIOCtor* ioCtor);
27 AliMUONRejectList(const AliMUONRejectList& rl);
28 AliMUONRejectList& operator=(const AliMUONRejectList& rl);
29 virtual ~AliMUONRejectList();
32 virtual TObject* Clone(const char* /*name*/="") const { return new AliMUONRejectList(*this); }
34 /// Whether or not all our probabilities are 0.0 or 1.0
35 Bool_t IsBinary() const { return fIsBinary; }
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;
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);
47 void SetPCBProbability(Int_t detElemId, Int_t pcbNumber, Float_t proba=1.0);
48 void SetHVProbability(const char* dcsName, Float_t proba=1.0);
50 void Print(Option_t* opt="") const;
53 void ZeroOrOne(Float_t proba);
57 Bool_t fIsBinary; ///< Whether or not we only store zeros and ones for probabilities
59 UInt_t fMaxNofDEs; ///< max number of detection elements (for allocation purposes)
60 UInt_t fMaxNofBPs; ///< max number of bus patches (for allocation purposes)
61 UInt_t fMaxNofManus; ///< max number of manus (for allocation purposes)
63 UInt_t fNofDEs; ///< actual number of detection elements for which we have probabilities
64 UInt_t fNofBPs; ///< actual number of bus patches for which we have probabilities
65 UInt_t fNofManus; ///< actual number of manus for which we have probabilities
67 /// array of detection element ids
68 UInt_t* fDEIds; //[fMaxNofDEs]
70 /// array of probabilities of DEs
71 Float_t* fDEProbas; //[fMaxNofDEs]
73 /// array of bus patch ids
74 UInt_t* fBPIds; //[fMaxNofBPs]
76 /// array of proba for bus patches
77 Float_t* fBPProbas; //[fMaxNofBPs]
80 UInt_t* fManuIds; //[fMaxNofManus]
82 /// array of proba for manus
83 Float_t* fManuProbas; //[fMaxNofManus]
85 AliMUONVStore* fChannels; ///< probabilities for all channels
87 ClassDef(AliMUONRejectList,1) // (probabilistic) Reject list for MUON Tracker