X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=ITS%2FAliITSOnlineSPDscanSingle.cxx;h=b21e448f00331ba635a926898f6186d1f6c024c6;hb=81c6b40c0c2d44c863d828eebf097ada6cbc1745;hp=9a360155f25b4109bc746a7db46eacf0332a2348;hpb=53ae21ce07f10010cde0566193cad2ed80bda09a;p=u%2Fmrichter%2FAliRoot.git diff --git a/ITS/AliITSOnlineSPDscanSingle.cxx b/ITS/AliITSOnlineSPDscanSingle.cxx index 9a360155f25..b21e448f003 100644 --- a/ITS/AliITSOnlineSPDscanSingle.cxx +++ b/ITS/AliITSOnlineSPDscanSingle.cxx @@ -1,72 +1,114 @@ +/************************************************************************** + * Copyright(c) 2007-2009, 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. * + **************************************************************************/ + +/* $Id$ */ + //////////////////////////////////////////////////////////// // Author: Henrik Tydesjo // // Interface class to the containers of an online scan // // with only one step. // //////////////////////////////////////////////////////////// + #include #include "AliITSOnlineSPDscanSingle.h" #include "AliITSOnlineSPDscanInfo.h" -AliITSOnlineSPDscanSingle::AliITSOnlineSPDscanSingle(const Char_t *fileName) { +AliITSOnlineSPDscanSingle::AliITSOnlineSPDscanSingle(const Char_t *fileName, Bool_t readFromGridFile) { // constructor fFileName=fileName; + fModified=kFALSE; + fInfoModified=kFALSE; // look for a previously saved info object // (if file not found create a new one and return, else read) - FILE* fp0 = fopen(fFileName.Data(), "r"); - if (fp0 == NULL) { + + Bool_t bRead = readFromGridFile; + + if (!bRead) { + FILE* fp0 = fopen(fFileName.Data(), "r"); + if (fp0 != NULL) { + bRead=kTRUE; + fclose(fp0); + } + } + + if (bRead) { // open file for reading + fFile = TFile::Open(fFileName.Data(), "READ"); + if (fFile==NULL) { // grid file not found, create new local default file + printf("ERROR: AliITSOnlineSPDscan: File %s not found! Creating 'test999.root' file instead\n",fFileName.Data()); + // create default empty file: + fFileName = "test999.root"; + fScanInfo = new AliITSOnlineSPDscanInfo(); + fInfoModified=kTRUE; + fFile = new TFile(fFileName.Data(), "RECREATE"); + fWrite=kTRUE; + } + else { // read from file (grid or local) + fWrite=kFALSE; + fFile->GetObject("AliITSOnlineSPDscanInfo", fScanInfo); + } + } + else { // create new local file fScanInfo = new AliITSOnlineSPDscanInfo(); + fInfoModified=kTRUE; fFile = new TFile(fFileName.Data(), "RECREATE"); fWrite=kTRUE; } - else { - fclose(fp0); - fFile = new TFile(fFileName.Data(), "READ"); - fWrite=kFALSE; - fFile->GetObject("AliITSOnlineSPDscanInfo", fScanInfo); - } + Init(); } AliITSOnlineSPDscanSingle::~AliITSOnlineSPDscanSingle() {} // call the corresponding methods in SPDscan with nsi=0 ****************** -void AliITSOnlineSPDscanSingle::SetTriggers(UInt_t val) +void AliITSOnlineSPDscanSingle::SetTriggers(UInt_t val) {AliITSOnlineSPDscan::SetTriggers(0,val);} -void AliITSOnlineSPDscanSingle::SetHits(UInt_t hs, UInt_t chipi, UInt_t coli, UInt_t rowi, UInt_t val) +void AliITSOnlineSPDscanSingle::SetHits(UInt_t hs, UInt_t chipi, UInt_t coli, UInt_t rowi, UInt_t val) {AliITSOnlineSPDscan::SetHits(0,hs,chipi,coli,rowi,val);} -void AliITSOnlineSPDscanSingle::IncrementTriggers() +void AliITSOnlineSPDscanSingle::IncrementTriggers() {AliITSOnlineSPDscan::IncrementTriggers(0);} -void AliITSOnlineSPDscanSingle::IncrementHits(UInt_t hs, UInt_t chipi, UInt_t coli, UInt_t rowi) +void AliITSOnlineSPDscanSingle::IncrementHits(UInt_t hs, UInt_t chipi, UInt_t coli, UInt_t rowi) {AliITSOnlineSPDscan::IncrementHits(0,hs,chipi,coli,rowi);} -void AliITSOnlineSPDscanSingle::SetHitEvents(UInt_t hs, UInt_t chipi, UInt_t val) +void AliITSOnlineSPDscanSingle::SetHitEvents(UInt_t hs, UInt_t chipi, UInt_t val) {AliITSOnlineSPDscan::SetHitEvents(0,hs,chipi,val);} -void AliITSOnlineSPDscanSingle::SetHitEventsTot(UInt_t hs, UInt_t val) +void AliITSOnlineSPDscanSingle::SetHitEventsTot(UInt_t hs, UInt_t val) {AliITSOnlineSPDscan::SetHitEventsTot(0,hs,val);} -void AliITSOnlineSPDscanSingle::IncrementHitEvents(UInt_t hs, UInt_t chipi) +void AliITSOnlineSPDscanSingle::IncrementHitEvents(UInt_t hs, UInt_t chipi) {AliITSOnlineSPDscan::IncrementHitEvents(0,hs,chipi);} -void AliITSOnlineSPDscanSingle::IncrementHitEventsTot(UInt_t hs) +void AliITSOnlineSPDscanSingle::IncrementHitEventsTot(UInt_t hs) {AliITSOnlineSPDscan::IncrementHitEventsTot(0,hs);} -UInt_t AliITSOnlineSPDscanSingle::GetTriggers() +UInt_t AliITSOnlineSPDscanSingle::GetTriggers() const {return AliITSOnlineSPDscan::GetTriggers(0);} -UInt_t AliITSOnlineSPDscanSingle::GetHits(UInt_t hs, UInt_t chipi, UInt_t coli, UInt_t rowi) +UInt_t AliITSOnlineSPDscanSingle::GetHits(UInt_t hs, UInt_t chipi, UInt_t coli, UInt_t rowi) {return AliITSOnlineSPDscan::GetHits(0,hs,chipi,coli,rowi);} -Float_t AliITSOnlineSPDscanSingle::GetHitsEfficiency(UInt_t hs, UInt_t chipi, UInt_t coli, UInt_t rowi) +Float_t AliITSOnlineSPDscanSingle::GetHitsEfficiency(UInt_t hs, UInt_t chipi, UInt_t coli, UInt_t rowi) {return AliITSOnlineSPDscan::GetHitsEfficiency(0,hs,chipi,coli,rowi);} -Float_t AliITSOnlineSPDscanSingle::GetHitsEfficiencyError(UInt_t hs, UInt_t chipi, UInt_t coli, UInt_t rowi) +Float_t AliITSOnlineSPDscanSingle::GetHitsEfficiencyError(UInt_t hs, UInt_t chipi, UInt_t coli, UInt_t rowi) {return AliITSOnlineSPDscan::GetHitsEfficiencyError(0,hs,chipi,coli,rowi);} -UInt_t AliITSOnlineSPDscanSingle::GetHitEvents(UInt_t hs, UInt_t chipi) +UInt_t AliITSOnlineSPDscanSingle::GetHitEvents(UInt_t hs, UInt_t chipi) {return AliITSOnlineSPDscan::GetHitEvents(0,hs,chipi);} -UInt_t AliITSOnlineSPDscanSingle::GetHitEventsTot(UInt_t hs) +UInt_t AliITSOnlineSPDscanSingle::GetHitEventsTot(UInt_t hs) {return AliITSOnlineSPDscan::GetHitEventsTot(0,hs);} -Float_t AliITSOnlineSPDscanSingle::GetHitEventsEfficiency(UInt_t hs, UInt_t chipi) +Float_t AliITSOnlineSPDscanSingle::GetHitEventsEfficiency(UInt_t hs, UInt_t chipi) {return AliITSOnlineSPDscan::GetHitEventsEfficiency(0,hs,chipi);} -Float_t AliITSOnlineSPDscanSingle::GetHitEventsTotEfficiency(UInt_t hs) +Float_t AliITSOnlineSPDscanSingle::GetHitEventsTotEfficiency(UInt_t hs) {return AliITSOnlineSPDscan::GetHitEventsTotEfficiency(0,hs);} -Float_t AliITSOnlineSPDscanSingle::GetHitEventsEfficiencyError(UInt_t hs, UInt_t chipi) +Float_t AliITSOnlineSPDscanSingle::GetHitEventsEfficiencyError(UInt_t hs, UInt_t chipi) {return AliITSOnlineSPDscan::GetHitEventsEfficiencyError(0,hs,chipi);} -Float_t AliITSOnlineSPDscanSingle::GetHitEventsTotEfficiencyError(UInt_t hs) +Float_t AliITSOnlineSPDscanSingle::GetHitEventsTotEfficiencyError(UInt_t hs) {return AliITSOnlineSPDscan::GetHitEventsTotEfficiencyError(0,hs);} -Float_t AliITSOnlineSPDscanSingle::GetAverageMultiplicity(UInt_t hs, UInt_t chipi) +Float_t AliITSOnlineSPDscanSingle::GetAverageMultiplicity(UInt_t hs, UInt_t chipi) {return AliITSOnlineSPDscan::GetAverageMultiplicity(0,hs,chipi);} -Float_t AliITSOnlineSPDscanSingle::GetAverageMultiplicityTot(UInt_t hs) +Float_t AliITSOnlineSPDscanSingle::GetAverageMultiplicityTot(UInt_t hs) {return AliITSOnlineSPDscan::GetAverageMultiplicityTot(0,hs);}