/************************************************************************** * 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. * **************************************************************************/ // // xx // xx // xx // xx // xx // // Xianguo Lu // lu@physi.uni-heidelberg.de // Xianguo.Lu@cern.ch // // #include "THnBase.h" #include "THn.h" #include "TCollection.h" #include "AliLog.h" #include "AliTRDdEdxBaseUtils.h" #include "AliTRDdEdxCalibHistArray.h" ClassImp(AliTRDdEdxCalibHistArray); AliTRDdEdxCalibHistArray::AliTRDdEdxCalibHistArray(const Bool_t kNoInv): TObjArray(kNoInv ? 4: 8) { // //constructor // SetName(GetArrayName()); SetOwner(kTRUE); const Int_t nbin[2]={AliTRDdEdxBaseUtils::NTRDtimebin(), 200}; const Double_t xmin[2]={0, 0.01}; const Double_t xmax[2]={static_cast(nbin[0]), 10}; const TString aname[2]={"globalTimeBin", "trdqovertpc"}; const TString atitle[2]={"det * AliTRDseedV1::kNtb + itb", "TRD-Cluster-Q / TPC-Signal"}; for(Int_t iter=0; iterGetAxis(iaxis); xi->SetName(aname[iaxis]); xi->SetTitle(atitle[iaxis]); //only log for y-axis if(iaxis==1){ AliTRDdEdxBaseUtils::BinLogX(xi); } } AddAt(hi, iter); } } AliTRDdEdxCalibHistArray::AliTRDdEdxCalibHistArray(const AliTRDdEdxCalibHistArray &obj): TObjArray(obj) { // //copy constructor // } AliTRDdEdxCalibHistArray & AliTRDdEdxCalibHistArray::operator=(const AliTRDdEdxCalibHistArray &obj) { // //assignment operator // if(&obj == this) return *this; TObjArray::operator=(obj); return *this; } Long64_t AliTRDdEdxCalibHistArray::Merge(const TCollection* list) { // // Merge list of objects (needed by PROOF) // if(!list) return 0; if(list->IsEmpty()) return 1; TIterator* iter = list->MakeIterator(); TObject* obj = 0; Int_t count=0; while((obj = iter->Next()) != 0) { AliTRDdEdxCalibHistArray * entry = dynamic_cast(obj); if (entry == 0) continue; if(GetSize()!= entry->GetSize()){ AliFatal(Form("GetSize()!= entry->GetSize() %d %d\n", GetSize(), entry->GetSize())); } for(Int_t ii=0; iiAt(ii); h0->Add(h1); } count++; } return count; }