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 "AliMUONVQADataMakerRec.h"

///
/// \class AliMUONVQADataMakerRec
/// 
/// Interface for a MUON QADataMakerRec, common to MCH and MTR
/// 
/// \author Laurent Aphecetche

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

#include "AliMUONRecoParam.h"
#include "AliCDBManager.h"
#include "TH1.h"

//_____________________________________________________________________________
AliMUONVQADataMakerRec::AliMUONVQADataMakerRec(AliQADataMakerRec* master)
: fMaster(master)
{
  /// ctor
}

//_____________________________________________________________________________
AliMUONVQADataMakerRec::~AliMUONVQADataMakerRec()
{
  /// dtor
}

//_____________________________________________________________________________
Int_t 
AliMUONVQADataMakerRec::Add2DigitsList(TH1 * hist, const Int_t index, const Bool_t expert , const Bool_t image )
{
  /// fwd
  return fMaster ? fMaster->Add2DigitsList(hist,index,expert,image) : -1;
}

//_____________________________________________________________________________
Int_t 
AliMUONVQADataMakerRec::Add2ESDsList(TH1 * hist, const Int_t index, const Bool_t expert , const Bool_t image )
{
  /// fwd
  return fMaster ? fMaster->Add2ESDsList(hist,index,expert,image) : -1;
}

//_____________________________________________________________________________
Int_t 
AliMUONVQADataMakerRec::Add2RecPointsList(TH1 * hist, const Int_t index, const Bool_t expert , const Bool_t image )
{
  /// fwd
  return fMaster ? fMaster->Add2RecPointsList(hist,index,expert,image) : -1;
}

//_____________________________________________________________________________
Int_t 
AliMUONVQADataMakerRec::Add2RawsList(TH1 * hist, const Int_t index, const Bool_t expert , const Bool_t image , const Bool_t saveForCorr )
{
  /// fwd
  return fMaster ? fMaster->Add2RawsList(hist,index,expert,image,saveForCorr) : -1;
}

//_____________________________________________________________________________
void AliMUONVQADataMakerRec::ClonePerTrigClass(AliQAv1::TASKINDEX_t task)
{
  // RS: alias to QADataMaker per-trigger-class histo clonning
  if (!fMaster) return;
  fMaster->ClonePerTrigClass(task);
}


//_____________________________________________________________________________
AliRecoParam::EventSpecie_t 
AliMUONVQADataMakerRec::CurrentEventSpecie() const
{
  /// fwd
  return fMaster ? fMaster->GetEventSpecie() : AliRecoParam::kDefault;
}

//_____________________________________________________________________________
const AliMUONRecoParam* 
AliMUONVQADataMakerRec::GetRecoParam() const
{
  /// fwd
  return fMaster ? dynamic_cast<const AliMUONRecoParam*>(fMaster->GetRecoParam()) : 0x0;
}

//_____________________________________________________________________________
void 
AliMUONVQADataMakerRec::ResetDetector(const TObjArray* list)
{
  /// Reset all histograms found in list, that match either trigger or tracker
  
  TString cn(ClassName());
  TString pattern;
  
  if ( cn.Contains("Trigger") ) pattern = "Trigger";
  if ( cn.Contains("Tracker") ) pattern = "Tracker";
  
  TIter next(list); 
  TObject* o;
  while ( (o = next()) ) 
  {
    // RS: Check if this is a histo or array of histos
    TString hcn(o->GetName());
    if ( !hcn.Contains(pattern) ) continue;
    if ( !o->TestBit(AliQAv1::GetClonedBit()) ) { // not cloned, this is orig. histo
      ((TH1*)o)->Reset();
      continue;
    }
    // histo was cloned, so we are dealing with TObjArray
    TIter nextCl( (TObjArray*)o );
    TH1* hclone = 0;
    while ( (hclone = (TH1*) nextCl()) ) hclone->Reset();
  }
}

