72 #include <Riostream.h> 86 Bool_t deferredInitialization)
88 fkStatusMaker(padStatusMaker),
93 fComputeOnDemand(deferredInitialization)
96 if (!deferredInitialization)
99 AliMUONVStore* neighboursStore = padStatusMaker.NeighboursStore();
102 while ( ( param = static_cast<AliMUONVCalibParam*>(next()) ) )
104 Int_t detElemId = param->
ID0();
105 Int_t manuId = param->
ID1();
106 ComputeStatusMap(detElemId,manuId);
121 while ( it.
Next(detElemId,manuId) )
152 fRejectProbabilities->Add(param);
163 fRejectList = fRejectProbabilities;
164 fRejectProbabilities = 0x0;
165 AliDebug(1,
"RejectList = RejectProbabilities");
170 AliWarning(
"Will run with non trivial survival probabilities for channels, manus, etc... Better check this is a simulation and not real data !");
176 fRejectList = fRejectProbabilities;
177 fRejectProbabilities = 0x0;
178 AliInfo(
"No RejectList found, so no RejectList will be used.");
201 detElemId,manuId,-1);
206 AliFatal(Form(
"Could not add manu %d of de %d",manuId,detElemId));
215 for ( Int_t manuChannel = 0; manuChannel < param->
Size(); ++manuChannel )
227 for ( Int_t i = 0; i < n; ++i )
235 if ( c < 0 )
continue;
245 if ( (
fMask != 0 ) && ( (status &
fMask) != 0 ) )
275 while ( ( paramProba = static_cast<AliMUONVCalibParam*>(next()) ) )
277 paramReject =
new AliMUONCalibParamNF(1,paramProba->Size(),paramProba->ID0(),paramProba->ID1(),0.0);
281 for ( Int_t i = 0; i < paramProba->Size(); ++i )
283 Float_t proba = paramProba->ValueAsFloat(i);
286 if ( proba > 0.0 && proba < 1.0 )
289 proba = ( x < proba ) ? 1.0 : 0.0;
305 Int_t manuChannel)
const 325 Int_t statusMap = param->
ValueAsInt(manuChannel);
333 assert (v==0.0 || v==1.0 );
Convert a pad status container into a pad status map container.
virtual TIterator * CreateIterator() const =0
Return an iterator to loop over the whole store.
AliMUONVCalibParam * Neighbours(Int_t detElemId, Int_t manuId) const
Float_t ManuProbability(Int_t detElemId, Int_t manuId) const
#define StdoutToAliDebug(level, whatever)
virtual Bool_t UnpackValue(Int_t, Int_t &, Int_t &) const
Unpack a value into a couple (a,b). Returns false if IsPacked()==kFALSE.
virtual Float_t ValueAsFloat(Int_t i, Int_t j=0) const =0
Implementation of AliMUONVCalibParam for tuples of floats.
virtual Int_t Size() const =0
The number of channels handled by this object.
static Int_t fgkSelfDead
! status bit map to tell a pad is bad
virtual void SetValueAsFloat(Int_t i, Int_t j, Float_t value)=0
Set one value, for channel i, dimension j. Consider value is a float.
Int_t fMask
! mask to be tested
AliMUONVStore * fRejectList
! reject list (which channels should be rejected, might change event-by-event for simulations) ...
AliMpDetElement * GetDetElement(Int_t detElemId, Bool_t warn=true) const
The class defines the electronics properties of detection element.
const AliMUONPadStatusMaker & fkStatusMaker
! to access pad statuses
Bool_t fComputeOnDemand
! whether we authorize to compute things on demand or not
AliMUONVCalibParam * ComputeStatusMap(Int_t detElemId, Int_t manuId) const
#define AliWarning(message)
Bool_t Next(Int_t &detElemId, Int_t &manuId)
Class to loop over all manus of MUON Tracker.
Float_t DetectionElementProbability(Int_t detElemId) const
Container of calibration values for a given number of channels.
static AliMpDDLStore * Instance(Bool_t warn=true)
AliMUONVStore * StatusMap() const
static Int_t ManuNofChannels()
Max number of channels per manu.
AliMUONVCalibParam * PadStatus(Int_t detElemId, Int_t manuId) const
Int_t GetBusPatchId(Int_t detElemId, Int_t manuId) const
Implementation of AliMUONVCalibParam for tuples of ints.
void RefreshRejectProbabilities()
Float_t ChannelProbability(Int_t detElemId, Int_t manuId, Int_t manuChannel) const
virtual Int_t ID0() const
First id of this object.
virtual Int_t ID1() const
Second id of this object (might not be required)
#define AliCodeTimerAuto(message, counter)
Bool_t IsBinary() const
Whether or not all our probabilities are 0.0 or 1.0.
virtual Int_t ValueAsInt(Int_t i, Int_t j=0) const =0
#define AliFatal(message)
Basic implementation of AliMUONVStore container using AliMpExMap internally.
virtual Bool_t Add(TObject *object)=0
Add an object to the store.
virtual ~AliMUONPadStatusMapMaker()
virtual Int_t Dimension() const =0
j indices in following methods are valid from 0 to Dimension()-1.
#define AliDebug(logLevel, message)
Object to hold the list of elements we want to reject from the reconstruction.
virtual void SetValueAsIntFast(Int_t i, Int_t j, Int_t value)=0
Same as above but w/o bound checkings.
AliMUONVStore * fRejectProbabilities
! reject probabilities (channel based, computed once per run)
Float_t BusPatchProbability(Int_t busPatchId) const
virtual void Clear(Option_t *opt="")=0
Clear ourselves (i.e. Reset)
virtual Int_t ValueAsIntFast(Int_t i, Int_t j=0) const =0
Same as above but w/o bound checking.
Bool_t IsConnectedChannel(Int_t manuId, Int_t manuChannel) const
Base class for MUON data stores.
Make a 2DStore of pad statuses, using different sources of information.
virtual TObject * FindObject(const char *name) const
Find an object by name.
AliMUONVStore * fStatusMap
! status map