1 #ifndef ALIMUONTRACKERDATA_H 2 #define ALIMUONTRACKERDATA_H 15 #ifndef ALIMUONVTRACKERDATA_H 30 Bool_t issingleevent=kFALSE);
45 virtual Bool_t
Add(
const AliMUONVStore& channelValues, TArrayI* nofEventsPerDDL=0x0);
49 virtual Double_t
BusPatch(Int_t busPatchId, Int_t dim=0)
const;
51 virtual Double_t
Chamber(Int_t chamberId, Int_t dim=0)
const;
53 virtual Double_t
Channel(Int_t detElemId, Int_t manuId, Int_t manuChannel,
56 virtual void Clear(Option_t* opt=
"");
70 Double_t(*diff)(Double_t,Double_t));
74 const char* outnamebase,
77 virtual Double_t
Count(Int_t detElemId, Int_t manuId, Int_t manuChannel)
const;
85 virtual Bool_t
HasChamber(Int_t chamberId)
const;
91 virtual Bool_t
HasManu(Int_t detElemId, Int_t manuId)
const;
93 virtual Bool_t
HasPCB(Int_t detElemId, Int_t pcbIndex)
const;
98 virtual Double_t
Manu(Int_t detElemId, Int_t manuId, Int_t dim=0)
const;
112 virtual Double_t
PCB(Int_t detElemId, Int_t pcbIndex, Int_t dim=0)
const;
117 virtual void Print(Option_t* wildcard, Option_t* opt)
const;
134 Int_t manuChannel, Int_t dim=0);
137 Int_t manuChannel, Int_t dim=0)
const;
158 virtual Long64_t
Merge(TCollection* list);
168 void FillHisto(Int_t detElemId, Int_t manuId, Int_t manuChannel,
169 Int_t dim, Double_t value);
238 Int_t& detElemId, Int_t& manuId)
const;
Implementation of AliMUONVTrackerData.
virtual TString ExternalDimensionName(Int_t dim) const
Get the name of a given (external) dimension.
Bool_t fIsSingleEvent
whether we can deal with more than one event
virtual Int_t NumberOfEvents(Int_t ddlNumber) const
Returns the number of events we have seen so far.
Bool_t fIsManuLevelEnabled
whether we allow storing of manu (fManuValues) values
Int_t External2Internal(Int_t index) const
Convert from external to internal index.
Double_t fXmin
min x value for histograms
virtual Double_t Channel(Int_t detElemId, Int_t manuId, Int_t manuChannel, Int_t dim=0) const
Get the value for a given channel and given dimension.
virtual Int_t IndexOfOccupancyDimension() const
Index of the dimension containing the occupancy number.
Int_t DdlIdFromBusPatchId(Int_t buspatchid) const
void SetExternalDimensionName(Int_t index, const char *value)
AliMUONVCalibParam * CreatePCBParam(Int_t detElemId, Int_t pcbIndex) const
Bool_t UpdateNumberOfEvents(TArrayI *nevents)
Int_t fDimension
the dimension of the data
virtual Double_t BusPatch(Int_t busPatchId, Int_t dim=0) const
Get the value for a given buspatch and given dimension.
virtual Bool_t IsManuLevelEnabled() const
Whether we store values at the manu level or not.
AliMUONVStore * fHistos
the lowest histograms we have
AliMUONVStore * fBusPatchValues
the bus patch store
AliMUONVCalibParam * ChannelParam(Int_t detElemId, Int_t manuId, const AliMUONVCalibParam *external=0x0) const
virtual ~AliMUONTrackerData()
virtual void SetDimensionName(Int_t index, const char *value)
Set the name of a given dimension.
void BuildFromBPStore(const AliMUONVStore &bpStore)
Int_t * fHistogramming
whether we should histogram the dimension(s)
TObjArray * fExternalDimensionNames
the names of the external (i.e. original) dimensions
virtual Bool_t HasChamber(Int_t chamberId) const
Whether we have data for a given chamber.
void Add2D(const AliMUONVStore &src, AliMUONVStore &dest) const
virtual Bool_t Replace(const AliMUONVStore &channelValues)
Replace values.
AliMUONVCalibParam * CreateDouble(const AliMUONVCalibParam ¶m, Int_t detElemId, Int_t manuId) const
Double_t Value(const AliMUONVCalibParam ¶m, Int_t i, Int_t dim, Int_t ddlId) const
void BuildFromDEStore(const AliMUONVStore &deStore)
virtual Bool_t HasPCB(Int_t detElemId, Int_t pcbIndex) const
Whether we have data for a given PCB.
Int_t Dimension() const
The number of values we actually store for each item.
The class defines the electronics properties of detection element.
AliMUONVCalibParam * CreateChamberParam(Int_t chamberId) const
AliMUONVStore * fChamberValues
the chamber store
void Print(const char *method, TStopwatch &timer, Int_t n)
AliMUONVStore * fPCBValues
the pcb store
All four differences at once.
virtual Bool_t HasBusPatch(Int_t busPatchId) const
Whether we have data for a given buspath.
Container of calibration values for a given number of channels.
virtual void Print(Option_t *wildcard, Option_t *opt) const
Print, with option, all objects whose name matches wildcard.
virtual void DisableManuLevel()
Disable storing values at the manu level.
virtual TString DimensionName(Int_t dim) const
Get the name of a given (internal) dimension.
virtual Bool_t IsSingleEvent() const
Whether we can be run.
virtual Double_t PCB(Int_t detElemId, Int_t pcbIndex, Int_t dim=0) const
Get the value for a given PCDB and given dimension.
TObjArray * fDimensionNames
the names of the (internal) dimensions
virtual Bool_t IsPCBLevelEnabled() const
Whether we store values at the PCB level or not.
void SetInternalDimensionName(Int_t index, const char *value)
Bool_t fIsBustPatchLevelEnabled
whether we allow storing of bus patches (fBusPatchValues) values
AliMUONTrackerData & operator=(const AliMUONTrackerData &rhs)
Not implemented.
virtual Double_t Chamber(Int_t chamberId, Int_t dim=0) const
Get the value for a given chamber and given dimension.
virtual Bool_t IsHistogrammed(Int_t dim) const
Whether we have histograms for a given dimension, or not.
void AddCalibParams(const AliMUONVCalibParam &src, AliMUONVCalibParam &dest) const
Int_t DdlIdFromDetElemId(Int_t detelemid) const
AliMUONVCalibParam * CreateBusPatchParam(Int_t busPatch) const
virtual Int_t InternalToExternal(Int_t dim) const
Convert from internal to external dimension.
Int_t DdlIdFromChamberId(Int_t chamberid) const
Int_t GetParts(AliMUONVCalibParam *external, AliMUONVCalibParam *&chamber, AliMUONVCalibParam *&de, AliMUONVCalibParam *&busPatch, AliMUONVCalibParam *&pcb, AliMUONVCalibParam *&manu, AliMUONVCalibParam *&channel, AliMpDetElement *&mpde)
virtual Int_t IndexOfNumberDimension() const
Index of the dimension containing the number of time an item was hit.
virtual Double_t DetectionElement(Int_t detElemId, Int_t dim=0) const
Get the value for a given DE and given dimension.
virtual void DisableChannelLevel()
Disable storing values at the channel level.
Bool_t CanHistogram() const
Whether or not we can make histograms.
AliMUONVCalibParam * BusPatchParam(Int_t busPatch, Bool_t create=kFALSE) const
A very memory compact histogram to hold some tracker distributions.
virtual Double_t Count(Int_t detElemId, Int_t manuId, Int_t manuChannel) const
Get the number of times a given channel was hit.
void MakeHistogramForDimension(Int_t index, Bool_t value, Double_t xmin=0.0, Double_t xmax=4096.0)
Select a dimension to be histogrammed (if CanHistogram==kTRUE) only.
AliMUONVStore * fChannelValues
the channel store
AliMUONVStore * fDEValues
the detection element store
Bool_t Add(const AliMUONTrackerData &data)
void Add1D(const AliMUONVStore &src, AliMUONVStore &dest) const
virtual Bool_t HasManu(Int_t detElemId, Int_t manuId) const
Whether we have data for a given manu.
static void DispatchValue(AliMUONVCalibParam ¶m, Int_t index, Double_t y, Double_t ey, Int_t nchannels)
void FillHisto(Int_t detElemId, Int_t manuId, Int_t manuChannel, Int_t dim, Double_t value)
Double_t fXmax
max x value for histograms
AliMUONVCalibParam * DetectionElementParam(Int_t detElemId, Bool_t create=kFALSE) const
virtual Double_t Manu(Int_t detElemId, Int_t manuId, Int_t dim=0) const
Get the value for a given manu and given dimension.
static const Int_t fgkExtraDimension
to hold extra information
AliMUONVCalibParam * CreateDetectionElementParam(Int_t detElemId) const
Int_t fNevents
the number of events treated
virtual Int_t NumberOfDimensions() const
Returns the number of dimensions (i.e. the number of values) each element has.
virtual Bool_t HasDetectionElement(Int_t detElemId) const
Whether we have data for a given detection element.
AliMUONVCalibParam * CreateManuParam(Int_t detElemInd, Int_t manuId) const
static AliMUONVTrackerData * CompareData(const AliMUONVTrackerData &d1, const AliMUONVTrackerData &d2, const char *outname, Double_t(*diff)(Double_t, Double_t))
Object to hold the list of elements we want to reject from the reconstruction.
virtual void Clear(Option_t *opt="")
Reset the data.
virtual Int_t ExternalDimension() const
The number of values we are inputting.
virtual Bool_t IsBusPatchLevelEnabled() const
Whether we store values at the bus patch level or not.
virtual Bool_t IsChannelLevelEnabled() const
Whether we store values at the channel level or not.
AliMUONVCalibParam * ManuParam(Int_t detElemId, Int_t manuId, Bool_t create=kFALSE) const
AliMUONSparseHisto * GetManuSparseHisto(Int_t detElemId, Int_t manuId, Int_t dim=0)
virtual Long64_t Merge(TCollection *list)
To allow merging of different objects.
Bool_t InternalAdd(const AliMUONVStore &store, TArrayI *nevents)
Bool_t ExportAsASCIIOccupancyFile(const char *filename, Int_t runNumber) const
Int_t * fNofEventsPerDDL
the number of events treated (per DDL)
Base class for MUON data stores.
void GetDEManu(const AliMUONVCalibParam ¶m, Int_t &detElemId, Int_t &manuId) const
static const Int_t fgkVirtualExtraDimension
to give access to information not stored, but computed on the fly
AliMUONVCalibParam * ChamberParam(Int_t chamberId, Bool_t create=kFALSE) const
Base class for MUON data that can be presented at different levels in the hierarchy of the MUON syste...
AliMUONSparseHisto * GetChannelSparseHisto(Int_t detElemId, Int_t manuId, Int_t manuChannel, Int_t dim=0)
AliMUONVStore * fManuValues
the manu store
AliMUONTrackerData(const char *name="", const char *title="", Int_t dimension=0, Bool_t issingleevent=kFALSE)
virtual void HistogramRange(Double_t &xmin, Double_t &xmax) const
Get histogram range.
Bool_t fIsPCBLevelEnabled
whether we allow storing of PCB values (fPCBValues)
AliMUONVCalibParam * PCBParam(Int_t detElemId, Int_t pcbIndex, Bool_t create=kFALSE) const
Bool_t fIsChannelLevelEnabled
whether we allow storing of channel (fChannelValues) values