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 ---
29 #include <TClonesArray.h>
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) :
51 TString tmp(GetName()) ;
54 fOutput = AliQualAss::GetQADMOutFile() ;
55 fDetectorDirName = GetName() ;
58 //____________________________________________________________________________
59 AliQualAssDataMaker::AliQualAssDataMaker(const AliQualAssDataMaker& qadm) :
60 TNamed(qadm.GetName(), qadm.GetTitle()),
61 fOutput(qadm.fOutput),
62 fDetectorDir(qadm.fDetectorDir)
65 fDetectorDirName = GetName() ;
68 //__________________________________________________________________
69 AliQualAssDataMaker& AliQualAssDataMaker::operator = (const AliQualAssDataMaker& qadm )
72 this->~AliQualAssDataMaker();
73 new(this) AliQualAssDataMaker(qadm);
77 //____________________________________________________________________________
78 void AliQualAssDataMaker::Exec(AliQualAss::TASKINDEX task, TObject * data)
80 // creates the quality assurance data for the various tasks (Hits, SDigits, Digits, ESDs)
82 fDetectorDir = fOutput->GetDirectory(GetDetectorDirName()) ;
84 fDetectorDir = fOutput->mkdir(GetDetectorDirName()) ;
87 case AliQualAss::kHITS:
88 AliInfo("Processing Hits QA") ;
92 case AliQualAss::kSDIGITS:
93 AliInfo("Processing SDigits QA") ;
97 case AliQualAss::kDIGITS:
101 case AliQualAss::kRECPOINTS:
102 AliInfo("Processing RecPoints QA") ;
104 TTree * recpoints = dynamic_cast<TTree *>(data) ;
106 MakeRecPoints(recpoints) ;
108 AliError("Wrong type of recpoints container") ;
112 case AliQualAss::kTRACKSEGMENTS:
113 AliInfo("Processing Track Segments QA: not existing anymore") ;
114 // TTree * ts = dynamic_cast<TTree *>(data) ;
116 // MakeTrackSegments(ts) ;
118 // AliError("Wrong type of track segments container") ;
121 case AliQualAss::kRECPARTICLES:
122 AliInfo("Processing RecParticles QA: not existing anymore") ;
123 // TTree * recpar = dynamic_cast<TTree *>(data) ;
125 // MakeRecParticles(recpar) ;
127 // AliError("Wrong type of recparticles container") ;
130 case AliQualAss::kESDS:
131 AliInfo("Processing ESDs QA") ;
132 AliESDEvent * esd = dynamic_cast<AliESDEvent *>(data) ;
136 AliError("Wrong type of esd container") ;
141 //____________________________________________________________________________
142 void AliQualAssDataMaker::Finish(AliQualAss::TASKINDEX task) const
144 // write to the output File
147 TDirectory * subDir = 0x0 ;
150 // case AliQualAss::kHITS:
151 subDir = fDetectorDir->GetDirectory(AliQualAss::GetTaskName(task)) ;
154 // case AliQualAss::kSDIGITS:
155 // subDir = fDetectorDir->GetDirectory("SDigits") ;
158 // case AliQualAss::kDIGITS:
159 // subDir = fDetectorDir->GetDirectory("Digits") ;
162 // case AliQualAss::kRECPOINTS:
163 // subDir = fDetectorDir->GetDirectory("RecPoints") ;
166 // case AliQualAss::kTRACKSEGMENTS:
167 // subDir = fDetectorDir->GetDirectory("TrackSegments") ;
170 // case AliQualAss::kRECPARTICLES:
171 // subDir = fDetectorDir->GetDirectory("RecParticles") ;
174 // case AliQualAss::kESDS:
175 // subDir = fDetectorDir->GetDirectory("ESDs") ;
181 //____________________________________________________________________________
182 void AliQualAssDataMaker::Init(AliQualAss::TASKINDEX task)
184 // general intialisation
186 TDirectory * subDir = 0x0 ;
189 case AliQualAss::kHITS:
190 subDir = fDetectorDir->GetDirectory("Hits") ;
192 subDir = fDetectorDir->mkdir("Hits") ;
197 case AliQualAss::kSDIGITS:
198 subDir = fDetectorDir->GetDirectory("SDigits") ;
200 subDir = fDetectorDir->mkdir("SDigits") ;
205 case AliQualAss::kDIGITS:
206 subDir = fDetectorDir->GetDirectory("Digits") ;
208 subDir = fDetectorDir->mkdir("Digits") ;
213 case AliQualAss::kRECPOINTS:
214 subDir = fDetectorDir->GetDirectory("RecPoints") ;
216 subDir = fDetectorDir->mkdir("RecPoints") ;
221 case AliQualAss::kTRACKSEGMENTS:
222 subDir = fDetectorDir->GetDirectory("TrackSegments") ;
224 subDir = fDetectorDir->mkdir("TrackSegments") ;
226 InitTrackSegments() ;
229 case AliQualAss::kRECPARTICLES:
230 subDir = fDetectorDir->GetDirectory("RecParticles") ;
232 subDir = fDetectorDir->mkdir("RecParticles") ;
237 case AliQualAss::kESDS:
238 subDir = fDetectorDir->GetDirectory("ESDs") ;
240 subDir = fDetectorDir->mkdir("ESDs") ;