From: vicinanz Date: Wed, 3 Oct 2001 14:46:30 +0000 (+0000) Subject: Major upgrades for AliTOFMerger X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=commitdiff_plain;h=bd0c63ae77a5ebd2c0764f08a54dbc6a44da7ed3 Major upgrades for AliTOFMerger --- diff --git a/TOF/AliTOFMerger.cxx b/TOF/AliTOFMerger.cxx index 14f8c74230f..ec789c67f65 100644 --- a/TOF/AliTOFMerger.cxx +++ b/TOF/AliTOFMerger.cxx @@ -13,7 +13,6 @@ * provided "as is" without express or implied warranty. * **************************************************************************/ - #include #include #include @@ -39,7 +38,8 @@ ClassImp(AliTOFMerger) //___________________________________________ AliTOFMerger::AliTOFMerger() { -// Default constructor +// Default ctor + fNDigits = 0; fEvNrSig = 0; fEvNrBgr = 0; fMerge =kDigitize; @@ -49,7 +49,7 @@ ClassImp(AliTOFMerger) //------------------------------------------------------------------------ AliTOFMerger::~AliTOFMerger() { -// Destructor +// Dtor if(fSDigits) { fSDigits->Delete(); delete fSDigits ; @@ -81,8 +81,103 @@ TFile* AliTOFMerger::InitBgr() //------------------------------------------------------------------------ void AliTOFMerger::Digitise() { +// as in FMD +// keep galice.root for signal and name differently the file for +// background when add! otherwise the track info for signal will be lost ! + + #ifdef DEBUG cout<<"ALiTOFMerger::>SDigits2Digits start...\n"; #endif + + AliTOF* TOF = (AliTOF *) gAlice->GetDetector("TOF") ; + + + TFile *f1 =0; + TTree *TK = gAlice->TreeK(); + if (TK) f1 = TK->GetCurrentFile(); + + gAlice->GetEvent(fEvNrSig) ; + + if(gAlice->TreeD() == 0) + gAlice->MakeTree("D") ; + gAlice->TreeD()->Reset(); + + // read and write digits for signal + ReadWriteDigit(fEvNrSig); + + if(fMerge){ + // bgr file + fBgrFile->cd(); + // gAlice->TreeS()->Reset(); + gAlice = (AliRun*)fBgrFile->Get("gAlice"); + ReadWriteDigit(fEvNrBgr); + } //if merge + + + f1->cd(); + + //Make branch for digits + TOF->MakeBranch("D"); + + gAlice->TreeD()->Reset(); + gAlice->TreeD()->Fill(); + + fDigits = TOF->Digits(); + + gAlice->TreeD()->Write(0,TObject::kOverwrite) ; + + gAlice->ResetDigits(); + +} + +//--------------------------------------------------------------------- + +void AliTOFMerger::ReadWriteDigit(Int_t iEvNum) +{ +// +// Read Sdigits from the current file and write them in the TreeD +// + AliTOFdigit* tofsdigit; + + AliTOF * tofinfile = (AliTOF *) gAlice->GetDetector("TOF") ; + + gAlice->GetEvent(iEvNum) ; + if(gAlice->TreeS()==0) { + cout<<" TreeS==0 -> return"<TreeS()<ResetDigits(); + gAlice->TreeS()->GetEvent(iEvNum); + TClonesArray * TOFdigits = tofinfile->SDigits(); + + ndig=TOFdigits->GetEntries(); + + for (k=0; kUncheckedAt(k); + + tracks[0] = tofsdigit->GetTrack(0); + tracks[1] = tofsdigit->GetTrack(1); + tracks[2] = tofsdigit->GetTrack(2); + + vol[0] = tofsdigit->GetSector(); + vol[1] = tofsdigit->GetPlate(); + vol[2] = tofsdigit->GetPadx(); + vol[3] = tofsdigit->GetPadz(); + vol[4] = tofsdigit->GetStrip(); + + digit[0] = tofsdigit->GetTdc(); + digit[1] = tofsdigit->GetAdc(); + + new ((*fDigits)[fNDigits++]) AliTOFdigit(tracks, vol, digit); + } // end loop on sdigits in the current file } + + + diff --git a/TOF/AliTOFMerger.h b/TOF/AliTOFMerger.h index 5114908a45f..7649cdbe5af 100644 --- a/TOF/AliTOFMerger.h +++ b/TOF/AliTOFMerger.h @@ -7,6 +7,7 @@ // #include "AliMergable.h" #include "TRandom.h" #include "AliDetector.h" +#include "AliTOF.h" typedef enum {kDigitize=0, kMerge = 1} MergeMode_t; @@ -22,10 +23,9 @@ class AliTOFMerger { // Do the main work void Digitise() ; - // Int_t PutEdgeEffect(Int_t charge){return (Int_t)(gRandom->Gaus(charge,500));} TClonesArray *SDigits() const {return fSDigits;} - // void ReadDigit(Int_t a[][30][150], Int_t); + void ReadWriteDigit(Int_t); // Setters -> Later Communication with gAlice void SetSignalEventNumber(Int_t i) {fEvNrSig = i;} @@ -34,7 +34,6 @@ class AliTOFMerger { void SetSignalFileName(char* file) {fFnSig = file;} void SetMode(MergeMode_t mode) {fMerge = mode;} - enum {kBgTag = -1}; private: @@ -45,6 +44,7 @@ class AliTOFMerger { private: TClonesArray *fDigits; // ! array with digits TClonesArray *fSDigits ; // List of summable digits + Int_t fNDigits; // number of digits Int_t fEvNrSig; // signal event number Int_t fEvNrBgr; // background event number MergeMode_t fMerge; // merging type kDigitize, kMerge @@ -56,5 +56,3 @@ class AliTOFMerger { }; #endif - -