musinsky / strela Goto Github PK
View Code? Open in Web Editor NEWSoftware for STRELA experiment
Home Page: http://strela.jinr.ru
Software for STRELA experiment
Home Page: http://strela.jinr.ru
// 2008-10-08
Teraz pre kazdu dotycnicu vzdialenosti usporiadavam a postupne preverujem, kazdy hit. Mozno lepsie bude ak ich nebudem usporiadavat, ale jednoducho ak vzdialenost medzi dotycnicou a kruznicou bude mensia ako minimalna (napr. 10x rozlisenia), tak tie hity su OK a pracujem dalej s nimi.
Aj ked v principe to je to iste lebo zacinam s max. poctom hitov, takze ak dam slabe kriterium na chi2 tak tam budu vsetky hity ...
// 2010-12-20
Ako trackovat ak je multihit, track iba pre prvy hit alebo ako inak ? Su multi-hity vzdy usporiadane ?
// 2020-01-30
root-project/root@1bd62bb
root-project/root@fd84c1f
root-project/root@ff276ad
// 2022-02-23
pravdepodobne niekde v tomto TWireCham::AnalyzeEntry
mieste pridat aspon poznamku (staci asi len linka na https://doi.org/10.1016/0168-9002(90)90128-S) o viac sofistikovanej metode ziskanie pozicie.
TVMERawData_cnt.h
private:
Int_t cnt_ch;
Int_t cnt;
TVMERawData_cnt.cxx
//______________________________________________________________________________
void TVMERawData::DecodeTQCHI()
{
// 0x0 TQDC input counters high bits 31:16
Int_t chi = fDataWord & 0xFFFF; // (bits 0 - 15)
Int_t ch = (fDataWord >> 19) & 0x1F; // (bits 19 - 23)
if (fModule) cnt_ch = fModule->GetFirstChannel() + ch;
else cnt_ch = ch;
cnt = 0;
// data counters (0x0 and 0x1) only between SHDR_END and STRL_END
//
if (((fDataWord >> 19) & 0x1FF) == 0x1FF) // (bits 19 - 27)
// => counter is time of last burst (no channel)
// => time = (time & 0x0000FFFF) | (chi << 16);
cnt = (cnt & 0x0000FFFF) | (chi << 16);
else
// => counters (by channel)
// => count[ch] = (count[h] & 0x0000FFFF) | (chi << 16);
cnt = (cnt & 0x0000FFFF) | (chi << 16);
// data counters (0x0 and 0x1) only between SHDR_END and STRL_END
//
// if (((fDataWord >> 19) & 0x1FF) == 0x1FF) // (bits 19 - 27)
// => counter is time of last burst (no channel)
// => time = (time & 0x0000FFFF) | (chi << 16);
// else
// => counters (by channel)
// => count[ch] = (count[h] & 0x0000FFFF) | (chi << 16);
if (!PrintDataType(3)) return;
printf("TQCHI chi: %6d, ch: %d\n", chi, ch);
}
//______________________________________________________________________________
void TVMERawData::DecodeTQCLO()
{
// 0x1 TQDC input counters low bits 15:0
Int_t clo = fDataWord & 0xFFFF; // (bits 0 - 15)
Int_t ch = (fDataWord >> 19) & 0x1F; // (bits 19 - 23)
Bool_t burst = kFALSE;
if (ch == 31) burst = kTRUE;
if (fModule) ch = fModule->GetFirstChannel() + ch;
if (cnt_ch != ch) Printf("BAD CHANNEL");
if (((fDataWord >> 19) & 0x1FF) == 0x1FF) // (bits 19 - 27)
cnt = (cnt & 0xFFFF0000) | clo;
else
cnt = (cnt & 0xFFFF0000) | clo;
if (ch == 0) Printf("####### COUNTERS ####### ");
printf("cnt_ch = %02d \t cnt = %d", cnt_ch, cnt);
if (burst) printf(" <= last burst\n");
else printf("\n");
// data counters (0x0 and 0x1) only between SHDR_END and STRL_END
//
// if (((fDataWord >> 19) & 0x1FF) == 0x1FF) // (bits 19 - 27)
// => counter is time of last burst (no channel)
// => time = (time & 0xFFFF0000) | clo;
// else
// => counters (by channel)
// => count[ch] = (count[h] & 0xFFFF0000) | clo;
if (!PrintDataType(3)) return;
printf("TQCLO clo: %6d, ch: %d\n", clo, ch);
}
Line 166 in c1d9774
Pre 4K disky je optimalna velkost 4096, ale preverit efektivnost (rychlost) pre SSD disky, kde je velksot 512 bytes. V pripade potreby v konstruktore check-nut velkost blocksize.
131072 bytes =128 kB !!! best size !!! https://eklitzke.org/efficient-file-copying-on-linux, ale naj je spustit rychly benchmarks a najst optimalnu hodnotu bs
man blockdev
--getbsz
Print blocksize in bytes. This size does not describe device topology. It's size used internally by kernel and it maybe modified (for example) by filesystem driver on mount.
--getpbsz
Get physical block (sector) size.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.