X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=EMCAL%2FAliEMCALSDigitizer.cxx;h=56dd5118cd7fbec7c30c3c4eb34e2d1e25697681;hb=f611ea93d087b40484ab02017893fc8f1b31f92c;hp=ea2decf5d8e9a45f7e47a96dbd0bb94d03544bdc;hpb=fdebddebb521c2f316af46d2034286ce5100c285;p=u%2Fmrichter%2FAliRoot.git diff --git a/EMCAL/AliEMCALSDigitizer.cxx b/EMCAL/AliEMCALSDigitizer.cxx index ea2decf5d8e..56dd5118cd7 100644 --- a/EMCAL/AliEMCALSDigitizer.cxx +++ b/EMCAL/AliEMCALSDigitizer.cxx @@ -67,16 +67,18 @@ ClassImp(AliEMCALSDigitizer) AliEMCALSDigitizer::AliEMCALSDigitizer():TTask("","") { // ctor - InitParameters() ; + fFirstEvent = fLastEvent = 0 ; fDefaultInit = kTRUE ; } //____________________________________________________________________________ -AliEMCALSDigitizer::AliEMCALSDigitizer(const char * alirunFileName, const char * eventFolderName): - TTask("EMCAL"+AliConfig::fgkSDigitizerTaskName, alirunFileName), +AliEMCALSDigitizer::AliEMCALSDigitizer(const char * alirunFileName, + const char * eventFolderName): + TTask("EMCAL"+AliConfig::Instance()->GetSDigitizerTaskName(), alirunFileName), fEventFolderName(eventFolderName) { // ctor + fFirstEvent = fLastEvent = 0 ; // runs one event by defaut Init(); InitParameters() ; fDefaultInit = kFALSE ; @@ -87,6 +89,8 @@ AliEMCALSDigitizer::AliEMCALSDigitizer(const char * alirunFileName, const char * AliEMCALSDigitizer::AliEMCALSDigitizer(const AliEMCALSDigitizer & sd) : TTask(sd) { //cpy ctor + fFirstEvent = sd.fFirstEvent ; + fLastEvent = sd.fLastEvent ; fA = sd.fA ; fB = sd.fB ; fECPrimThreshold = sd.fECPrimThreshold ; @@ -97,6 +101,14 @@ AliEMCALSDigitizer::AliEMCALSDigitizer(const AliEMCALSDigitizer & sd) : TTask(sd } +//____________________________________________________________________________ +AliEMCALSDigitizer::~AliEMCALSDigitizer() { + // dtor + AliEMCALGetter * gime = + AliEMCALGetter::Instance(GetTitle(), fEventFolderName.Data()); + gime->EmcalLoader()->CleanSDigitizer(); +} + //____________________________________________________________________________ void AliEMCALSDigitizer::Init(){ // Initialization: open root-file, allocate arrays for hits and sdigits, @@ -135,14 +147,13 @@ void AliEMCALSDigitizer::InitParameters() AliEMCALGetter * gime = AliEMCALGetter::Instance() ; const AliEMCALGeometry * geom = gime->EMCALGeometry() ; if (geom->GetSampling() == 0.) { - printf("InitParameters: Sampling factor not set !") ; - abort() ; + Fatal("InitParameters", "Sampling factor not set !") ; } - else - printf("InitParameters: Sampling factor set to %f\n", geom->GetSampling()) ; +// else +// Info("InitParameters", "Sampling factor set to %f", geom->GetSampling()) ; // this threshold corresponds approximately to 100 MeV - fECPrimThreshold = 100E-3 / ( geom->GetSampling() * geom->GetNECLayers()) * geom->GetNECLayers() ; + fECPrimThreshold = 100E-3; } //____________________________________________________________________________ @@ -157,7 +168,7 @@ void AliEMCALSDigitizer::Exec(Option_t *option) if(strstr(option,"tim")) gBenchmark->Start("EMCALSDigitizer"); - AliEMCALGetter * gime = AliEMCALGetter::Instance() ; + AliEMCALGetter * gime = AliEMCALGetter::Instance(GetTitle()) ; //switch off reloading of this task while getting event if (!fInit) { // to prevent overwrite existing file @@ -165,11 +176,15 @@ void AliEMCALSDigitizer::Exec(Option_t *option) return ; } - Int_t nevents = gime->MaxEvent() ; + if (fLastEvent == -1) + fLastEvent = gime->MaxEvent() - 1 ; + else + fLastEvent = TMath::Min(fFirstEvent, gime->MaxEvent()); // only ine event at the time + Int_t nEvents = fLastEvent - fFirstEvent + 1; + Int_t ievent ; - for(ievent = 0; ievent < nevents; ievent++){ + for (ievent = fFirstEvent; ievent <= fLastEvent; ievent++) { gime->Event(ievent,"H") ; - TTree * treeS = gime->TreeS(); TClonesArray * hits = gime->Hits() ; TClonesArray * sdigits = gime->SDigits() ; @@ -268,7 +283,7 @@ void AliEMCALSDigitizer::Exec(Option_t *option) if(strstr(option,"tim")){ gBenchmark->Stop("EMCALSDigitizer"); printf("Exec: took %f seconds for SDigitizing %f seconds per event", - gBenchmark->GetCpuTime("EMCALSDigitizer"), gBenchmark->GetCpuTime("EMCALSDigitizer") ) ; + gBenchmark->GetCpuTime("EMCALSDigitizer"), gBenchmark->GetCpuTime("EMCALSDigitizer")/nEvents ) ; } }