From aa6ecf89d00e4ad12e2899b0fd3527c85d1ada05 Mon Sep 17 00:00:00 2001 From: pcrochet Date: Wed, 13 Sep 2006 12:58:18 +0000 Subject: [PATCH] Optimized rawdata reconstruction & removing effc++ warnings (Christian) --- MUON/AliMUONDigitMaker.cxx | 36 +++---------------------- MUON/AliMUONDigitMaker.h | 5 +--- MUON/AliMUONRawWriter.cxx | 31 +--------------------- MUON/AliMUONRawWriter.h | 1 - MUON/AliMUONReconstructor.cxx | 33 +++++------------------ MUON/AliMUONReconstructor.h | 7 +++-- MUON/AliMUONTriggerCrateStore.cxx | 44 +++++++++++++++++++++++++++++++ MUON/AliMUONTriggerCrateStore.h | 8 +++++- 8 files changed, 66 insertions(+), 99 deletions(-) diff --git a/MUON/AliMUONDigitMaker.cxx b/MUON/AliMUONDigitMaker.cxx index 1fa1223b9cb..8b1087dd23d 100644 --- a/MUON/AliMUONDigitMaker.cxx +++ b/MUON/AliMUONDigitMaker.cxx @@ -77,9 +77,9 @@ ClassImp(AliMUONDigitMaker) // Class implementation in ROOT context //__________________________________________________________________________ -AliMUONDigitMaker::AliMUONDigitMaker(AliMUONData* data) +AliMUONDigitMaker::AliMUONDigitMaker() : TObject(), - fMUONData(data), + fMUONData(0x0), fSegFactory(new AliMpSegFactory()), fBusPatchManager(new AliMpBusPatch()), fScalerEvent(kFALSE), @@ -114,33 +114,6 @@ AliMUONDigitMaker::AliMUONDigitMaker(AliMUONData* data) } -//__________________________________________________________________________ -AliMUONDigitMaker::AliMUONDigitMaker() - : TObject(), - fMUONData(0), - fSegFactory(0), - fBusPatchManager(0), - fScalerEvent(kFALSE), - fRawStreamTracker(0), - fRawStreamTrigger(0), - fDigit(0), - fLocalTrigger(0), - fGlobalTrigger(0), - fCrateManager(0), - fTrackerTimer(), - fTriggerTimer(), - fMappingTimer() -{ - // - // Default Constructor - // - AliDebug(1,""); - fTrackerTimer.Start(kTRUE); fTrackerTimer.Stop(); - fTriggerTimer.Start(kTRUE); fTriggerTimer.Stop(); - fMappingTimer.Start(kTRUE); fMappingTimer.Stop(); - -} - //__________________________________________________________________________ AliMUONDigitMaker::~AliMUONDigitMaker() { @@ -364,10 +337,7 @@ Int_t AliMUONDigitMaker::ReadTriggerDDL(AliRawReader* rawReader) for(Int_t iReg = 0; iReg < nReg ;iReg++){ //reg loop // crate info - Char_t crateName[10]; - GetCrateName(crateName, fRawStreamTrigger->GetDDL(), iReg); - - AliMUONTriggerCrate* crate = fCrateManager->Crate(crateName); + AliMUONTriggerCrate* crate = fCrateManager->Crate(fRawStreamTrigger->GetDDL(), iReg); if (!crate) AliWarning(Form("Missing crate number %d in DDL %d\n", iReg, fRawStreamTrigger->GetDDL())); diff --git a/MUON/AliMUONDigitMaker.h b/MUON/AliMUONDigitMaker.h index 96c2d28f321..6414d4a043d 100644 --- a/MUON/AliMUONDigitMaker.h +++ b/MUON/AliMUONDigitMaker.h @@ -28,7 +28,7 @@ class AliMUONRawStreamTrigger; class AliMUONDigitMaker : public TObject { public: - AliMUONDigitMaker(AliMUONData* data); // Constructor + AliMUONDigitMaker(); // Constructor virtual ~AliMUONDigitMaker(void); // Destructor // write raw data @@ -45,9 +45,6 @@ class AliMUONDigitMaker : public TObject void SetScalerEvent() {fScalerEvent = kTRUE;} - protected: - AliMUONDigitMaker(); // Default constructor - private: AliMUONData* fMUONData; //!< Data container for MUON subsystem diff --git a/MUON/AliMUONRawWriter.cxx b/MUON/AliMUONRawWriter.cxx index a448b205e63..4d93e94d72c 100644 --- a/MUON/AliMUONRawWriter.cxx +++ b/MUON/AliMUONRawWriter.cxx @@ -808,9 +808,7 @@ Int_t AliMUONRawWriter::WriteTriggerDDL() for (Int_t iReg = 0; iReg < 8; iReg++) { // crate info - Char_t crateName[10]; - GetCrateName(crateName, iDDL, iReg); - AliMUONTriggerCrate* crate = fCrateManager->Crate(crateName); + AliMUONTriggerCrate* crate = fCrateManager->Crate(iDDL, iReg); if (!crate) AliWarning(Form("Missing crate number %d in DDL %d\n", iReg, iDDL)); @@ -971,31 +969,4 @@ void AliMUONRawWriter::SetScalersNumbers() fScalerEvent = kTRUE; } -//____________________________________________________________________ -void AliMUONRawWriter::GetCrateName(Char_t* name, Int_t iDDL, Int_t iReg) -{ - // set crate name from DDL & reg number - - switch(iReg) { - case 0: - case 1: - sprintf(name,"%d", iReg+1); - break; - case 2: - strcpy(name, "2-3"); - break; - case 3: - case 4: - case 5: - case 6: - case 7: - sprintf(name,"%d", iReg); - break; - } - // crate Right for first DDL - if (iDDL == 0) - strcat(name, "R"); - else - strcat(name, "L"); -} diff --git a/MUON/AliMUONRawWriter.h b/MUON/AliMUONRawWriter.h index d7ba0d941b9..20b8b4dbbda 100644 --- a/MUON/AliMUONRawWriter.h +++ b/MUON/AliMUONRawWriter.h @@ -56,7 +56,6 @@ private: } Int_t GetBusPatch(const AliMUONDigit& digit); - void GetCrateName(Char_t* name, Int_t iDDL, Int_t iReg); Int_t GetGlobalTriggerPattern(const AliMUONGlobalTrigger* gloTrg) const; diff --git a/MUON/AliMUONReconstructor.cxx b/MUON/AliMUONReconstructor.cxx index 560e41590b1..0c00e93e9f4 100644 --- a/MUON/AliMUONReconstructor.cxx +++ b/MUON/AliMUONReconstructor.cxx @@ -48,22 +48,16 @@ ClassImp(AliMUONReconstructor) //_____________________________________________________________________________ AliMUONReconstructor::AliMUONReconstructor() - : AliReconstructor(), fCalibrationData(0x0) + : AliReconstructor(), + fRunLoader(0x0), + fDigitMaker(new AliMUONDigitMaker()), + fCalibrationData(0x0) { /// Default constructor AliDebug(1,""); } -//______________________________________________________________________________ -AliMUONReconstructor::AliMUONReconstructor(const AliMUONReconstructor& right) - : AliReconstructor(right) -{ -/// Protected copy constructor (not implemented) - - AliFatal("Copy constructor not provided."); -} - //_____________________________________________________________________________ AliMUONReconstructor::~AliMUONReconstructor() { @@ -71,22 +65,9 @@ AliMUONReconstructor::~AliMUONReconstructor() AliDebug(1,""); delete fCalibrationData; + delete fDigitMaker; } -//______________________________________________________________________________ -AliMUONReconstructor& -AliMUONReconstructor::operator=(const AliMUONReconstructor& right) -{ -/// Protected assignement operator (not implemented) - - // check assignement to self - if (this == &right) return *this; - - AliFatal("Assignement operator not provided."); - - return *this; -} - //_____________________________________________________________________________ TTask* AliMUONReconstructor::GetCalibrationTask(AliMUONData* data) const @@ -277,7 +258,7 @@ void AliMUONReconstructor::Reconstruct(AliRunLoader* runLoader, AliRawReader* ra // passing loader as argument. AliMUONTrackReconstructor recoEvent(loader, &data); - AliMUONDigitMaker rawData(&data); + fDigitMaker->SetMUONData(&data); AliMUONClusterReconstructor recoCluster(&data); @@ -335,7 +316,7 @@ void AliMUONReconstructor::Reconstruct(AliRunLoader* runLoader, AliRawReader* ra data.SetTreeAddress("D,GLT"); rawTimer.Start(kFALSE); - rawData.Raw2Digits(rawReader); + fDigitMaker->Raw2Digits(rawReader); rawTimer.Stop(); if ( calibration ) diff --git a/MUON/AliMUONReconstructor.h b/MUON/AliMUONReconstructor.h index 84a924d4b29..d209c99c506 100644 --- a/MUON/AliMUONReconstructor.h +++ b/MUON/AliMUONReconstructor.h @@ -40,10 +40,6 @@ class AliMUONReconstructor: public AliReconstructor virtual void FillESD(AliRunLoader* runLoader, AliESD* esd) const; virtual void FillESD(AliRunLoader* runLoader, AliRawReader* /*rawReader*/, AliESD* esd) const; - -protected: - AliMUONReconstructor(const AliMUONReconstructor& right); - AliMUONReconstructor& operator = (const AliMUONReconstructor& right); private: @@ -55,6 +51,9 @@ private: mutable AliMUONCalibrationData* fCalibrationData; //!< pointer to calibration data + AliMUONReconstructor(const AliMUONReconstructor& right); + AliMUONReconstructor& operator = (const AliMUONReconstructor& right); + ClassDef(AliMUONReconstructor, 0) // class for the MUON reconstruction }; diff --git a/MUON/AliMUONTriggerCrateStore.cxx b/MUON/AliMUONTriggerCrateStore.cxx index 0f727c90db0..de30d1d1393 100644 --- a/MUON/AliMUONTriggerCrateStore.cxx +++ b/MUON/AliMUONTriggerCrateStore.cxx @@ -112,6 +112,50 @@ AliMUONTriggerCrateStore::Crate(const char *name) const return static_cast(fCrates->GetValue(name)); } +//_____________________________________________________________________________ +AliMUONTriggerCrate* +AliMUONTriggerCrateStore::Crate(Int_t ddl, Int_t reg) const +{ + /// return a crate by name + if ( !fCrates ) + { + AliError("Object not properly initialized"); + return 0x0; + } + TString name = GetCrateName(ddl, reg); + return static_cast(fCrates->GetValue(name.Data())); +} +// //____________________________________________________________________ +TString AliMUONTriggerCrateStore::GetCrateName(Int_t ddl, Int_t reg) const +{ + // set crate name from DDL & reg number + + Char_t name[10]; + switch(reg) { + case 0: + case 1: + sprintf(name,"%d", reg+1); + break; + case 2: + strcpy(name, "2-3"); + break; + case 3: + case 4: + case 5: + case 6: + case 7: + sprintf(name,"%d", reg); + break; + } + + // crate Right for first DDL + if (ddl == 0) + strcat(name, "R"); + else + strcat(name, "L"); + + return TString(name); +} //_____________________________________________________________________________ void AliMUONTriggerCrateStore::FirstCrate() diff --git a/MUON/AliMUONTriggerCrateStore.h b/MUON/AliMUONTriggerCrateStore.h index 9ce0b51f2d7..2a5664bedcc 100644 --- a/MUON/AliMUONTriggerCrateStore.h +++ b/MUON/AliMUONTriggerCrateStore.h @@ -16,6 +16,8 @@ # include "TObject.h" #endif +#include "TString.h" + class AliMUONLocalTriggerBoard; class AliMUONTriggerCrate; class AliMpExMap; @@ -31,7 +33,8 @@ public: void FirstCrate(); AliMUONTriggerCrate* NextCrate(); AliMUONTriggerCrate* Crate(const char* crateName) const; - + AliMUONTriggerCrate* Crate(Int_t ddl, Int_t reg) const; + Int_t NumberOfLocalBoards() const; void FirstLocalBoard(); AliMUONLocalTriggerBoard* NextLocalBoard(); @@ -39,6 +42,7 @@ public: void ReadFromFile(const char* crateFile = "$ALICE_ROOT/MUON/mapping/data/stationTrigger/crate.dat"); + protected: AliMUONTriggerCrateStore(const AliMUONTriggerCrateStore& rhs); @@ -55,6 +59,8 @@ private: AliMUONTriggerCrate* fCurrentCrate; //!< used for iterating on local board Int_t fCurrentLocalBoard; //!< used for iterating on local board + TString GetCrateName(Int_t ddl, Int_t reg) const; + ClassDef(AliMUONTriggerCrateStore,1) // Reader for CRATE.TXT file }; -- 2.43.0