]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONCDB.cxx
Fix histo name
[u/mrichter/AliRoot.git] / MUON / AliMUONCDB.cxx
index 2f638f5fb8f38e2f1df83c7caae444891ecce67f..85699d847279f097aa000c4cc75a39d86ce8f5b2 100644 (file)
 #include "AliMUON1DMap.h"
 #include "AliMUON2DMap.h"
 #include "AliMUON2DStoreValidator.h"
+#include "AliMUONCalibParamND.h"
 #include "AliMUONCalibParamNF.h"
 #include "AliMUONCalibParamNI.h"
 #include "AliMUONConstants.h"
+#include "AliMUONRejectList.h"
 #include "AliMUONTrackerIO.h"
 #include "AliMUONTriggerEfficiencyCells.h"
 #include "AliMUONTriggerLut.h"
@@ -531,6 +533,75 @@ AliMUONCDB::MakePedestalStore(AliMUONVStore& pedestalStore, Bool_t defaultValues
   return nchannels;
 }
 
+//_____________________________________________________________________________
+AliMUONRejectList* 
+AliMUONCDB::MakeRejectListStore(Bool_t defaultValues)
+{
+  /// Create a reject list
+  
+  AliCodeTimerAuto("");
+
+  AliMUONRejectList* rl = new AliMUONRejectList;
+  
+  if (!defaultValues)
+  {
+    rl->SetDetectionElementProbability(510);
+    rl->SetDetectionElementProbability(508);
+    return rl;
+  }
+  
+  return rl;
+}
+
+//_____________________________________________________________________________
+Int_t 
+AliMUONCDB::MakeOccupancyMapStore(AliMUONVStore& occupancyMapStore, Bool_t defaultValues)
+{
+  /// Create an occupancy map.
+  
+  AliCodeTimerAuto("");
+  
+  Int_t nmanus(0);
+  
+  Int_t detElemId;
+  Int_t manuId;
+  
+  AliMpManuIterator it;
+  
+  Int_t nevents(1000);
+  
+  while ( it.Next(detElemId,manuId) )
+  {
+    ++nmanus;
+    
+    AliMUONVCalibParam* occupancy = new AliMUONCalibParamND(5,1,detElemId,manuId,0);
+    
+    Double_t occ = 0.0;
+
+    AliMpDetElement* de = AliMpDDLStore::Instance()->GetDetElement(detElemId);
+    
+    Int_t numberOfChannelsInManu = de->NofChannelsInManu(manuId);
+    
+    if (!defaultValues) occ = gRandom->Rndm(1.0);
+
+    Double_t sumn = occ*nevents;
+    
+    occupancy->SetValueAsFloat(0,0,sumn); 
+    occupancy->SetValueAsFloat(0,1,sumn);
+    occupancy->SetValueAsFloat(0,2,sumn);
+    occupancy->SetValueAsInt(0,3,numberOfChannelsInManu);
+    occupancy->SetValueAsInt(0,4,nevents);
+    
+    Bool_t ok = occupancyMapStore.Add(occupancy);
+    if (!ok)
+    {
+      AliError(Form("Could not set DetElemId=%d manuId=%d",detElemId,manuId));
+    }
+  }
+  
+  return nmanus;
+}
+
 //_____________________________________________________________________________
 Int_t
 AliMUONCDB::MakeCapacitanceStore(AliMUONVStore& capaStore, const char* file)
@@ -886,7 +957,7 @@ AliMUONCDB::MakeNeighbourStore(AliMUONVStore& neighbourStore)
           AliMpPad* p = static_cast<AliMpPad*>(tmp.UncheckedAt(i));
           Int_t x;
 //          Bool_t ok =
-          calibParam->PackValues(p->GetManuId(),p->GetManuChannel(),x);
+              calibParam->PackValues(p->GetManuId(),p->GetManuChannel(),x);
 //          if (!ok)
 //          {
 //            AliError("Could not pack value. Something is seriously wrong. Please check");
@@ -1063,6 +1134,38 @@ AliMUONCDB::WritePedestals(Bool_t defaultValues,
   delete pedestalStore;
 }
 
+//_____________________________________________________________________________
+void 
+AliMUONCDB::WriteOccupancyMap(Bool_t defaultValues,
+                              Int_t startRun, Int_t endRun)
+{
+  /// generate occupancy map values (either empty one if defaultValues=true, or
+  /// random one, see MakeOccupancyMapStore) and
+  /// store them into CDB located at cdbpath, with a validity period
+  /// ranging from startRun to endRun
+  
+  AliMUONVStore* occupancyMapStore = Create2DMap();
+  Int_t ngenerated = MakeOccupancyMapStore(*occupancyMapStore,defaultValues);
+  AliInfo(Form("Ngenerated = %d",ngenerated));
+  WriteToCDB("MUON/Calib/OccupancyMap",occupancyMapStore,startRun,endRun,defaultValues);
+  delete occupancyMapStore;
+}
+
+//_____________________________________________________________________________
+void 
+AliMUONCDB::WriteRejectList(Bool_t defaultValues,
+                              Int_t startRun, Int_t endRun)
+{
+  /// generate reject list values (either empty one if defaultValues=true, or
+  /// random one, see MakeRejectListStore) and
+  /// store them into CDB located at cdbpath, with a validity period
+  /// ranging from startRun to endRun
+  
+  AliMUONRejectList* rl = MakeRejectListStore(defaultValues);
+  WriteToCDB("MUON/Calib/RejectList",rl,startRun,endRun,defaultValues);
+  delete rl;
+}
+
 
 //_____________________________________________________________________________
 void 
@@ -1140,5 +1243,7 @@ AliMUONCDB::WriteTracker(Bool_t defaultValues, Int_t startRun, Int_t endRun)
   WriteGains(defaultValues,startRun,endRun);
   WriteCapacitances(defaultValues,startRun,endRun);
   WriteNeighbours(startRun,endRun);
+  WriteOccupancyMap(startRun,endRun,defaultValues);
+  WriteRejectList(startRun,endRun,defaultValues);
 }