#98358: Request to commit change in QAManager + Reconstruction + MUONReconstructor
authorhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 24 Oct 2012 13:34:04 +0000 (13:34 +0000)
committerhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 24 Oct 2012 13:34:04 +0000 (13:34 +0000)
MUON/AliMUONReconstructor.cxx
MUON/AliMUONReconstructor.h
STEER/STEER/AliQAManager.cxx
STEER/STEER/AliQAManager.h
STEER/STEER/AliReconstruction.cxx

index 561c78a..beaf1f5 100644 (file)
@@ -140,7 +140,8 @@ fClusterStore(0x0),
 fTriggerProcessor(0x0),
 fTriggerUtilities(0x0),
 fClusterServers(),
-fTrackers()
+fTrackers(),
+fShouldCalibrate(kTRUE)
 {
   /// normal ctor
 
@@ -205,8 +206,12 @@ AliMUONReconstructor::Calibrate(AliMUONVDigitStore& digitStore) const
   {
     CreateCalibrator();
   }
-  AliCodeTimerAuto(Form("%s::Calibrate(AliMUONVDigitStore*)",fDigitCalibrator->ClassName()),0)
-  fDigitCalibrator->Calibrate(digitStore);      
+    
+  if ( fShouldCalibrate )
+  {
+    AliCodeTimerAuto(Form("%s::Calibrate(AliMUONVDigitStore*)",fDigitCalibrator->ClassName()),0)
+    fDigitCalibrator->Calibrate(digitStore);
+  }
 }
 
 //_____________________________________________________________________________
@@ -562,7 +567,28 @@ AliMUONReconstructor::CreateCalibrator() const
     AliWarning("NOSTATUSMAP is obsolete");
   }
 
-  fDigitCalibrator = new AliMUONDigitCalibrator(*fCalibrationData,GetRecoParam());
+  Bool_t kTracker(kFALSE);
+    
+  const AliRunInfo* runInfo = GetRunInfo();
+  if (!runInfo)
+  {
+    AliError("Could not get runinfo ?");
+  }
+  else
+  {
+    TString detectors(runInfo->GetActiveDetectors());
+    if (detectors.Contains("MUONTRK")) kTracker=kTRUE;
+  }
+    
+  if ( kTracker )
+  {
+    fDigitCalibrator = new AliMUONDigitCalibrator(*fCalibrationData,GetRecoParam());
+  }
+  else
+  {
+    AliWarning("Apparently running without MCH so will not instantiante the DigitCalibrator nor read MCH OCDB objects...");
+    fShouldCalibrate=kFALSE;
+  }
 }
 
 //_____________________________________________________________________________
index 22d953d..ef21609 100644 (file)
@@ -96,8 +96,9 @@ private:
   mutable AliMUONTriggerUtilities* fTriggerUtilities; //!< Trigger utilities for masks
   mutable TObjArray fClusterServers; //!<  Clusterizers (one per event specie)
   mutable TObjArray fTrackers; //!< trackers (one per event specie)
-    
-  ClassDef(AliMUONReconstructor,11) // Implementation of AliReconstructor
+  mutable Bool_t fShouldCalibrate; // whether the fDigitCalibrator should be non-null
+  
+  ClassDef(AliMUONReconstructor,12) // Implementation of AliReconstructor
 };
 
 #endif
