29 #include <Riostream.h>
31 #include <TObjArray.h>
32 #include <TObjString.h>
94 AliFatal(Form(
"Invalid chamber number %d",chamberID));
128 AliDebug(3,Form(
"Did not find DE %4d into chamber %d, will create it",
129 detElemId,chamberID));
132 "Detection Element");
133 Bool_t ok = chamber->
AddItem(detElemId,de);
136 AliError(Form(
"Could not add DE %4d into chamber %2d",detElemId,chamberID));
153 Bool_t ok = de->
AddItem(manuId,manu);
156 AliError(Form(
"Could not add manu %4d into DE %4d",manuId,detElemId));
166 Int_t manuId, Int_t manuChannel)
170 AliDebug(3,Form(
"DE %4d Manu %4d Channel %2d is missing",
171 detElemId,manuId,manuChannel));
174 Bool_t ok = manu->
AddItem(manuChannel,
new TObjString(Form(
"%2d",manuChannel)));
177 AliError(Form(
"Could not add channel %2d to manuId %4d in DE %4d",
178 manuChannel,manuId,detElemId));
188 AliDebug(3,Form(
"DE %4d Manu %4d is completely missing",
193 for ( Int_t i = 0; i < n; ++i )
205 TObjString* channel(0x0);
208 while ( ( channel = static_cast<TObjString*>(next()) ) )
210 lines.Add(
new TObjString(Form(
"\t\t\tChannel %s is missing or dead",
211 channel->GetString().Data())));
225 lines.Add(
new TObjString(Form(
"DE %5d",de.
GetID())));
228 while ( ( manu = static_cast<AliMUONCheckItem*>(next()) ) )
232 lines.Add(
new TObjString(Form(
"\t\tManu %4d is missing or dead",manu->
GetID())));
250 while ( ( de = static_cast<AliMUONCheckItem*>(next()) ) )
254 lines.Add(
new TObjString(Form(
"\tDE %4d is missing or dead",de->
GetID())));
280 for ( Int_t iChamber = 0; iChamber <= chambers.GetLast(); ++iChamber )
287 lines.Add(
new TObjString(Form(
"Chamber %2d is missing or dead",iChamber)));
307 return Validate(store,kCheck,config);
330 while ( it.
Next(detElemId,manuId) )
337 if ( !config || ( config && config->
FindObject(detElemId,manuId ) ) )
345 if (!check)
continue;
350 for ( Int_t manuChannel = 0 ; manuChannel < test->
Size(); ++manuChannel )
353 !check(*test,manuChannel) )
368 Float_t invalidFloatValue,
384 while ( it.
Next(detElemId,manuId) )
390 if ( !config || ( config && config->
FindObject(detElemId,manuId ) ) )
401 for ( Int_t manuChannel = 0 ; manuChannel < test->
Size(); ++manuChannel )
404 ( test->
ValueAsFloat(manuChannel,0) == invalidFloatValue ||
405 test->
ValueAsFloat(manuChannel,1) == invalidFloatValue ) )
TObject * GetItem(Int_t id) const
AliMUONCheckItem * GetChamber(Int_t chamberID)
virtual Float_t ValueAsFloat(Int_t i, Int_t j=0) const =0
virtual Int_t Size() const =0
The number of channels handled by this object.
TIterator * CreateIterator() const
virtual ~AliMUON2DStoreValidator()
Int_t GetID() const
Return the identifier of this item.
static void ReportChamber(TList &list, const AliMUONCheckItem &chamber)
Bool_t AddItem(Int_t id, TObject *item)
static void ReportManu(TList &list, const AliMUONCheckItem &manu)
void AddMissingManu(Int_t detElemId, Int_t manuId)
AliMpDetElement * GetDetElement(Int_t detElemId, Bool_t warn=true) const
TObjArray * fChambers
! Array of AliMUONCheckItem.
The class defines the electronics properties of detection element.
Bool_t Next(Int_t &detElemId, Int_t &manuId)
Class to loop over all manus of MUON Tracker.
AliMUONVStore * fStatus
! Statuses
Container of calibration values for a given number of channels.
static AliMpDDLStore * Instance(Bool_t warn=true)
static Int_t GetChamberId(Int_t detElemId, Bool_t warn=true)
static Int_t GetNofDEInChamber(Int_t chamberId, Bool_t warn=true)
void AddMissingChannel(Int_t detElemId, Int_t manuId, Int_t manuChannel)
AliMUONCheckItem * GetManu(Int_t detElemId, Int_t manuId)
TObjArray * Validate(const AliMUONVStore &store, Float_t invalidFloatValue, AliMUONVStore *config=0x0)
A structure used to gather information at different levels (ch,manu,de,chamber)
void Report(TList &lines) const
Reports what is missing, trying to be as concise as possible.
static void ReportDE(TList &list, const AliMUONCheckItem &de)
Bool_t IsConnectedChannel(Int_t manuId, Int_t manuChannel) const
Determine which channels, manus, DEs, stations are missing from a 2DStore.
Base class for MUON data stores.
AliMUONCheckItem * GetDE(Int_t detElemId)
static Int_t NofTrackingChambers()
Return number of tracking chambers.
virtual TObject * FindObject(const char *name) const
Find an object by name.