Adding PiKP-only histograms and eliminating a number of switches where histograms...
[u/mrichter/AliRoot.git] / MUON / AliMUONVQADataMakerRec.cxx
CommitLineData
ece56eb9 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 "AliMUONVQADataMakerRec.h"
19
20///
21/// \class AliMUONVQADataMakerRec
22///
23/// Interface for a MUON QADataMakerRec, common to MCH and MTR
24///
25/// \author Laurent Aphecetche
26
27/// \cond CLASSIMP
28ClassImp(AliMUONVQADataMakerRec)
29/// \endcond
30
ece56eb9 31#include "AliMUONRecoParam.h"
32#include "AliCDBManager.h"
152fe71e 33#include "TH1.h"
ece56eb9 34
35//_____________________________________________________________________________
36AliMUONVQADataMakerRec::AliMUONVQADataMakerRec(AliQADataMakerRec* master)
37: fMaster(master)
38{
39 /// ctor
40}
41
42//_____________________________________________________________________________
43AliMUONVQADataMakerRec::~AliMUONVQADataMakerRec()
44{
45 /// dtor
46}
47
48//_____________________________________________________________________________
49Int_t
50AliMUONVQADataMakerRec::Add2DigitsList(TH1 * hist, const Int_t index, const Bool_t expert , const Bool_t image )
51{
52 /// fwd
53 return fMaster ? fMaster->Add2DigitsList(hist,index,expert,image) : -1;
54}
55
56//_____________________________________________________________________________
57Int_t
58AliMUONVQADataMakerRec::Add2ESDsList(TH1 * hist, const Int_t index, const Bool_t expert , const Bool_t image )
59{
60 /// fwd
61 return fMaster ? fMaster->Add2ESDsList(hist,index,expert,image) : -1;
62}
63
64//_____________________________________________________________________________
65Int_t
66AliMUONVQADataMakerRec::Add2RecPointsList(TH1 * hist, const Int_t index, const Bool_t expert , const Bool_t image )
67{
68 /// fwd
69 return fMaster ? fMaster->Add2RecPointsList(hist,index,expert,image) : -1;
70}
71
72//_____________________________________________________________________________
73Int_t
74AliMUONVQADataMakerRec::Add2RawsList(TH1 * hist, const Int_t index, const Bool_t expert , const Bool_t image , const Bool_t saveForCorr )
75{
76 /// fwd
77 return fMaster ? fMaster->Add2RawsList(hist,index,expert,image,saveForCorr) : -1;
78}
79
80//_____________________________________________________________________________
92664bc8 81void AliMUONVQADataMakerRec::ClonePerTrigClass(AliQAv1::TASKINDEX_t task)
82{
83 // RS: alias to QADataMaker per-trigger-class histo clonning
84 if (!fMaster) return;
85 fMaster->ClonePerTrigClass(task);
86}
87
88
89//_____________________________________________________________________________
ece56eb9 90AliRecoParam::EventSpecie_t
91AliMUONVQADataMakerRec::CurrentEventSpecie() const
92{
93 /// fwd
94 return fMaster ? fMaster->GetEventSpecie() : AliRecoParam::kDefault;
95}
96
97//_____________________________________________________________________________
98const AliMUONRecoParam*
99AliMUONVQADataMakerRec::GetRecoParam() const
100{
101 /// fwd
102 return fMaster ? dynamic_cast<const AliMUONRecoParam*>(fMaster->GetRecoParam()) : 0x0;
103}
104
105//_____________________________________________________________________________
152fe71e 106void
57e2ad1a 107AliMUONVQADataMakerRec::ResetDetector(const TObjArray* list)
152fe71e 108{
109 /// Reset all histograms found in list, that match either trigger or tracker
bae0b90c 110
152fe71e 111 TString cn(ClassName());
112 TString pattern;
113
114 if ( cn.Contains("Trigger") ) pattern = "Trigger";
115 if ( cn.Contains("Tracker") ) pattern = "Tracker";
116
117 TIter next(list);
118 TObject* o;
119 while ( (o = next()) )
120 {
92664bc8 121 // RS: Check if this is a histo or array of histos
122 TString hcn(o->GetName());
123 if ( !hcn.Contains(pattern) ) continue;
124 if ( !o->TestBit(AliQAv1::GetClonedBit()) ) { // not cloned, this is orig. histo
125 ((TH1*)o)->Reset();
126 continue;
127 }
128 // histo was cloned, so we are dealing with TObjArray
129 TIter nextCl( (TObjArray*)o );
130 TH1* hclone = 0;
bae0b90c 131 while ( (hclone = (TH1*) nextCl()) ) hclone->Reset();
152fe71e 132 }
133}
134
135//_____________________________________________________________________________
ece56eb9 136Int_t
137AliMUONVQADataMakerRec::RunNumber() const
138{
139 /// fwd
140 return fMaster ? fMaster->GetRun() : -1;
141}