]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONDigitMaker.cxx
- Removing AliMpSegFactory -> using AliMpSegmentation instead
[u/mrichter/AliRoot.git] / MUON / AliMUONDigitMaker.cxx
index 75e6301466305e42b458cb951fa3f535c84ae227..d54b73be427da115a347b41c22b915086de07f12 100644 (file)
@@ -13,8 +13,7 @@
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
 
-////////////////////////////////////
-///
+/// \class AliMUONDigitMaker
 /// MUON Digit maker from rawdata.
 ///
 /// Raw2Digits:
 /// Add (S)Digit maker tracker (for free)
 /// and for trigger. Create trigger inverse mapping.
 /// (Ch. Finck, oct 06) 
-////////////////////////////////////
-
-#include <fstream>
-#include <string>
-
-#include <TClonesArray.h>
-#include <TList.h>
-
-#include "AliRawReader.h"
-#include "AliRawDataHeader.h"
-#include "AliLog.h"
-#include "AliRun.h"
 
-#include "AliMpBusPatch.h"
 #include "AliMUON.h"
 #include "AliMUONDigitMaker.h"
 #include "AliMUONDigit.h"
 #include "AliMUONLocalTrigger.h"
 #include "AliMUONGlobalTrigger.h"
 #include "AliMUONTriggerCircuitNew.h"
-#include "AliMpSegFactory.h"
+
+#include "AliMpSegmentation.h"
 #include "AliMpVSegmentation.h"
 #include "AliMpPad.h"
 #include "AliMpDEManager.h"
+#include "AliMpBusPatch.h"
+
+#include "AliRawReader.h"
+#include "AliRawDataHeader.h"
+#include "AliLog.h"
+#include "AliRun.h"
+
+#include <TClonesArray.h>
+#include <TList.h>
+
+#include <fstream>
+#include <string>
 
+/// \cond CLASSIMP
 ClassImp(AliMUONDigitMaker) // Class implementation in ROOT context
+/// \endcond
+
 //__________________________________________________________________________
 AliMUONDigitMaker::AliMUONDigitMaker(Bool_t flag)
   : TObject(),
     fMUONData(0x0),
-    fSegFactory(new AliMpSegFactory()),
     fBusPatchManager(new AliMpBusPatch()),
     fScalerEvent(kFALSE),
     fDigitFlag(flag),
@@ -95,15 +96,13 @@ AliMUONDigitMaker::AliMUONDigitMaker(Bool_t flag)
     fDigit(new AliMUONDigit()),
     fLocalTrigger(new AliMUONLocalTrigger()),
     fGlobalTrigger(new AliMUONGlobalTrigger()),
