]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONPreprocessor.cxx
Updated AliEMCAL::Digits2Raw, reads first provisional RCU mapping files to make Raw...
[u/mrichter/AliRoot.git] / MUON / AliMUONPreprocessor.cxx
CommitLineData
ea199e33 1/**************************************************************************
2* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3* *
4* Author: The ALICE Off-line Project. *
5* Contributors are mentioned in the code where appropriate. *
6* *
7* Permission to use, copy, modify and distribute this software and its *
8* documentation strictly for non-commercial purposes is hereby granted *
9* without fee, provided that the above copyright notice appears in all *
10* copies and that both the copyright notice and this permission notice *
11* appear in the supporting documentation. The authors make no claims *
12* about the suitability of this software for any purpose. It is *
13* provided "as is" without express or implied warranty. *
14**************************************************************************/
15
16// $Id$
17
18#include "AliMUONPreprocessor.h"
ea199e33 19#include "AliMUONPedestalSubprocessor.h"
fee1d02b 20#include "AliMUONGMSSubprocessor.h"
21
22#include "AliLog.h"
23
ea199e33 24#include "Riostream.h"
fee1d02b 25#include "TObjArray.h"
ea199e33 26
27/// \class AliMUONPreprocessor
28///
29/// Shuttle preprocessor for MUON subsystems (TRK and TRG)
30///
31/// It's simply a manager class that deals with a list of sub-tasks
32/// (of type AliMUONVSubprocessor).
33///
34/// \author Laurent Aphecetche
35
36/// \cond CLASSIMP
37ClassImp(AliMUONPreprocessor)
38/// \endcond
39
fee1d02b 40const TString AliMUONPreprocessor::fgkTrackerDetName = "MCH";
41const TString AliMUONPreprocessor::fgkTriggerDetName = "MTR";
42
ea199e33 43//_____________________________________________________________________________
fee1d02b 44AliMUONPreprocessor::AliMUONPreprocessor(const TString& detName,
ea199e33 45 AliShuttleInterface* shuttle)
fee1d02b 46: AliPreprocessor(detName.Data(),shuttle),
47// fSubprocessors(new TObjArray[kLast])
48 fSubprocessors(new TObjArray())
ea199e33 49{
50 /// ctor. Builds the list of subtasks
fee1d02b 51 /// Tests detector wrt to tracker or trigger to
ea199e33 52 /// instantiate the correct list of subtasks, which should be :
53 /// Tracker :
fee1d02b 54 /// - pedestals
55 /// - gains
56 /// - deadchannels
57 /// - gms
ea199e33 58 ///
59 /// Trigger :
fee1d02b 60 /// - masks
61 /// - lut
62
63 if ( detName == fgkTrackerDetName ) {
64 fSubprocessors->Add(new AliMUONPedestalSubprocessor(this));
65 fSubprocessors->Add(new AliMUONGMSSubprocessor(this));
66 }
67 else if ( detName == fgkTriggerDetName ) {
68 AliWarningStream() << "Trigger subprocessors not yet implemented." << endl;
69 }
70 else {
71 // Wrong detector name
72 AliErrorStream() << "Wrong detector name." << endl;
73 }
ea199e33 74}
75
76//_____________________________________________________________________________
77AliMUONPreprocessor::~AliMUONPreprocessor()
78{
79 /// dtor
80 delete fSubprocessors;
81}
82
83//_____________________________________________________________________________
84void
85AliMUONPreprocessor::Initialize(Int_t run, UInt_t startTime, UInt_t endTime)
86{
87 /// loop over subtasks and initialize them
88 for ( Int_t i = 0; i <= fSubprocessors->GetLast(); ++i )
89 {
90 Subprocessor(i)->Initialize(run,startTime,endTime);
91 }
92}
93
94//_____________________________________________________________________________
95UInt_t
96AliMUONPreprocessor::Process(TMap* dcsAliasMap)
97{
98 /// loop over subtasks to make them work
99 UInt_t rv(0);
100
101 for ( Int_t i = 0; i <= fSubprocessors->GetLast(); ++i )
102 {
103 rv += Subprocessor(i)->Process(dcsAliasMap);
104 }
105 return rv;
106}
107
108//_____________________________________________________________________________
109void
110AliMUONPreprocessor::Print(Option_t* opt) const
111{
112 /// output to screen
113 cout << "<AliMUONPreprocessor> subprocessors :" << endl;
114 for ( Int_t i=0; i <= fSubprocessors->GetLast(); ++i )
115 {
116 Subprocessor(i)->Print(opt);
117 }
118}
119
120//_____________________________________________________________________________
121AliMUONVSubprocessor*
122AliMUONPreprocessor::Subprocessor(Int_t i) const
123{
124 /// return i-th subprocessor
125 if ( i >= 0 && i <= fSubprocessors->GetLast() )
126 {
127 return static_cast<AliMUONVSubprocessor*>(fSubprocessors->At(i));
128 }
129 return 0x0;
130}