14 #include "TClonesArray.h" 
   26   if(!fInstance) cout << 
"NO PndTrkSttHitList: you must fill it BEFORE doing what you are doing!" << endl;
 
   31   if(fInstance) cout << 
"you are instanciating a PndTrkSttHitList, but you already did it, what are you doing?" << endl;
 
   57   int tubeID = ((
PndSttHit*) hit)->GetTubeID();
 
   89   std::map< int , int > ::iterator it;
 
   91   hitmap.insert( std::pair<int , int > (isec, 
hitlist.size() - 1));
 
  105   std::map< int , int > ::iterator it;
 
  109   hitmap.insert( std::pair<int , int > (isec, 
hitlist.size() - 1));
 
  111   hitmap2.insert( std::pair<int , int > (ilay, 
hitlist.size() - 1));
 
  114   hitmap3.insert( std::pair<int , int > (iglo, 
hitlist.size() - 1)); 
 
  126   for(
int ilay = 0; ilay  < 24; ilay++) {
 
  127     cout << 
"LAYER " << ilay << 
": ";
 
  130     std::pair < std::multimap< int, int >::iterator, std::multimap < int, int >::iterator> ret;
 
  131     ret = 
hitmap2.equal_range(ilay);
 
  132     for (std::multimap< int, int >::iterator it = ret.first; it != ret.second; ++it)
 
  133       std::cout << 
' ' << it->second;
 
  140   cout << 
"Layer " << ilay << 
": ";
 
  141   for (
size_t ihit = 0; ihit < listofhits.size(); ihit++) cout << 
" " << (listofhits.at(ihit))->GetHitID();
 
  148   for (
size_t ihit = 0; ihit < listofhits.size(); ihit++) (listofhits.at(ihit))->
Draw(color);
 
  161   std::pair < std::multimap< int, int >::iterator, std::multimap < int, int >::iterator> ret;
 
  162   ret = 
hitmap2.equal_range(ilay);
 
  164   for (std::multimap< int, int >::iterator it = ret.first; it != ret.second; ++it) counter++; 
 
  172   std::vector< PndTrkHit* > thislayer;
 
  174   std::pair < std::multimap< int, int >::iterator, std::multimap < int, int >::iterator> ret;
 
  175   ret = 
hitmap2.equal_range(ilay);
 
  176   for (std::multimap< int, int >::iterator it = ret.first; it != ret.second; ++it) {
 
  179     thislayer.push_back(hit);
 
  186   return listofhits.at(ihit);
 
  194     cout << 
"SECTOR " << 
isec << 
": ";
 
  197     std::pair < std::multimap< int, int >::iterator, std::multimap < int, int >::iterator> ret;
 
  198     ret = 
hitmap.equal_range(isec);
 
  199     for (std::multimap< int, int >::iterator it = ret.first; it != ret.second; ++it)
 
  200       std::cout << 
' ' << it->second;
 
  209    cout << 
"Sector " << isec << 
": ";
 
  210    for (
size_t ihit = 0; ihit < listofhits.size(); ihit++) cout << 
" " << (listofhits.at(ihit))->GetHitID();
 
  217    for (
size_t ihit = 0; ihit < listofhits.size(); ihit++) (listofhits.at(ihit))->
Draw(color);
 
  221   std::pair < std::multimap< int, int >::iterator, std::multimap < int, int >::iterator> ret;
 
  222   ret = 
hitmap.equal_range(isec);
 
  224   for (std::multimap< int, int >::iterator it = ret.first; it != ret.second; ++it) counter++; 
 
  234   std::vector< PndTrkHit* > thissector;
 
  236   std::pair < std::multimap< int, int >::iterator, std::multimap < int, int >::iterator> ret;
 
  237   ret = 
hitmap.equal_range(isec);
 
  238   for (std::multimap< int, int >::iterator it = ret.first; it != ret.second; ++it) {
 
  241     thissector.push_back(hit);
 
  248   return listofhits.at(ihit);
 
  256   for(
int iglo = 0; iglo < nmaxglo; iglo++) {
 
  260     cout << 
"SECTOR " << isec << 
", LAYER " << ilay << 
": ";
 
  263     std::pair < std::multimap< int, int >::iterator, std::multimap < int, int >::iterator> ret;
 
  264     ret = 
hitmap3.equal_range(iglo);
 
  265     for (std::multimap< int, int >::iterator it = ret.first; it != ret.second; ++it)
 
  266       std::cout << 
' ' << it->second;
 
  275   cout << 
"Sector " << isec << 
", Layer " << ilay << 
": ";
 
  277   for (
size_t ihit = 0; ihit < listofhits.size(); ihit++) cout << 
" " << (listofhits.at(ihit))->GetHitID();
 
  284   for (
size_t ihit = 0; ihit < listofhits.size(); ihit++) (listofhits.at(ihit))->
Draw(color);
 
  288   std::pair < std::multimap< int, int >::iterator, std::multimap < int, int >::iterator> ret;
 
  290   ret = 
hitmap3.equal_range(iglo);
 
  292   for (std::multimap< int, int >::iterator it = ret.first; it != ret.second; ++it) counter++; 
 
  302   std::vector< PndTrkHit* > thissecandlay;
 
  304   std::pair < std::multimap< int, int >::iterator, std::multimap < int, int >::iterator> ret;
 
  306   ret = 
hitmap3.equal_range(iglo);
 
  307   for (std::multimap< int, int >::iterator it = ret.first; it != ret.second; ++it) {
 
  310     thissecandlay.push_back(hit);
 
  312   return thissecandlay;
 
  317   return listofhits.at(ihit);
 
  324   return isec + ilay * nofsectors; 
 
  330   ilay = iglo / nofsectors;
 
  331   isec = iglo - ilay * nofsectors;
 
  336   std::vector< PndTrkHit* > thislist;
 
  338   for (
size_t ihit = 0; ihit  < 
hitlist.size() ;  ihit++) {
 
  340     thislist.push_back(hit);
 
void PrintSectorsAndLayers()
static PndTrkSttHitList * fInstance
void DrawLayer(int ilay, Color_t color)
PndTrkSttHitList * Instanciate()
std::vector< PndTrkHit * > GetHitList()
PndTrkHit * GetHitFromLayer(int ihit, int ilay)
std::multimap< int, int > hitmap2
PndTrkHit * GetHitFromSectorAndLayer(int ihit, int isec, int ilay)
int GetNofHitsInSector(int isec)
PndTrkHit * GetHitFromSector(int ihit, int isec)
void FromGloToSecLay(int iglo, int &isec, int &ilay)
std::vector< PndTrkHit > hitlist
std::vector< PndTrkHit * > GetHitListFromLayer(int ilay)
std::vector< PndTrkHit * > GetHitListFromSector(int isec)
std::multimap< int, int > hitmap3
void Draw(Color_t color=kBlack)
void PrintSector(int isec)
int GetNofHitsInLayer(int ilay)
int hit(Int_t nEvents=0, TString inFile="sim.root", TString parFile="par.root", TString inDigi="digi.root", TString outFile="hit.root", Int_t timeBased=0)
void AddHit(Int_t hitID, Int_t detID, Bool_t used, Int_t iregion, TVector3 &pos)
std::multimap< int, int > hitmap
void PrintSectorAndLayer(int isec, int ilay)
TClonesArray * fTubeArray
static PndTrkSttHitList * Instance()
int GetNofHitsInSectorAndLayer(int isec, int ilay)
void AddHit(Int_t hitid, Int_t detid, FairHit *hit)
void DrawSectorAndLayer(int isec, int ilay, Color_t color=kBlack)
TVector3 GetWireDirection()
std::vector< PndTrkHit * > GetHitListFromSectorAndLayer(int isec, int ilay)
void PrintLayer(int ilay)
Int_t FromSecLayToGlo(int isec, int ilay)
void DrawSector(int isec, Color_t color=kBlack)