-    fCrateManager(new AliMUONTriggerCrateStore()),
+    fCrateManager(0x0),
     fTrackerTimer(),
     fTriggerTimer(),
     fMappingTimer()
 {
-  //
-  // ctor with AliMUONData as argument
-  // for reconstruction
-  //
+  /// ctor with AliMUONData as argument
+  /// for reconstruction
 
   AliDebug(1,"");
 
@@ -112,9 +111,7 @@ AliMUONDigitMaker::AliMUONDigitMaker(Bool_t flag)
   // bus patch 
   fBusPatchManager->ReadBusPatchFile();
 
-  // Crate manager
-  fCrateManager->ReadFromFile();
-
   fTrackerTimer.Start(kTRUE); fTrackerTimer.Stop();
   fTriggerTimer.Start(kTRUE); fTriggerTimer.Stop();
   fMappingTimer.Start(kTRUE); fMappingTimer.Stop();
@@ -124,11 +121,8 @@ AliMUONDigitMaker::AliMUONDigitMaker(Bool_t flag)
 //__________________________________________________________________________
 AliMUONDigitMaker::~AliMUONDigitMaker()
 {
-  //
-  // clean up
-  // and time processing measure
-  //
-  delete fSegFactory;  
+  /// clean up
+  /// and time processing measure
 
   delete fRawStreamTracker;
   delete fRawStreamTrigger;
@@ -137,16 +131,14 @@ AliMUONDigitMaker::~AliMUONDigitMaker()
   delete fLocalTrigger;
   delete fGlobalTrigger;
 
-  delete fCrateManager;
-
   delete fBusPatchManager;
 
-  AliInfo(Form("Execution time for MUON tracker : R:%.2fs C:%.2fs",
+  AliDebug(1, Form("Execution time for MUON tracker : R:%.2fs C:%.2fs",
                fTrackerTimer.RealTime(),fTrackerTimer.CpuTime()));
-  AliInfo(Form("   Execution time for MUON tracker (mapping calls part) "
+  AliDebug(1, Form("   Execution time for MUON tracker (mapping calls part) "
                ": R:%.2fs C:%.2fs",
                fMappingTimer.RealTime(),fMappingTimer.CpuTime()));
-  AliInfo(Form("Execution time for MUON trigger : R:%.2fs C:%.2fs",
+  AliDebug(1, Form("Execution time for MUON trigger : R:%.2fs C:%.2fs",
                fTriggerTimer.RealTime(),fTriggerTimer.CpuTime()));
 
   return;
@@ -155,9 +147,9 @@ AliMUONDigitMaker::~AliMUONDigitMaker()
 //____________________________________________________________________
 Int_t AliMUONDigitMaker::Raw2Digits(AliRawReader* rawReader)
 {
-  // Main method to creates digit
-  // for tracker 
-  // and trigger
+  /// Main method to creates digit
+  /// for tracker 
+  /// and trigger
 
   // generate digits
   ReadTrackerDDL(rawReader);
@@ -173,9 +165,9 @@ Int_t AliMUONDigitMaker::Raw2Digits(AliRawReader* rawReader)
 Int_t AliMUONDigitMaker::ReadTrackerDDL(AliRawReader* rawReader)
 {
 
-  // reading tracker DDL
-  // filling the TClonesArray in MUONData
-  //
+  /// reading tracker DDL
+  /// filling the TClonesArray in MUONData
+
   fTrackerTimer.Start(kFALSE);
 
   // elex info
@@ -253,7 +245,7 @@ Int_t AliMUONDigitMaker::ReadTrackerDDL(AliRawReader* rawReader)
            }
 
            // fill digits
-           iChamber = fDigit->DetElemId()/100 - 1;
+           iChamber = AliMpDEManager::GetChamberId(fDigit->DetElemId());
 
            if (fDigitFlag)
              fMUONData->AddDigit(iChamber, *fDigit);
@@ -275,16 +267,16 @@ Int_t AliMUONDigitMaker::ReadTrackerDDL(AliRawReader* rawReader)
 Int_t AliMUONDigitMaker::GetMapping(Int_t busPatchId, UShort_t manuId, 
                                         UChar_t channelId, AliMUONDigit* digit )
 {
-  //
-  // mapping  for tracker
-  //
+  /// mapping  for tracker
+
   fMappingTimer.Start(kFALSE);
   
   // getting DE from buspatch
   Int_t detElemId = fBusPatchManager->GetDEfromBus(busPatchId);
   AliDebug(3,Form("detElemId: %d busPatchId %d\n", detElemId, busPatchId));
 
-  AliMpVSegmentation* seg = fSegFactory->CreateMpSegmentationByElectronics(detElemId, manuId);  
+  const AliMpVSegmentation* seg 
+    = AliMpSegmentation::Instance()->GetMpSegmentationByElectronics(detElemId, manuId);  
   AliMpPad pad = seg->PadByLocation(AliMpIntPair(manuId,channelId),kTRUE);
 
   if (!pad.IsValid())
@@ -318,9 +310,8 @@ Int_t AliMUONDigitMaker::GetMapping(Int_t busPatchId, UShort_t manuId,
 //____________________________________________________________________
 Int_t AliMUONDigitMaker::ReadTriggerDDL(AliRawReader* rawReader)
 {
-  // reading tracker DDL
-  // filling the TClonesArray in MUONData
-  //
+  /// reading tracker DDL
+  /// filling the TClonesArray in MUONData
 
   AliMUONDDLTrigger*       ddlTrigger      = 0x0;
   AliMUONDarcHeader*       darcHeader      = 0x0;
@@ -352,7 +343,8 @@ Int_t AliMUONDigitMaker::ReadTriggerDDL(AliRawReader* rawReader)
 
     for(Int_t iReg = 0; iReg < nReg ;iReg++){   //reg loop
 
-     // crate info
+      // crate info
+      if (!fCrateManager) AliFatal("Crate Store not defined");
       AliMUONTriggerCrate* crate = fCrateManager->Crate(fRawStreamTrigger->GetDDL(), iReg);
   
       if (!crate) 
@@ -395,7 +387,7 @@ Int_t AliMUONDigitMaker::ReadTriggerDDL(AliRawReader* rawReader)
                AliMUONDigit* digit = (AliMUONDigit*)digitList.At(iEntry);
                
                // filling S container
-               Int_t iChamber = digit->DetElemId()/100 - 1;
+               Int_t iChamber = AliMpDEManager::GetChamberId(digit->DetElemId());
                fMUONData->AddSDigit(iChamber, *digit);
 
              }
@@ -417,8 +409,8 @@ Int_t AliMUONDigitMaker::ReadTriggerDDL(AliRawReader* rawReader)
 void AliMUONDigitMaker::GetTriggerChamber(AliMUONLocalStruct* localStruct, Int_t& xyPattern, 
                                          Int_t& iChamber, Int_t& iCath, Int_t icase)
 {
+  /// get chamber & cathode number, (chamber starts at 0 !)
 
-  // get chamber & cathode number, (chamber starts at 0 !)
     switch(icase) {
     case 0: 
       xyPattern =  localStruct->GetX1();
@@ -467,8 +459,7 @@ Int_t AliMUONDigitMaker::TriggerDigits(AliMUONLocalTriggerBoard* localBoard,
                                       AliMUONLocalStruct* localStruct,
                                       TList& digitList)
 {
-  //
-  // make (S)Digit for trigger
+  /// make (S)Digit for trigger
 
   Int_t detElemId;
   Int_t nBoard;
@@ -489,7 +480,8 @@ Int_t AliMUONDigitMaker::TriggerDigits(AliMUONLocalTriggerBoard* localBoard,
     detElemId = triggerCircuit.DetElemId(iChamber, localBoard->GetName());
     nBoard    = localBoard->GetNumber();
 
-    AliMpVSegmentation* seg = fSegFactory->CreateMpSegmentation(detElemId, iCath);  
+    const AliMpVSegmentation* seg 
+      = AliMpSegmentation::Instance()->GetMpSegmentation(detElemId, iCath);  
 
     // loop over the 16 bits of pattern
     for (Int_t ibitxy = 0; ibitxy < 16; ibitxy++) {
@@ -529,9 +521,9 @@ Int_t AliMUONDigitMaker::TriggerDigits(AliMUONLocalTriggerBoard* localBoard,
 //____________________________________________________________________
 void  AliMUONDigitMaker::GetCrateName(Char_t* name, Int_t iDDL, Int_t iReg)
 {
-  // set crate name from DDL & reg number
-  // method same as in RawWriter, not so nice
-  // should be put in AliMUONTriggerCrateStore
+  /// set crate name from DDL & reg number
+  /// method same as in RawWriter, not so nice
+  /// should be put in AliMUONTriggerCrateStore
 
       switch(iReg) {
       case 0: