Correctly handling the "Calibration" events (when scalers are read for MTR
authorivana <ivana@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 20 Jul 2009 15:30:25 +0000 (15:30 +0000)
committerivana <ivana@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 20 Jul 2009 15:30:25 +0000 (15:30 +0000)
while nothing is done for MCH):
- Added (dummy) Calibration RecoParam in AliMUONRecoParam.
- Ensure that Digits/RecPoints/Tracks are not created for "Calibration" events.
This should solve the problem with missing directories in the QA.
(Diego)

MUON/AliMUONRecoParam.cxx
MUON/AliMUONRecoParam.h
MUON/AliMUONReconstructor.cxx
MUON/MakeMUONRecoParamArray.C

index c967738..869eacf 100644 (file)
@@ -77,6 +77,12 @@ AliMUONRecoParam::AliMUONRecoParam()
   /// Constructor
   
   SetNameTitle("Dummy","Dummy");
+  for (Int_t iCh = 0; iCh < 10; iCh++) {
+    fUseChamber[iCh] = kTRUE;
+    fDefaultNonBendingReso[iCh] = 0.;
+    fDefaultBendingReso[iCh] = 0.;
+  }
+  for (Int_t iSt = 0; iSt < 5; iSt++) fRequestStation[iSt] = kTRUE;
   SetDefaultLimits();
 }
 
@@ -146,6 +152,18 @@ AliMUONRecoParam *AliMUONRecoParam::GetCosmicParam()
 }
 
 //_____________________________________________________________________________
+AliMUONRecoParam *AliMUONRecoParam::GetCalibrationParam() 
+{
+  /// Return default (dummy) reconstruction parameters for calibration environment
+  
+  AliMUONRecoParam *param = new AliMUONRecoParam();
+  param->SetCalibrationParam();
+  
+  return param;
+}
+
+
+//_____________________________________________________________________________
 void AliMUONRecoParam::SetLowFluxParam() 
 {
   /// Set reconstruction parameters for low flux environment
@@ -283,6 +301,22 @@ void AliMUONRecoParam::SetCosmicParam()
   
 }
 
+
+//_____________________________________________________________________________
+void AliMUONRecoParam::SetCalibrationParam() 
+{
+  /// Set (dummy) reconstruction parameters for calibration environment
+  
+  SetNameTitle("Calibration","Calibration");
+  SetEventSpecie(AliRecoParam::kCalib);
+
+  fPedMeanLimits[0] = 5000;
+  fPedMeanLimits[1] = 0;
+
+  fPadGoodnessMask = 0x8C00; // Pedestal is missing | is too low | too high
+
+}
+
 //_____________________________________________________________________________
 UInt_t
 AliMUONRecoParam::RequestedStationMask() const
index 2b0e060..2152f91 100644 (file)
@@ -24,6 +24,7 @@ class AliMUONRecoParam : public AliDetectorRecoParam
   static AliMUONRecoParam *GetLowFluxParam();
   static AliMUONRecoParam *GetHighFluxParam();
   static AliMUONRecoParam *GetCosmicParam();
+  static AliMUONRecoParam *GetCalibrationParam();
   
   /// set the calibration mode (see GetCalibrationMode() for possible modes)
   void SetCalibrationMode(Option_t* mode) { fCalibrationMode = mode; fCalibrationMode.ToUpper();}
@@ -382,7 +383,7 @@ class AliMUONRecoParam : public AliDetectorRecoParam
   void SetLowFluxParam();
   void SetHighFluxParam();
   void SetCosmicParam();
-  
+  void SetCalibrationParam();
   
   ClassDef(AliMUONRecoParam,14) // MUON reco parameters
 };
index 42caec7..01effa9 100644 (file)
@@ -198,6 +198,14 @@ AliMUONReconstructor::ConvertDigits(AliRawReader* rawReader,
 {
   /// Convert raw data into digit and trigger stores
   CreateDigitMaker();
+
+  // Skip reconstruction if event is Calibration
+  if ( GetRecoParam()->GetEventSpecie() == AliRecoParam::kCalib ) {
+    digitStore->Clear(); // Remove possible digits from previous event
+    triggerStore->Clear(); // Remove possible triggers from previous event
+    AliInfo("Calibration event: do not convert digits");
+    return;
+  }
   
   AliCodeTimerStart(Form("%s::Raw2Digits(AliRawReader*,AliMUONVDigitStore*,AliMUONVTriggerStore*)",
                     fDigitMaker->ClassName()))
index 966ae60..89f441e 100644 (file)
@@ -53,7 +53,7 @@ void MakeMUONRecoParamArray(Int_t startRun = 0, Int_t endRun = AliCDBRunRange::I
   // set RecoParams
   AliMUONRecoParam *param;
   TObjArray recoParams;
-  
+  /*  
   // set parameters for p-p runs
   param = AliMUONRecoParam::GetLowFluxParam();
   recoParams.AddLast(param);
@@ -61,11 +61,16 @@ void MakeMUONRecoParamArray(Int_t startRun = 0, Int_t endRun = AliCDBRunRange::I
   // set parameters for Pb-Pb runs
   param = AliMUONRecoParam::GetHighFluxParam();
   recoParams.AddLast(param);
-  
+  */
+
   // set parameters for cosmic runs
   param = AliMUONRecoParam::GetCosmicParam();
   recoParams.AddLast(param);
-  
+
+  // set (dummy) parameters for calibration runs
+  param = AliMUONRecoParam::GetCalibrationParam();
+  recoParams.AddLast(param);
+
   // identify default parameters (exit if identification failed)
   Bool_t defaultIsSet = kFALSE;
   TIter next(recoParams.MakeIterator());