ROOT logo
/**************************************************************************
* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
*                                                                        *
* Author: The ALICE Off-line Project.                                    *
* Contributors are mentioned in the code where appropriate.              *
*                                                                        *
* Permission to use, copy, modify and distribute this software and its   *
* documentation strictly for non-commercial purposes is hereby granted   *
* without fee, provided that the above copyright notice appears in all   *
* copies and that both the copyright notice and this permission notice   *
* appear in the supporting documentation. The authors make no claims     *
* about the suitability of this software for any purpose. It is          *
* provided "as is" without express or implied warranty.                  *
**************************************************************************/

// $Id$

#include "AliMUONTrackerPreprocessor.h"

#include "AliMUONPedestalSubprocessor.h"
#include "AliMUONHVSubprocessor.h"
#include "AliMUONGMSSubprocessor.h"
#include "AliMUONGainSubprocessor.h"
#include "AliMUONOccupancySubprocessor.h"

#include "AliLog.h"
#include "AliShuttleInterface.h"
#include "Riostream.h"
#include "TObjArray.h"

//-----------------------------------------------------------------------------
/// \class AliMUONTrackerPreprocessor
///
/// Shuttle preprocessor for MUON tracker
/// 
/// It's simply a manager class that deals with a list of sub-tasks 
/// (of type AliMUONVSubprocessor).
///
/// \author Laurent Aphecetche
//-----------------------------------------------------------------------------

/// \cond CLASSIMP
ClassImp(AliMUONTrackerPreprocessor)
/// \endcond

//_____________________________________________________________________________
AliMUONTrackerPreprocessor::AliMUONTrackerPreprocessor(AliShuttleInterface* shuttle)
: AliMUONPreprocessor("MCH",shuttle),
fPedestalSubprocessor(new AliMUONPedestalSubprocessor(this)),
fGMSSubprocessor(new AliMUONGMSSubprocessor(this)),    
fHVSubprocessor(new AliMUONHVSubprocessor(this,kTRUE)),
fGainSubprocessor(new AliMUONGainSubprocessor(this)),
fOccupancySubprocessor(new AliMUONOccupancySubprocessor(this))
{
  /// ctor. 
    
    AddRunType("PEDESTAL");
    AddRunType("CALIBRATION");
    AddRunType("GMS");
    AddRunType("PHYSICS");
}

//_____________________________________________________________________________
AliMUONTrackerPreprocessor::~AliMUONTrackerPreprocessor()
{
  /// dtor

  delete fPedestalSubprocessor;
  delete fGMSSubprocessor;
  delete fHVSubprocessor;
  delete fGainSubprocessor;
  delete fOccupancySubprocessor;
}