//_____________________________________________________________________________
Int_t 
AliMUONVQADataMakerRec::RunNumber() const
{
  /// fwd
  return fMaster ? fMaster->GetRun() : -1;
}
 AliMUONVQADataMakerRec.cxx:1
 AliMUONVQADataMakerRec.cxx:2
 AliMUONVQADataMakerRec.cxx:3
 AliMUONVQADataMakerRec.cxx:4
 AliMUONVQADataMakerRec.cxx:5
 AliMUONVQADataMakerRec.cxx:6
 AliMUONVQADataMakerRec.cxx:7
 AliMUONVQADataMakerRec.cxx:8
 AliMUONVQADataMakerRec.cxx:9
 AliMUONVQADataMakerRec.cxx:10
 AliMUONVQADataMakerRec.cxx:11
 AliMUONVQADataMakerRec.cxx:12
 AliMUONVQADataMakerRec.cxx:13
 AliMUONVQADataMakerRec.cxx:14
 AliMUONVQADataMakerRec.cxx:15
 AliMUONVQADataMakerRec.cxx:16
 AliMUONVQADataMakerRec.cxx:17
 AliMUONVQADataMakerRec.cxx:18
 AliMUONVQADataMakerRec.cxx:19
 AliMUONVQADataMakerRec.cxx:20
 AliMUONVQADataMakerRec.cxx:21
 AliMUONVQADataMakerRec.cxx:22
 AliMUONVQADataMakerRec.cxx:23
 AliMUONVQADataMakerRec.cxx:24
 AliMUONVQADataMakerRec.cxx:25
 AliMUONVQADataMakerRec.cxx:26
 AliMUONVQADataMakerRec.cxx:27
 AliMUONVQADataMakerRec.cxx:28
 AliMUONVQADataMakerRec.cxx:29
 AliMUONVQADataMakerRec.cxx:30
 AliMUONVQADataMakerRec.cxx:31
 AliMUONVQADataMakerRec.cxx:32
 AliMUONVQADataMakerRec.cxx:33
 AliMUONVQADataMakerRec.cxx:34
 AliMUONVQADataMakerRec.cxx:35
 AliMUONVQADataMakerRec.cxx:36
 AliMUONVQADataMakerRec.cxx:37
 AliMUONVQADataMakerRec.cxx:38
 AliMUONVQADataMakerRec.cxx:39
 AliMUONVQADataMakerRec.cxx:40
 AliMUONVQADataMakerRec.cxx:41
 AliMUONVQADataMakerRec.cxx:42
 AliMUONVQADataMakerRec.cxx:43
 AliMUONVQADataMakerRec.cxx:44
 AliMUONVQADataMakerRec.cxx:45
 AliMUONVQADataMakerRec.cxx:46
 AliMUONVQADataMakerRec.cxx:47
 AliMUONVQADataMakerRec.cxx:48
 AliMUONVQADataMakerRec.cxx:49
 AliMUONVQADataMakerRec.cxx:50
 AliMUONVQADataMakerRec.cxx:51
 AliMUONVQADataMakerRec.cxx:52
 AliMUONVQADataMakerRec.cxx:53
 AliMUONVQADataMakerRec.cxx:54
 AliMUONVQADataMakerRec.cxx:55
 AliMUONVQADataMakerRec.cxx:56
 AliMUONVQADataMakerRec.cxx:57
 AliMUONVQADataMakerRec.cxx:58
 AliMUONVQADataMakerRec.cxx:59
 AliMUONVQADataMakerRec.cxx:60
 AliMUONVQADataMakerRec.cxx:61
 AliMUONVQADataMakerRec.cxx:62
 AliMUONVQADataMakerRec.cxx:63
 AliMUONVQADataMakerRec.cxx:64
 AliMUONVQADataMakerRec.cxx:65
 AliMUONVQADataMakerRec.cxx:66
 AliMUONVQADataMakerRec.cxx:67
 AliMUONVQADataMakerRec.cxx:68
 AliMUONVQADataMakerRec.cxx:69
 AliMUONVQADataMakerRec.cxx:70
 AliMUONVQADataMakerRec.cxx:71
 AliMUONVQADataMakerRec.cxx:72
 AliMUONVQADataMakerRec.cxx:73
 AliMUONVQADataMakerRec.cxx:74
 AliMUONVQADataMakerRec.cxx:75
 AliMUONVQADataMakerRec.cxx:76
 AliMUONVQADataMakerRec.cxx:77
 AliMUONVQADataMakerRec.cxx:78
 AliMUONVQADataMakerRec.cxx:79
 AliMUONVQADataMakerRec.cxx:80
 AliMUONVQADataMakerRec.cxx:81
 AliMUONVQADataMakerRec.cxx:82
 AliMUONVQADataMakerRec.cxx:83
 AliMUONVQADataMakerRec.cxx:84
 AliMUONVQADataMakerRec.cxx:85
 AliMUONVQADataMakerRec.cxx:86
 AliMUONVQADataMakerRec.cxx:87
 AliMUONVQADataMakerRec.cxx:88
 AliMUONVQADataMakerRec.cxx:89
 AliMUONVQADataMakerRec.cxx:90
 AliMUONVQADataMakerRec.cxx:91
 AliMUONVQADataMakerRec.cxx:92
 AliMUONVQADataMakerRec.cxx:93
 AliMUONVQADataMakerRec.cxx:94
 AliMUONVQADataMakerRec.cxx:95
 AliMUONVQADataMakerRec.cxx:96
 AliMUONVQADataMakerRec.cxx:97
 AliMUONVQADataMakerRec.cxx:98
 AliMUONVQADataMakerRec.cxx:99
 AliMUONVQADataMakerRec.cxx:100
 AliMUONVQADataMakerRec.cxx:101
 AliMUONVQADataMakerRec.cxx:102
 AliMUONVQADataMakerRec.cxx:103
 AliMUONVQADataMakerRec.cxx:104
 AliMUONVQADataMakerRec.cxx:105
 AliMUONVQADataMakerRec.cxx:106
 AliMUONVQADataMakerRec.cxx:107
 AliMUONVQADataMakerRec.cxx:108
 AliMUONVQADataMakerRec.cxx:109
 AliMUONVQADataMakerRec.cxx:110
 AliMUONVQADataMakerRec.cxx:111
 AliMUONVQADataMakerRec.cxx:112
 AliMUONVQADataMakerRec.cxx:113
 AliMUONVQADataMakerRec.cxx:114
 AliMUONVQADataMakerRec.cxx:115
 AliMUONVQADataMakerRec.cxx:116
 AliMUONVQADataMakerRec.cxx:117
 AliMUONVQADataMakerRec.cxx:118
 AliMUONVQADataMakerRec.cxx:119
 AliMUONVQADataMakerRec.cxx:120
 AliMUONVQADataMakerRec.cxx:121
 AliMUONVQADataMakerRec.cxx:122
 AliMUONVQADataMakerRec.cxx:123
 AliMUONVQADataMakerRec.cxx:124
 AliMUONVQADataMakerRec.cxx:125
 AliMUONVQADataMakerRec.cxx:126
 AliMUONVQADataMakerRec.cxx:127
 AliMUONVQADataMakerRec.cxx:128
 AliMUONVQADataMakerRec.cxx:129
 AliMUONVQADataMakerRec.cxx:130
 AliMUONVQADataMakerRec.cxx:131
 AliMUONVQADataMakerRec.cxx:132
 AliMUONVQADataMakerRec.cxx:133
 AliMUONVQADataMakerRec.cxx:134
 AliMUONVQADataMakerRec.cxx:135
 AliMUONVQADataMakerRec.cxx:136
 AliMUONVQADataMakerRec.cxx:137
 AliMUONVQADataMakerRec.cxx:138
 AliMUONVQADataMakerRec.cxx:139
 AliMUONVQADataMakerRec.cxx:140
 AliMUONVQADataMakerRec.cxx:141