]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/MUONStatusMap.C
Add -Wconversion to Mac warnings
[u/mrichter/AliRoot.git] / MUON / MUONStatusMap.C
index 000668517504ab7af5c00e2a0c376d650539f907..7b6b8d8126cf59473421d0dd4ba440134f936e89 100644 (file)
 
 /* $Id$ */
 
-/// Macro to check/test pad status and pad status map makers
+/// \ingroup macros
+/// \file MUONStatusMap.C
+/// \brief Macro to check/test pad status and pad status map makers
 ///
-// Laurent Aphecetche
+/// \author Laurent Aphecetche
 
 #if !defined(__CINT__) || defined(__MAKECINT__)
 #include "AliCDBManager.h"
 #include "AliMUONCalibrationData.h"
+#include "AliMUONLogger.h"
 #include "AliMUONPadStatusMaker.h"
 #include "AliMUONPadStatusMapMaker.h"
+#include "AliMUONRecoParam.h"
 #include "AliMUONVCalibParam.h"
 #include "AliMUONVStore.h"
 #include "AliMpCDB.h"
 #include "AliMpConstants.h"
 #include "AliMpDDLStore.h"
 #include "AliMpDetElement.h"
-#include "AliMpIntPair.h"
 #include "AliMpManuIterator.h"
 #include "Riostream.h"
 #endif
 
-void FindBad(AliMUONPadStatusMaker& statusMaker, Int_t mask, Int_t& nBadPads, Int_t& nPads)
-{
-  AliMpManuIterator it;
+//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)
+{  
+
+  AliMUONRecoParam* recoParam = AliMUONRecoParam::GetCosmicParam();
   
-  nBadPads = nPads = 0;
+  AliMpCDB::LoadAll2();
   
-  Int_t detElemId;
-  Int_t manuId;
+  AliCDBManager* man = AliCDBManager::Instance();
   
-  while ( it.Next(detElemId,manuId) )
-  {
-    Bool_t bad(kFALSE);
-    
-    AliMpDetElement* de = AliMpDDLStore::Instance()->GetDetElement(detElemId);
-    
-    Int_t nb(0);
-    Int_t n(0);
-
-    for ( Int_t i = 0; i < AliMpConstants::ManuNofChannels(); ++i )
-    {
-      if ( de->IsConnectedChannel(manuId,i) )
-      {
-        ++n;
-        ++nPads;
-        Int_t status = statusMaker.PadStatus(detElemId,manuId,i);
-        if ( ( status & mask) || (!mask && status) )
-        {
-          bad = kTRUE;
-          ++nBadPads;
-          ++nb;
-        }
-      }
-    }
-    
-    if (bad)
-    {
-      cout << Form("DE %4d ManuId %4d %2d bad pads over %2d pads",
-                   detElemId,manuId,nb,n) << endl;
-    }
-  }
-}
+  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");
 
-AliMUONVStore* MUONStatusMap(const TString& cdbStorage = "local://$ALICE_ROOT",
-                             Int_t runNumber=0, Bool_t statusOnly=kFALSE, 
-                             Int_t mask=0x8080)
-{  
-  AliCDBManager::Instance()->SetDefaultStorage(cdbStorage.Data());
-  AliCDBManager::Instance()->SetRun(runNumber);
+//  man->SetRun(runNumber);
 
-  AliMpCDB::LoadDDLStore();
-  
   AliMUONCalibrationData cd(runNumber);
   
   AliMUONPadStatusMaker statusMaker(cd);
   
-//  statusMaker.SetPedMeanLimits(50,200);
-//  statusMaker.SetPedSigmaLimits(0.5,2);
+  statusMaker.SetLimits(*recoParam);
   
-  Int_t nbad;
-  Int_t ntotal;
+  delete recoParam;
   
-  FindBad(statusMaker,mask,nbad,ntotal);
-
-  if (ntotal<=0) 
-  {
-    cout << "Error : got no pad at all ?!" << endl;
-    return 0x0;
-  }  
+  UInt_t mask = recoParam->PadGoodnessMask();
   
-  cout << Form("Nbad = %6d over %6d pads (%7.2f %%)",
-               nbad,ntotal,100.0*nbad/ntotal) << endl;
+  statusMaker.Report(mask);
   
   if ( statusOnly ) return statusMaker.StatusStore();