1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
21 Produces the data needed to calculate the quality assurance.
22 All data must be mergeable objects.
23 Y. Schutz CERN July 2007
26 // --- ROOT system ---
32 // --- Standard library ---
34 // --- AliRoot header files ---
36 #include "AliQualAssDataMaker.h"
37 #include "AliESDEvent.h"
39 ClassImp(AliQualAssDataMaker)
41 TString AliQualAssDataMaker::fDetectorDirName("") ;
44 //____________________________________________________________________________
45 AliQualAssDataMaker::AliQualAssDataMaker(const char * name, const char * title) :
53 fRecPointsQAList(0x0),
57 TString tmp(GetName()) ;
60 fOutput = AliQualAss::GetQADMOutFile() ;
61 fDetectorDirName = GetName() ;
64 //____________________________________________________________________________
65 AliQualAssDataMaker::AliQualAssDataMaker(const AliQualAssDataMaker& qadm) :
66 TNamed(qadm.GetName(), qadm.GetTitle()),
67 fOutput(qadm.fOutput),
68 fDetectorDir(qadm.fDetectorDir),
69 fDigitsQAList(qadm.fDigitsQAList),
70 fESDsQAList(qadm.fESDsQAList),
71 fHitsQAList(qadm.fHitsQAList),
72 fRawsQAList(qadm.fRecPointsQAList),
73 fRecPointsQAList(qadm.fRecPointsQAList),
74 fSDigitsQAList(qadm.fSDigitsQAList)
77 fDetectorDirName = GetName() ;
80 //__________________________________________________________________
81 AliQualAssDataMaker& AliQualAssDataMaker::operator = (const AliQualAssDataMaker& qadm )
84 this->~AliQualAssDataMaker();
85 new(this) AliQualAssDataMaker(qadm);
89 //____________________________________________________________________________
90 void AliQualAssDataMaker::Exec(AliQualAss::TASKINDEX task, TObject * data)
92 // creates the quality assurance data for the various tasks (Hits, SDigits, Digits, ESDs)
94 fDetectorDir = fOutput->GetDirectory(GetDetectorDirName()) ;
96 fDetectorDir = fOutput->mkdir(GetDetectorDirName()) ;
100 case AliQualAss::kRAWS:
101 AliInfo("Processing Raws QA") ;
105 case AliQualAss::kHITS:
106 AliInfo("Processing Hits QA") ;
110 case AliQualAss::kSDIGITS:
111 AliInfo("Processing SDigits QA") ;
115 case AliQualAss::kDIGITS:
119 case AliQualAss::kRECPOINTS:
120 AliInfo("Processing RecPoints QA") ;
121 TTree * recpoints = dynamic_cast<TTree *>(data) ;
123 MakeRecPoints(recpoints) ;
125 AliError("Wrong type of recpoints container") ;
128 case AliQualAss::kTRACKSEGMENTS:
129 AliInfo("Processing Track Segments QA: not existing anymore") ;
130 // TTree * ts = dynamic_cast<TTree *>(data) ;
132 // MakeTrackSegments(ts) ;
134 // AliError("Wrong type of track segments container") ;
137 case AliQualAss::kRECPARTICLES:
138 AliInfo("Processing RecParticles QA: not existing anymore") ;
139 // TTree * recpar = dynamic_cast<TTree *>(data) ;
141 // MakeRecParticles(recpar) ;
143 // AliError("Wrong type of recparticles container") ;
146 case AliQualAss::kESDS:
147 AliInfo("Processing ESDs QA") ;
148 AliESDEvent * esd = dynamic_cast<AliESDEvent *>(data) ;
152 AliError("Wrong type of esd container") ;
157 //____________________________________________________________________________
158 void AliQualAssDataMaker::Finish(AliQualAss::TASKINDEX task) const
160 // write to the output File
163 TDirectory * subDir = 0x0 ;
166 // case AliQualAss::kHITS:
167 subDir = fDetectorDir->GetDirectory(AliQualAss::GetTaskName(task)) ;
170 // case AliQualAss::kSDIGITS:
171 // subDir = fDetectorDir->GetDirectory("SDigits") ;
174 // case AliQualAss::kDIGITS:
175 // subDir = fDetectorDir->GetDirectory("Digits") ;
178 // case AliQualAss::kRECPOINTS:
179 // subDir = fDetectorDir->GetDirectory("RecPoints") ;
182 // case AliQualAss::kTRACKSEGMENTS:
183 // subDir = fDetectorDir->GetDirectory("TrackSegments") ;
186 // case AliQualAss::kRECPARTICLES:
187 // subDir = fDetectorDir->GetDirectory("RecParticles") ;
190 // case AliQualAss::kESDS:
191 // subDir = fDetectorDir->GetDirectory("ESDs") ;
197 //____________________________________________________________________________
198 TList * AliQualAssDataMaker::Init(AliQualAss::TASKINDEX task)
200 // general intialisation
201 TDirectory * subDir = 0x0 ;
204 case AliQualAss::kRAWS:
205 subDir = fDetectorDir->GetDirectory("Raws") ;
207 subDir = fDetectorDir->mkdir("Raws") ;
209 fRawsQAList = new TList() ;
214 case AliQualAss::kHITS:
215 subDir = fDetectorDir->GetDirectory("Hits") ;
217 subDir = fDetectorDir->mkdir("Hits") ;
219 fHitsQAList = new TList() ;
224 case AliQualAss::kSDIGITS:
225 subDir = fDetectorDir->GetDirectory("SDigits") ;
227 subDir = fDetectorDir->mkdir("SDigits") ;
229 fSDigitsQAList = new TList() ;
231 return fSDigitsQAList ;
234 case AliQualAss::kDIGITS:
235 subDir = fDetectorDir->GetDirectory("Digits") ;
237 subDir = fDetectorDir->mkdir("Digits") ;
239 fDigitsQAList = new TList();
241 return fDigitsQAList ;
244 case AliQualAss::kRECPOINTS:
245 subDir = fDetectorDir->GetDirectory("RecPoints") ;
247 subDir = fDetectorDir->mkdir("RecPoints") ;
249 fRecPointsQAList = new TList ;
251 return fRecPointsQAList ;
254 case AliQualAss::kTRACKSEGMENTS:
255 // subDir = fDetectorDir->GetDirectory("TrackSegments") ;
257 // subDir = fDetectorDir->mkdir("TrackSegments") ;
259 // InitTrackSegments() ;
262 case AliQualAss::kRECPARTICLES:
263 // subDir = fDetectorDir->GetDirectory("RecParticles") ;
265 // subDir = fDetectorDir->mkdir("RecParticles") ;
267 // InitRecParticles() ;
270 case AliQualAss::kESDS:
271 subDir = fDetectorDir->GetDirectory("ESDs") ;
273 subDir = fDetectorDir->mkdir("ESDs") ;
275 fESDsQAList = new TList() ;
277 return fRecPointsQAList ;