]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONRejectList.h
- Swap sign of the eta in case of LHC13f - Add histogram for tracks which are matched...
[u/mrichter/AliRoot.git] / MUON / AliMUONRejectList.h
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
31   /// Clone this object
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 SetPCBProbability(Int_t detElemId, Int_t pcbNumber, Float_t proba=1.0);
48   void SetHVProbability(const char* dcsName, Float_t proba=1.0);
49   
50   void Print(Option_t* opt="") const;
51   
52 private:
53   void ZeroOrOne(Float_t proba);
54   
55 private:
56   
57   Bool_t fIsBinary; ///< Whether or not we only store zeros and ones for probabilities  
58
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)
62   
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
66
67   /// array of detection element ids
68   UInt_t* fDEIds; //[fMaxNofDEs] 
69
70   /// array of probabilities of DEs
71   Float_t* fDEProbas; //[fMaxNofDEs] 
72
73   /// array of bus patch ids
74   UInt_t* fBPIds; //[fMaxNofBPs] 
75   
76   /// array of proba for bus patches
77   Float_t* fBPProbas; //[fMaxNofBPs]
78
79   /// array of manu ids
80   UInt_t* fManuIds; //[fMaxNofManus]
81   
82   /// array of proba for manus
83   Float_t* fManuProbas; //[fMaxNofManus]
84
85   AliMUONVStore* fChannels; ///< probabilities for all channels
86   
87   ClassDef(AliMUONRejectList,1) // (probabilistic) Reject list for MUON Tracker
88 };
89
90 #endif