#ifndef ALIMUONREJECTLIST_H
#define ALIMUONREJECTLIST_H
#ifndef ROOT_TObject
# include "TObject.h"
#endif
class AliMUONVStore;
class AliMUONRejectList : public TObject
{
public:
AliMUONRejectList(TRootIOCtor* ioCtor);
AliMUONRejectList();
AliMUONRejectList(const AliMUONRejectList& rl);
AliMUONRejectList& operator=(const AliMUONRejectList& rl);
virtual ~AliMUONRejectList();
virtual TObject* Clone(const char* ="") const { return new AliMUONRejectList(*this); }
Bool_t IsBinary() const { return fIsBinary; }
Float_t DetectionElementProbability(Int_t detElemId) const;
Float_t BusPatchProbability(Int_t busPatchId) const;
Float_t ManuProbability(Int_t detElemId, Int_t manuId) const;
Float_t ChannelProbability(Int_t detElemId, Int_t manuId, Int_t manuChannel) const;
void SetDetectionElementProbability(Int_t detElemId, Float_t proba=1.0);
void SetBusPatchProbability(Int_t busPatchId, Float_t proba=1.0);
void SetManuProbability(Int_t detElemId, Int_t manuId, Float_t proba=1.0);
void SetChannelProbability(Int_t detElemId, Int_t manuId, Int_t manuChannel, Float_t proba=1.0);
void SetPCBProbability(Int_t detElemId, Int_t pcbNumber, Float_t proba=1.0);
void SetHVProbability(const char* dcsName, Float_t proba=1.0);
void Print(Option_t* opt="") const;
private:
void ZeroOrOne(Float_t proba);
private:
Bool_t fIsBinary;
UInt_t fMaxNofDEs;
UInt_t fMaxNofBPs;
UInt_t fMaxNofManus;
UInt_t fNofDEs;
UInt_t fNofBPs;
UInt_t fNofManus;
UInt_t* fDEIds;
Float_t* fDEProbas;
UInt_t* fBPIds;
Float_t* fBPProbas;
UInt_t* fManuIds;
Float_t* fManuProbas;
AliMUONVStore* fChannels;
ClassDef(AliMUONRejectList,1)
};
#endif