index 10c213c..d4350bb 100644 (file)
@@ -507,14 +507,25 @@ AliQADataMaker * AliQAManager::GetQADataMaker(const Int_t iDet)
       TString temp(smode) ;
       temp.ToLower() ; 
       if (libs.Contains("lib" + detName + smode + ".so") || (gSystem->Load("lib" + detName + temp.Data() + ".so") >= 0)) {
-        pluginManager->AddHandler("AliQADataMaker", detName, qadmName, detName + "qadm", qadmName + "()") ;
+        if ( iDet == AliQAv1::kMUON ) {
+          pluginManager->AddHandler("AliQADataMaker", detName, qadmName, detName + "qadm", qadmName + "(Bool_t,Bool_t)");
+        } else {
+          pluginManager->AddHandler("AliQADataMaker", detName, qadmName, detName + "qadm", qadmName + "()");
+        }
       } else {
-        pluginManager->AddHandler("AliQADataMaker", detName, qadmName, detName, qadmName + "()") ;
+        pluginManager->AddHandler("AliQADataMaker", detName, qadmName, detName, qadmName + "()");
       }
       pluginHandler = pluginManager->FindHandler("AliQADataMaker", detName) ;
     }
     if (pluginHandler && (pluginHandler->LoadPlugin() == 0)) {
-      qadm = (AliQADataMaker *) pluginHandler->ExecPlugin(0) ;
+      if ( iDet == AliQAv1::kMUON ) {
+        Bool_t mch = fActiveOnlineDetectors.Contains("MUONTRK");
+        Bool_t mtr = fActiveOnlineDetectors.Contains("MUONTRG");
+        qadm = (AliQADataMaker *) pluginHandler->ExecPlugin(2,mch,mtr);
+      }
+      else {
+        qadm = (AliQADataMaker *) pluginHandler->ExecPlugin(0);
+      }
     }
     if (qadm) {
       qadm->SetName(AliQAv1::GetDetName(iDet));
index d18dee3..93c5be8 100644 (file)
@@ -67,7 +67,8 @@ public:
        void             RunOneEvent(AliESDEvent *& esd, AliESDEvent *& hltesd)  ;
        Bool_t           Save2OCDB(const Int_t runNumber, AliRecoParam::EventSpecie_t es, const Char_t * year = "08", const Char_t * detectors = "ALL") const ; 
        void             SetActiveDetectors(TString aDet) { fDetectors = aDet ;  }
-  void             SetCheckerExternParam(AliQAv1::DETECTORINDEX_t det, TList * parameterList) ;  
+       void             SetActiveOnlineDetectors(TString aDet) { fActiveOnlineDetectors = aDet ;  }
+  void             SetCheckerExternParam(AliQAv1::DETECTORINDEX_t det, TList * parameterList) ;
        void             SetCycleLength(const AliQAv1::DETECTORINDEX_t det, const Int_t cycle) { fQACycles[det] = cycle ; }
        void             SetWriteExpert(const AliQAv1::DETECTORINDEX_t det) { fQAWriteExpert[det] = kTRUE ; }
   void             SetEventInfo(AliEventInfo *info) { fEventInfo = info ;} 
@@ -128,8 +129,8 @@ private:
   AliRecoParam::EventSpecie_t fEventSpecie ;                  //! type of event 
   Bool_t                      fPrintImage ;                   //! flag to print the images or not
   Bool_t                      fSaveData ;                     //! flag to sve the QA data or not   
-    
-  ClassDef(AliQAManager, 2)      // class for running the QA makers
+  TString                     fActiveOnlineDetectors;          //! list of active detectors in the DAQ world (i.e. SPD, SDD, SSD and not simply ITS, MUONTRK, MUONTRG and not simply MUON, etc...
+  ClassDef(AliQAManager, 3)      // class for running the QA makers
 };
 
 #endif
index 6330ff1..5ccdcc0 100644 (file)
@@ -689,7 +689,9 @@ void AliReconstruction::InitQA()
   }
   
   if (fRunQA) {
-  qam->SetActiveDetectors(fQADetectors) ; 
+  qam->SetActiveDetectors(fQADetectors) ;
+  qam->SetActiveOnlineDetectors(fRunInfo->GetActiveDetectors());
+    
   for (Int_t det = 0 ; det < AliQAv1::kNDET ; det++) {
     qam->SetCycleLength(AliQAv1::DETECTORINDEX_t(det), fQACycles[det]) ;  
     qam->SetWriteExpert(AliQAv1::DETECTORINDEX_t(det)) ;
@@ -1123,6 +1125,7 @@ Bool_t AliReconstruction::InitGRP() {
     fRunTracking = MatchDetectorList(fRunTracking,detMask);
     fFillESD = MatchDetectorList(fFillESD,detMask);
     fQADetectors = MatchDetectorList(fQADetectors,detMask);
+    AliInfo(Form("fQADetectors=%s",fQADetectors.Data()));
     fDeleteRecPoints = MatchDetectorList(fDeleteRecPoints,detMask);
     fDeleteDigits    = MatchDetectorList(fDeleteDigits,detMask);
     fLoadCDB.Form("%s %s %s %s",