From: loizides Date: Tue, 11 Jun 2002 10:52:37 +0000 (+0000) Subject: MakePileup moved to programs directory X-Git-Url: http://git.uio.no/git/?a=commitdiff_plain;h=21559a0572e0c7bf4e0dc498f0fd50ebafc7a2fa;p=u%2Fmrichter%2FAliRoot.git MakePileup moved to programs directory --- diff --git a/HLT/misc/MakePileup.cxx b/HLT/misc/MakePileup.cxx deleted file mode 100644 index 0e1694f1fc3..00000000000 --- a/HLT/misc/MakePileup.cxx +++ /dev/null @@ -1,248 +0,0 @@ -#ifndef __CINT__ -#include "AliL3FileHandler.h" -#include "AliL3DigitData.h" -#include "AliL3Transform.h" -#include "MakePileup.h" -#include -#include - -void QSort(AliL3DigitData **a,Int_t first,Int_t last); -Int_t CompareDigits(AliL3DigitData *a,AliL3DigitData *b); -#endif - -void MakePileup(Int_t triggerevent) -{ - Int_t srow[2] = {0,175}; - UInt_t size; - const Int_t NEvents = 25; - //Int_t Offset[25] = {0,10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200,210,220,230,240}; - //Int_t Offset[25] = {0,20,40,60,80,100,120,140,160,180,200,220,240,-20,-40,-60,-80,-100,-120,-140,-160,-180,-200,-220,-240}; - Int_t Offset[25] = {30,60,90,120,150,180,210,240,270,300,330,360,-30,-60,-90,-120,-150,-180,-210,-240,-270,-300,-330,-360,-390}; - Offset[triggerevent]=0; - AliL3FileHandler *hand[NEvents]; - AliL3DigitRowData *data[NEvents]; - AliL3DigitData *rowData[NEvents]; - AliL3DigitData *test; - Char_t Carry[255]; - //Int_t event = 0; - Int_t DigitsTot = 0; - Int_t MeVDigit; - Int_t DigitsPerRow = 0; - //AliL3DigitRowData *NData; - Byte_t *NData; - Int_t tot_dig=0; - - AliL3Transform *transform = new AliL3Transform(); - const Int_t maxdigits=50000; - AliL3DigitData *temp[maxdigits]; - AliL3DigitData *temp2[maxdigits]; - - - for(Int_t slice=0 ; slice<36 ; slice++){ - for(Int_t event = 0; event < NEvents ; event++){ - hand[event] = new AliL3FileHandler(); - sprintf(Carry,"/prog/alice/data/Rawdata/1_patch/pp/event_%d/digits_%d_0.raw",event,slice); - if(!hand[event]->SetBinaryInput(Carry)) - cerr<<" Error opening file :"<Init(slice,0,srow); - data[event] = hand[event]->CompBinary2Memory(size); - cout<<" done"<CloseBinaryInput(); - } - DigitsTot=0; - Int_t sign = slice < 18 ? -1 : 1; - for(Int_t row = 0 ; row < 176 ; row++){ - - for(Int_t event = 0; event < NEvents ; event++){ - rowData[event] = (AliL3DigitData *)data[event]->fDigitData; - for(UInt_t dig=0; digfNDigit; dig++) - { - Int_t time = rowData[event][dig].fTime + sign*Offset[event]; - if(time < transform->GetNTimeBins() && time >= 0) - DigitsTot++; - } - //DigitsTot += data[event]->fNDigit; - hand[event]->UpdateRowPointer(data[event]); - } - - } - //cout << "Try to allocate : " << DigitsTot << " Digits in row : " << row << endl; - - - //NData = (AliL3DigitRowData*) malloc(AllDigitsSize);// Allocate ! - - Int_t AllDigitsSize = sizeof(AliL3DigitData) * DigitsTot + sizeof(AliL3DigitRowData) * 176; - NData = new Byte_t[AllDigitsSize]; - memset(NData,0,AllDigitsSize); - AliL3DigitRowData *AllRowData = (AliL3DigitRowData*)NData; - - //cout << "Allocated " << endl; - - //Reset the data pointers, because they changed when doing UpdateRowPointer. - for(Int_t event=0; eventGetDataPointer(size); - - tot_dig=0; - for(Int_t row = 0 ; row < 176 ; row++){ - DigitsPerRow = 0; - for(Int_t event = 0; event < NEvents ; event++){ - rowData[event] = (AliL3DigitData *)data[event]->fDigitData; - for(UInt_t dig=0; digfNDigit; dig++) - { - Int_t time = rowData[event][dig].fTime + sign*Offset[event]; - if(time < transform->GetNTimeBins() && time >= 0) - DigitsPerRow++; - } - //DigitsPerRow += data[event]->fNDigit;// + DigitsPerRow; - } - //tot_dig += DigitsPerRow; - //cout << "Found : " << DigitsPerRow << " in all Events, Row :" << row << endl; - - /* - AllRowData->fRow = row; - AllRowData->fNDigit = DigitsPerRow; - test = (AliL3DigitData *) AllRowData->fDigitData; - */ - - //cout << "Got Row Pointer " << endl; - MeVDigit = 0; - for(Int_t event = 0; event < NEvents ; event++){ - rowData[event] = (AliL3DigitData *)data[event]->fDigitData; - for(UInt_t digit = 0; digit < data[event]->fNDigit ; digit++){ - - //Copy the digits to a temporary storage, because we have to sort them before storing them : - Int_t time = rowData[event][digit].fTime + sign*Offset[event]; - if(time >= transform->GetNTimeBins() || time < 0) - continue; - - temp[MeVDigit] = &rowData[event][digit]; - temp[MeVDigit]->fTime = temp[MeVDigit]->fTime + sign*Offset[event]; - - //cout << MeVDigit << " : " << digit << endl; - MeVDigit++; - } - hand[event]->UpdateRowPointer(data[event]); - } - //Sort the digits: - QSort(temp,0,MeVDigit); - int final_count=0; - - //Now, loop and check for overlaps: - for(Int_t c=0; c0 && temp[c]->fTime == temp[c-1]->fTime && temp[c]->fPad == temp[c-1]->fPad) - {//this one is overlapping with the previous one: - temp2[final_count-1]->fCharge += temp[c+1]->fCharge; - if(temp2[final_count-1]->fCharge>=1024) - temp2[final_count-1]->fCharge=1023;//Saturation - } - else - { - temp2[final_count] = temp[c]; - final_count++; - } - } - tot_dig+=final_count; - AllRowData->fRow = row; - AllRowData->fNDigit = final_count; - test = (AliL3DigitData *) AllRowData->fDigitData; - - for(Int_t c=0; cfCharge; - test[c].fPad = temp2[c]->fPad; - test[c].fTime = temp2[c]->fTime; - if(c>0 && test[c].fTime == test[c-1].fTime && test[c].fPad == test[c-1].fPad) - cout<<"Overlap at row "< MeVDigit) - cerr<<"Error; final_count "<DigitsTot) - cerr<SetBinaryOutput(Carry); - cout << "Open File: " << Carry << " to wite PileUp Event" << endl; - Out->Memory2CompBinary(176,AllRowData); - Out->CloseBinaryOutput(); - delete Out; - delete [] NData; - } - - delete transform; -} - -void QSort(AliL3DigitData **a,Int_t first,Int_t last) -{ - //General sorting routine. only sorting the pointers. - - AliL3DigitData *tmp; - int i; - int j; - - while (last - first > 1) { - i = first; - j = last; - for (;;) { - while (++i < last && CompareDigits(a[i], a[first]) < 0) - ; - while (--j > first && CompareDigits(a[j], a[first]) > 0) - ; - if (i >= j) - break; - - tmp = a[i]; - a[i] = a[j]; - a[j] = tmp; - } - if (j == first) { - ++first; - continue; - } - tmp = a[first]; - a[first] = a[j]; - a[j] = tmp; - if (j - first < last - (j + 1)) { - QSort(a, first, j); - first = j + 1; // QSort(j + 1, last); - } else { - QSort(a, j + 1, last); - last = j; // QSort(first, j); - } - } - - -} - -Int_t CompareDigits(AliL3DigitData *a,AliL3DigitData *b) -{ - - if(a->fPad==b->fPad && a->fTime == b->fTime) return 0; - - if(a->fPadfPad) return -1; - if(a->fPad==b->fPad && a->fTimefTime) return -1; - - return 1; - -} diff --git a/HLT/misc/MakePileup.h b/HLT/misc/MakePileup.h deleted file mode 100644 index 03e04195953..00000000000 --- a/HLT/misc/MakePileup.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef Read -#define Read - -void MakePileup(Int_t triggerevent); - -#endif