* 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(0x0),
fBusPatchManager(new AliMpBusPatch()),
fScalerEvent(kFALSE),
fDigitFlag(flag),
fTriggerTimer(),
fMappingTimer()
{
- //
- // ctor with AliMUONData as argument
- // for reconstruction
- //
+ /// ctor with AliMUONData as argument
+ /// for reconstruction
AliDebug(1,"");
//__________________________________________________________________________
AliMUONDigitMaker::~AliMUONDigitMaker()
{
- //
- // clean up
- // and time processing measure
- //
+ /// clean up
+ /// and time processing measure
+
delete fRawStreamTracker;
delete fRawStreamTrigger;
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;
//____________________________________________________________________
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);
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
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())
//____________________________________________________________________
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;
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();
AliMUONLocalStruct* localStruct,
TList& digitList)
{
- //
- // make (S)Digit for trigger
+ /// make (S)Digit for trigger
Int_t detElemId;
Int_t nBoard;
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++) {
//____________________________________________________________________
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: