Previous commit had the bad side-effect of changing the behaviour of Raw QA to comput...
[u/mrichter/AliRoot.git] / MUON / AliMUONRejectList.h
CommitLineData
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
20class AliMUONVStore;
21
22class AliMUONRejectList : public TObject
23{
24public:
25 AliMUONRejectList(TRootIOCtor* ioCtor);
26 AliMUONRejectList();
27 AliMUONRejectList(const AliMUONRejectList& rl);
28 AliMUONRejectList& operator=(const AliMUONRejectList& rl);
29 virtual ~AliMUONRejectList();
30
31 virtual TObject* Clone(const char* /*name*/="") const { return new AliMUONRejectList(*this); }
32
33 /// Whether or not all our probabilities are 0.0 or 1.0
34 Bool_t IsBinary() const { return fIsBinary; }
35
36 Float_t DetectionElementProbability(Int_t detElemId) const;
37 Float_t BusPatchProbability(Int_t busPatchId) const;
38 Float_t ManuProbability(Int_t detElemId, Int_t manuId) const;
39 Float_t ChannelProbability(Int_t detElemId, Int_t manuId, Int_t manuChannel) const;
40
41 void SetDetectionElementProbability(Int_t detElemId, Float_t proba=1.0);
42 void SetBusPatchProbability(Int_t busPatchId, Float_t proba=1.0);
43 void SetManuProbability(Int_t detElemId, Int_t manuId, Float_t proba=1.0);
44 void SetChannelProbability(Int_t detElemId, Int_t manuId, Int_t manuChannel, Float_t proba=1.0);
45
46 void Print(Option_t* opt="") const;
47
48private:
49 void CopyTo(AliMUONRejectList& destination) const;
50
51 void ZeroOrOne(Float_t proba);
52
53private:
54
55 Bool_t fIsBinary; /// Whether or not we only store zeros and ones for probabilities
56
57 UInt_t fMaxNofDEs; //< max number of detection elements (for allocation purposes)
58 UInt_t fMaxNofBPs; //< max number of bus patches (for allocation purposes)
59 UInt_t fMaxNofManus; //< max number of manus (for allocation purposes)
60
61 UInt_t fNofDEs; //< actual number of detection elements for which we have probabilities
62 UInt_t fNofBPs; //< actual number of bus patches for which we have probabilities
63 UInt_t fNofManus; //< actual number of manus for which we have probabilities
64
65 UInt_t* fDEIds; //[fMaxNofDEs] array of detection element ids
66 Float_t* fDEProbas; //[fMaxNofDEs] array of probabilities of DEs
67
68 UInt_t* fBPIds; //[fMaxNofBPs] array of bus patch ids
69 Float_t* fBPProbas; //[fMaxNofBPs] array of proba for bus patches
70
71 UInt_t* fManuIds; //[fMaxNofManus] array of manu ids
72 Float_t* fManuProbas; //[fMaxNofManus] array of proba for manus
73
74 AliMUONVStore* fChannels; // probabilities for all channels
75
76 ClassDef(AliMUONRejectList,1) // (probabilistic) Reject list for MUON Tracker
77};
78
79#endif