ROOT logo
AliRoot » MUON » AliMUONPadStatusMapMaker

class AliMUONPadStatusMapMaker: public TObject

 \class AliMUONPadStatusMapMaker

 Convert a pad statuses into pad status maps.

 A pad status is one 32-bits word describing whether this pad pedestal, gains
 hv is correct or not.

 A pad status *map* is one 32-bits (of which 24 only are used)
 word describing whether this pad neighbours are ok or not
 (whether a pad is ok or not is determined by applying a given
 bitmask to the pad status word). Each bit in this word is related to one
 neighbour, assuming the pad itself is at bit 0

 ----------------
 |  3 |  5 |  8 |
 ----------------
 |  2 |  0 |  7 |
 ----------------
 |  1 |  4 |  6 |
 ----------------

 Note that for instance in NonBending plane of slats, at the boundaries
 between two pad densities, the pictures is a bit different, e.g.
 (bits in () are always zero)

 so some care must be taken when designing a mask to be tested ;-) if you
 want to go farther than immediate neighbours...

 If a pad is at a physical boundary, is will for sure have some bits at 1
 (i.e. a non-existing neighbour is considered = bad).


 add something about the reject list/probabilities here... (LA)

 \author Laurent Aphecetche

Function Members (Methods)

public:
AliMUONPadStatusMapMaker(const AliMUONPadStatusMaker& padStatusMaker, Int_t mask, Bool_t deferredInitialization = kTRUE)
virtual~AliMUONPadStatusMapMaker()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
virtual const char*TObject::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidRefreshRejectProbabilities()
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
static Int_tSelfDeadMask()
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
AliMUONVStore*StatusMap() const
Int_tStatusMap(Int_t detElemId, Int_t manuId, Int_t manuChannel) const
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()

Data Members

public:
enum EBitNumbers { kLeftBottomBit
kLeftBit
kLeftTopBit
kBottomBit
kCenterBit
kTopBit
kRightBottomBit
kRightBit
kRightTopBit
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
private:
Bool_tfComputeOnDemand!< whether we authorize to compute things on demand or not
Int_tfMask!< mask to be tested
AliMUONVStore*fRejectList!< reject list (which channels should be rejected, might change event-by-event for simulations)
AliMUONVStore*fRejectProbabilities!< reject probabilities (channel based, computed once per run)
AliMUONVStore*fStatusMap!< status map
static Int_tfgkSelfDead!< status bit map to tell a pad is bad
const AliMUONPadStatusMaker&fkStatusMaker!< to access pad statuses

Class Charts

Inheritance Chart:
TObject
AliMUONPadStatusMapMaker

Function documentation

AliMUONPadStatusMapMaker(const AliMUONPadStatusMaker& padStatusMaker, Int_t mask, Bool_t deferredInitialization = kTRUE)
 ctor
~AliMUONPadStatusMapMaker()
 dtor
ComputeStatusMap(Int_t detElemId, Int_t manuId) const
 Compute the status map for a given manu, and add it to our internal
 fStatusMap internal storage
RefreshRejectProbabilities()
 From the (fixed) fRejectProbabilities, compute
 a fRejectList that will be valid for one event
 If fRejectProbabilities=0x0 it means we're dealing with
 trivial probabilities (0 or 1) and those are assumed to be already
 in fRejectList then.
StatusMap(Int_t detElemId, Int_t manuId, Int_t manuChannel) const
 Get the pad status map
AliMUONPadStatusMapMaker(const AliMUONPadStatusMaker& padStatusMaker, Int_t mask, Bool_t deferredInitialization = kTRUE)
AliMUONVStore* StatusMap() const
 Get access to internal status map store (for debug only, as it may not be complete,
    depending on whether you've already called StatusMap() for all possible de,manu,channel
    combinations or not...

{ return fStatusMap; }
Int_t SelfDeadMask()
 Return status bit map to tell a pad is bad
{ return fgkSelfDead; }
AliMUONPadStatusMapMaker& operator=(const AliMUONPadStatusMapMaker& )
 Not implemented