Giter Site home page Giter Site logo

strela's People

Contributors

musinsky avatar

Stargazers

 avatar

Watchers

 avatar  avatar

strela's Issues

notes

// 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.

TQDC counters

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);
}

blocksize

const size_t bufSize = 4096; // 4096 is blocksize in bytes (blockdev --getbsz /dev/sda1)

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.