/* $Id$ */
-/// Macro to check/test pad status and pad status map makers
-// Laurent Aphecetche
+/// \ingroup macros
+/// \file MUONStatusMap.C
+/// \brief Macro to check/test pad status and pad status map makers
+///
+/// \author Laurent Aphecetche
#if !defined(__CINT__) || defined(__MAKECINT__)
#include "AliCDBManager.h"
#include "AliMUONCalibrationData.h"
-#include "AliMUONObjectPair.h"
+#include "AliMUONLogger.h"
#include "AliMUONPadStatusMaker.h"
#include "AliMUONPadStatusMapMaker.h"
-#include "AliMUONV2DStore.h"
+#include "AliMUONRecoParam.h"
#include "AliMUONVCalibParam.h"
-#include "AliMUONVDataIterator.h"
-#include "AliMpIntPair.h"
+#include "AliMUONVStore.h"
+#include "AliMpCDB.h"
+#include "AliMpConstants.h"
+#include "AliMpDDLStore.h"
+#include "AliMpDetElement.h"
+#include "AliMpManuIterator.h"
#include "Riostream.h"
#endif
-void findBad(const AliMUONV2DStore& status)
-{
- AliMUONVDataIterator* it = status.Iterator();
- AliMUONObjectPair* pair;
-
- while ( ( pair = static_cast<AliMUONObjectPair*>(it->Next()) ) )
- {
- AliMpIntPair* p = static_cast<AliMpIntPair*>(pair->First());
- Int_t detElemId = p->GetFirst();
- Int_t manuId = p->GetSecond();
- AliMUONVCalibParam* param = static_cast<AliMUONVCalibParam*>(pair->Second());
- Bool_t bad(kFALSE);
- for ( Int_t i = 0; i < param->Size(); ++i )
- {
- if ( param->ValueAsInt(0) ) bad = kTRUE;
- }
- if (bad)
- {
- cout << Form("DE %4d ManuId %4d",detElemId,manuId) << endl;
- }
- if (it->IsOwner()) delete pair;
- }
-}
+//AliMUONVStore* MUONStatusMap(const TString& cdbStorage = "alien://folder=/alice/data/2009/OCDB",
+AliMUONVStore* MUONStatusMap(const TString& cdbStorage = "local://$ALICE_ROOT/OCDB",
+ Int_t runNumber=67138, Bool_t statusOnly=kTRUE)
+{
-AliMUONV2DStore* MUONStatusMap(Int_t runNumber=0, Bool_t statusOnly=kFALSE, Int_t mask=0)
-{
- AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT/SHUTTLE/TestShuttle/TestCDB");
+ AliMUONRecoParam* recoParam = AliMUONRecoParam::GetCosmicParam();
+
+ AliMpCDB::LoadAll2();
+
+ AliCDBManager* man = AliCDBManager::Instance();
+
+ man->SetDefaultStorage(cdbStorage.Data());
+// man->SetSpecificStorage("MUON/Calib/OccupancyMap","local://$ALICE_ROOT/OCDB");
+// man->SetSpecificStorage("MUON/Calib/OccupancyMap","alien://folder=/alice/cern.ch/user/l/laphecet/OCDB");
+// man->SetSpecificStorage("MUON/Calib/RejectList","alien://folder=/alice/cern.ch/user/l/laphecet/OCDB");
+// man->SetSpecificStorage("MUON/Align/Data","alien://folder=/alice/cern.ch/user/l/laphecet/OCDB");
+
+// man->SetRun(runNumber);
+
AliMUONCalibrationData cd(runNumber);
AliMUONPadStatusMaker statusMaker(cd);
-// statusMaker.SetPedMeanLimits(50,200);
- statusMaker.SetPedSigmaLimits(0.5,2);
+ statusMaker.SetLimits(*recoParam);
+
+ delete recoParam;
+
+ UInt_t mask = recoParam->PadGoodnessMask();
- AliMUONV2DStore* status = statusMaker.MakeStatus();
-
- if ( status )
- {
- findBad(*status);
- }
- else
- {
- cout << "ERROR. Could not get status from CDB" << endl;
- return 0;
- }
+ statusMaker.Report(mask);
- if ( statusOnly ) return status;
+ if ( statusOnly ) return statusMaker.StatusStore();
- AliMUONPadStatusMapMaker statusMapMaker(cd);
+ const Bool_t deferredInitialization = kFALSE;
- return statusMapMaker.MakePadStatusMap(*status,mask);
+ AliMUONPadStatusMapMaker statusMapMaker(cd,mask,deferredInitialization);
+
+ return statusMapMaker.StatusMap();
}