//_____________________________________________________________________________
void
AliMUONTrackerPreprocessor::Initialize(Int_t run, UInt_t startTime, UInt_t endTime)
{
  /// Re-register the subprocessor(s) depending on the actual runType

  ClearSubprocessors();
  
  TString runType = GetRunType();
  
  fIsValid = kTRUE;
  fIsApplicable = kTRUE;
  
  if ( runType == "PEDESTAL" )
  {
    Add(fPedestalSubprocessor); // to be called only for pedestal runs
    Log("INFO-Will run Pedestal subprocessor");
  }
  else if ( runType == "CALIBRATION" )
  {
    Add(fGainSubprocessor); // to be called only for gain runs
    Log("INFO-Will run Gain subprocessor");
  }
  else if ( runType == "GMS" )
  {
    Add(fGMSSubprocessor);
    Log("INFO-Will run GMS subprocessor");
  }
  else if ( runType == "PHYSICS" )
  {
    Bool_t useDCS(kTRUE);
    Add(fHVSubprocessor,useDCS); // to be called only for physics runs
    Add(fOccupancySubprocessor);
    Log("INFO-Will run HV subprocessor");
    if ( fHVSubprocessor->IncludeHVCurrent() )
    {
      Log("INFO-HV subprocessor will store HV currents in addition to the voltages");
    }
    Log("INFO-Will run Occupancy subprocessor");
  }
  else
  {
    fIsApplicable = kFALSE;
  }
  
  AliMUONPreprocessor::Initialize(run,startTime,endTime);
  
}
 AliMUONTrackerPreprocessor.cxx:1
 AliMUONTrackerPreprocessor.cxx:2
 AliMUONTrackerPreprocessor.cxx:3
 AliMUONTrackerPreprocessor.cxx:4
 AliMUONTrackerPreprocessor.cxx:5
 AliMUONTrackerPreprocessor.cxx:6
 AliMUONTrackerPreprocessor.cxx:7
 AliMUONTrackerPreprocessor.cxx:8
 AliMUONTrackerPreprocessor.cxx:9
 AliMUONTrackerPreprocessor.cxx:10
 AliMUONTrackerPreprocessor.cxx:11
 AliMUONTrackerPreprocessor.cxx:12
 AliMUONTrackerPreprocessor.cxx:13
 AliMUONTrackerPreprocessor.cxx:14
 AliMUONTrackerPreprocessor.cxx:15
 AliMUONTrackerPreprocessor.cxx:16
 AliMUONTrackerPreprocessor.cxx:17
 AliMUONTrackerPreprocessor.cxx:18
 AliMUONTrackerPreprocessor.cxx:19
 AliMUONTrackerPreprocessor.cxx:20
 AliMUONTrackerPreprocessor.cxx:21
 AliMUONTrackerPreprocessor.cxx:22
 AliMUONTrackerPreprocessor.cxx:23
 AliMUONTrackerPreprocessor.cxx:24
 AliMUONTrackerPreprocessor.cxx:25
 AliMUONTrackerPreprocessor.cxx:26
 AliMUONTrackerPreprocessor.cxx:27
 AliMUONTrackerPreprocessor.cxx:28
 AliMUONTrackerPreprocessor.cxx:29
 AliMUONTrackerPreprocessor.cxx:30
 AliMUONTrackerPreprocessor.cxx:31
 AliMUONTrackerPreprocessor.cxx:32
 AliMUONTrackerPreprocessor.cxx:33
 AliMUONTrackerPreprocessor.cxx:34
 AliMUONTrackerPreprocessor.cxx:35
 AliMUONTrackerPreprocessor.cxx:36
 AliMUONTrackerPreprocessor.cxx:37
 AliMUONTrackerPreprocessor.cxx:38
 AliMUONTrackerPreprocessor.cxx:39
 AliMUONTrackerPreprocessor.cxx:40
 AliMUONTrackerPreprocessor.cxx:41
 AliMUONTrackerPreprocessor.cxx:42
 AliMUONTrackerPreprocessor.cxx:43
 AliMUONTrackerPreprocessor.cxx:44
 AliMUONTrackerPreprocessor.cxx:45
 AliMUONTrackerPreprocessor.cxx:46
 AliMUONTrackerPreprocessor.cxx:47
 AliMUONTrackerPreprocessor.cxx:48
 AliMUONTrackerPreprocessor.cxx:49
 AliMUONTrackerPreprocessor.cxx:50
 AliMUONTrackerPreprocessor.cxx:51
 AliMUONTrackerPreprocessor.cxx:52
 AliMUONTrackerPreprocessor.cxx:53
 AliMUONTrackerPreprocessor.cxx:54
 AliMUONTrackerPreprocessor.cxx:55
 AliMUONTrackerPreprocessor.cxx:56
 AliMUONTrackerPreprocessor.cxx:57
 AliMUONTrackerPreprocessor.cxx:58
 AliMUONTrackerPreprocessor.cxx:59
 AliMUONTrackerPreprocessor.cxx:60
 AliMUONTrackerPreprocessor.cxx:61
 AliMUONTrackerPreprocessor.cxx:62
 AliMUONTrackerPreprocessor.cxx:63
 AliMUONTrackerPreprocessor.cxx:64
 AliMUONTrackerPreprocessor.cxx:65
 AliMUONTrackerPreprocessor.cxx:66
 AliMUONTrackerPreprocessor.cxx:67
 AliMUONTrackerPreprocessor.cxx:68
 AliMUONTrackerPreprocessor.cxx:69
 AliMUONTrackerPreprocessor.cxx:70
 AliMUONTrackerPreprocessor.cxx:71
 AliMUONTrackerPreprocessor.cxx:72
 AliMUONTrackerPreprocessor.cxx:73
 AliMUONTrackerPreprocessor.cxx:74
 AliMUONTrackerPreprocessor.cxx:75
 AliMUONTrackerPreprocessor.cxx:76
 AliMUONTrackerPreprocessor.cxx:77
 AliMUONTrackerPreprocessor.cxx:78
 AliMUONTrackerPreprocessor.cxx:79
 AliMUONTrackerPreprocessor.cxx:80
 AliMUONTrackerPreprocessor.cxx:81
 AliMUONTrackerPreprocessor.cxx:82
 AliMUONTrackerPreprocessor.cxx:83
 AliMUONTrackerPreprocessor.cxx:84
 AliMUONTrackerPreprocessor.cxx:85
 AliMUONTrackerPreprocessor.cxx:86
 AliMUONTrackerPreprocessor.cxx:87
 AliMUONTrackerPreprocessor.cxx:88
 AliMUONTrackerPreprocessor.cxx:89
 AliMUONTrackerPreprocessor.cxx:90
 AliMUONTrackerPreprocessor.cxx:91
 AliMUONTrackerPreprocessor.cxx:92
 AliMUONTrackerPreprocessor.cxx:93
 AliMUONTrackerPreprocessor.cxx:94
 AliMUONTrackerPreprocessor.cxx:95
 AliMUONTrackerPreprocessor.cxx:96
 AliMUONTrackerPreprocessor.cxx:97
 AliMUONTrackerPreprocessor.cxx:98
 AliMUONTrackerPreprocessor.cxx:99
 AliMUONTrackerPreprocessor.cxx:100
 AliMUONTrackerPreprocessor.cxx:101
 AliMUONTrackerPreprocessor.cxx:102
 AliMUONTrackerPreprocessor.cxx:103
 AliMUONTrackerPreprocessor.cxx:104
 AliMUONTrackerPreprocessor.cxx:105
 AliMUONTrackerPreprocessor.cxx:106
 AliMUONTrackerPreprocessor.cxx:107
 AliMUONTrackerPreprocessor.cxx:108
 AliMUONTrackerPreprocessor.cxx:109
 AliMUONTrackerPreprocessor.cxx:110
 AliMUONTrackerPreprocessor.cxx:111
 AliMUONTrackerPreprocessor.cxx:112
 AliMUONTrackerPreprocessor.cxx:113
 AliMUONTrackerPreprocessor.cxx:114
 AliMUONTrackerPreprocessor.cxx:115
 AliMUONTrackerPreprocessor.cxx:116
 AliMUONTrackerPreprocessor.cxx:117
 AliMUONTrackerPreprocessor.cxx:118
 AliMUONTrackerPreprocessor.cxx:119
 AliMUONTrackerPreprocessor.cxx:120
 AliMUONTrackerPreprocessor.cxx:121
 AliMUONTrackerPreprocessor.cxx:122