]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONQADataMakerRec.cxx
example macros for EVE analysis using new ListAnalyser (Ben)
[u/mrichter/AliRoot.git] / MUON / AliMUONQADataMakerRec.cxx
CommitLineData
04236e67 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
bf4d93eb 16// $Id$
17
b1341ab0 18// --- MUON header files ---
19#include "AliMUONQADataMakerRec.h"
04236e67 20
04236e67 21//-----------------------------------------------------------------------------
22/// \class AliMUONQADataMakerRec
23///
24/// MUON base class for quality assurance data (histo) maker
25///
ece56eb9 26/// It is now only a steering class for the two subclasses AliMUONTrackerQADataMakerRec
27/// and AliMUONTriggerQADataMakerRec
28///
29/// \author C. Finck, D. Stocco, L. Aphecetche, A. Blanc
30
31#include "AliMUONTrackerQADataMakerRec.h"
32#include "AliMUONTriggerQADataMakerRec.h"
33#include "AliQAChecker.h"
34#include "AliRawReader.h"
35#include "AliRawEventHeaderBase.h"
04236e67 36
37/// \cond CLASSIMP
38ClassImp(AliMUONQADataMakerRec)
39/// \endcond
40
41//____________________________________________________________________________
ece56eb9 42AliMUONQADataMakerRec::AliMUONQADataMakerRec(Bool_t tracker, Bool_t trigger) :
4e25ac79 43AliQADataMakerRec(AliQAv1::GetDetName(AliQAv1::kMUON), "MUON Quality Assurance Data Maker"),
ece56eb9 44fTracker(tracker ? new AliMUONTrackerQADataMakerRec(this) : 0x0),
45fTrigger(trigger ? new AliMUONTriggerQADataMakerRec(this) : 0x0)
04236e67 46{
ece56eb9 47 /// ctor
04236e67 48}
49
50//__________________________________________________________________
51AliMUONQADataMakerRec::~AliMUONQADataMakerRec()
52{
53 /// dtor
ece56eb9 54 delete fTracker;
55 delete fTrigger;
04236e67 56}
57
58//____________________________________________________________________________
4e25ac79 59void AliMUONQADataMakerRec::EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjArray** list)
04236e67 60{
b9bd355c 61 /// Detector specific actions at end of cycle
c92a8c85 62
c455c5fb 63 for (Int_t specie = 0 ; specie < AliRecoParam::kNSpecies ; specie++)
64 {
b9bd355c 65 if (! IsValidEventSpecie(specie, list) ) continue;
66
67 SetEventSpecie(AliRecoParam::ConvertIndex(specie));
c455c5fb 68
ece56eb9 69 if ( task == AliQAv1::kRAWS )
b9bd355c 70 {
ece56eb9 71 if (fTracker) fTracker->EndOfDetectorCycleRaws(specie,list);
72 if (fTrigger) fTrigger->EndOfDetectorCycleRaws(specie,list);
b9bd355c 73 }
74
75 if ( task == AliQAv1::kRECPOINTS )
76 {
77 // normalize recpoints histograms
ece56eb9 78 if (fTracker) fTracker->EndOfDetectorCycleRecPoints(specie,list);
79 if (fTrigger) fTrigger->EndOfDetectorCycleRecPoints(specie,list);
b9bd355c 80 }
81
82 if ( task == AliQAv1::kESDS )
83 {
84 // normalize esds histograms
ece56eb9 85 if (fTracker) fTracker->EndOfDetectorCycleESDs(specie,list);
86 if (fTrigger) fTrigger->EndOfDetectorCycleESDs(specie,list);
b9bd355c 87 }
ece56eb9 88 } // loop on specie
b9bd355c 89
90 // do the QA checking
ece56eb9 91 AliQAChecker::Instance()->Run(AliQAv1::kMUON,task,list,const_cast<AliDetectorRecoParam*>(GetRecoParam()));
b9bd355c 92}
93
94//____________________________________________________________________________
ece56eb9 95void AliMUONQADataMakerRec::InitRaws()
b9bd355c 96{
ece56eb9 97 /// create Raws histograms in Raws subdir
98
99 if ( fTracker ) fTracker->InitRaws();
100 if ( fTrigger ) fTrigger->InitRaws();
b9bd355c 101}
102
ece56eb9 103//__________________________________________________________________
104void AliMUONQADataMakerRec::InitDigits()
b9bd355c 105{
ece56eb9 106 /// Initialized Digits spectra
107 if ( fTracker ) fTracker->InitDigits();
108 if ( fTrigger ) fTrigger->InitDigits();
109}
b9bd355c 110
b9bd355c 111//____________________________________________________________________________
ece56eb9 112void AliMUONQADataMakerRec::InitRecPoints()
b9bd355c 113{
ece56eb9 114 /// create Reconstructed Points histograms in RecPoints subdir
115 if ( fTracker ) fTracker->InitRecPoints();
116 if ( fTrigger ) fTrigger->InitRecPoints();
b9bd355c 117}
118
119
120//____________________________________________________________________________
ece56eb9 121void AliMUONQADataMakerRec::InitESDs()
b9bd355c 122{
ece56eb9 123 ///create ESDs histograms in ESDs subdir
124 if ( fTracker ) fTracker->InitESDs();
125 if ( fTrigger ) fTrigger->InitESDs();
04236e67 126}
127
ece56eb9 128//____________________________________________________________________________
129void AliMUONQADataMakerRec::MakeRaws(AliRawReader* rawReader)
04236e67 130{
ece56eb9 131 /// make QA for rawdata
df48c8a4 132
ece56eb9 133 // Check id histograms already created for this Event Specie
df48c8a4 134
ece56eb9 135 if ( fTracker && rawReader->GetType() == AliRawEventHeaderBase::kPhysicsEvent )
5bb54f70 136 {
ece56eb9 137 rawReader->Reset();
138 fTracker->MakeRaws(rawReader);
5bb54f70 139 }
140
ece56eb9 141 if ( fTrigger && (rawReader->GetType() == AliRawEventHeaderBase::kPhysicsEvent ||
142 rawReader->GetType() == AliRawEventHeaderBase::kCalibrationEvent ) )
b9bd355c 143 {
ece56eb9 144 rawReader->Reset();
145 fTrigger->MakeRaws(rawReader);
b9bd355c 146 }
f587a77d 147}
04236e67 148
44ed7a66 149//__________________________________________________________________
ece56eb9 150void AliMUONQADataMakerRec::MakeDigits()
44ed7a66 151{
ece56eb9 152 /// makes data from Digits
44ed7a66 153
ece56eb9 154 AliError("Not implemented");
155}
44ed7a66 156
ece56eb9 157//__________________________________________________________________
158void AliMUONQADataMakerRec::MakeDigits(TTree* digitsTree)
f587a77d 159{
ece56eb9 160 /// makes data from Digits
161
162 // Do nothing in case of calibration event
163 if ( GetRecoParam()->GetEventSpecie() == AliRecoParam::kCalib ) return;
164
165 if ( fTracker ) fTracker->MakeDigits(digitsTree);
166 if ( fTrigger ) fTrigger->MakeDigits(digitsTree);
f587a77d 167}
168
ece56eb9 169//____________________________________________________________________________
170void AliMUONQADataMakerRec::MakeRecPoints(TTree* clustersTree)
f587a77d 171{
ece56eb9 172 /// Fill histograms from treeR
173
174 // Do nothing in case of calibration event
175 if ( GetRecoParam()->GetEventSpecie() == AliRecoParam::kCalib ) return;
176
177 if ( fTracker ) fTracker->MakeRecPoints(clustersTree);
178 if ( fTrigger ) fTrigger->MakeRecPoints(clustersTree);
04236e67 179}
180
ece56eb9 181//____________________________________________________________________________
182void AliMUONQADataMakerRec::MakeESDs(AliESDEvent* esd)
04236e67 183{
ece56eb9 184 /// make QA data from ESDs
719914e0 185
ece56eb9 186 // Do nothing in case of calibration event
187 if ( GetRecoParam()->GetEventSpecie() == AliRecoParam::kCalib ) return;
188
189 if ( fTracker ) fTracker->MakeESDs(esd);
190 if ( fTrigger ) fTrigger->MakeESDs(esd);
43b113b8 191
ece56eb9 192 }
04236e67 193
194//____________________________________________________________________________
195void AliMUONQADataMakerRec::StartOfDetectorCycle()
196{
ece56eb9 197 /// Detector specific actions at start of cycle
df48c8a4 198}