#include "PndTrkSttConformalFilling.h" #include "PndTrkVectors.h" #include #include // Root includes #include "TROOT.h" using namespace std; #define PI 3.141592654 //----------begin of function PndTrkSttConformalFilling::BoxConformalFilling void PndTrkSttConformalFilling::BoxConformalFilling( Vec & FiConformalIndex, Vec & HitsinBoxConformal, bool *InclusionListStt, Double_t infoparalConformal[][5], Short_t *ListSttParHits, Short_t MAXHITSINCELL, Vec & nBoxConformal, Short_t NFIDIVCONFORMAL, Int_t Nparal, Short_t NRDIVCONFORMAL, Double_t *radiaConf, Vec & RConformalIndex ) { Short_t bi_index, i, iFi, iR, j, tri_index; Double_t Fi; // initialize nBoxConformal (each event); for(j = 0; j< NFIDIVCONFORMAL*NRDIVCONFORMAL ; j++){ nBoxConformal[j]= 0; } // fill the nBoxConformal and the list contained in HitsinBoxConformal with // all the axial straw hits; for(i = 0; i< Nparal ; i++){ if( ! InclusionListStt[ ListSttParHits[i] ] ) continue; Fi = atan2(infoparalConformal[ListSttParHits[i]][1], infoparalConformal[ListSttParHits[i]][0]) ; if ( Fi < 0. ) Fi += 2.*PI; iFi = (Short_t) (0.5*NFIDIVCONFORMAL*Fi/PI); if(iFi > NFIDIVCONFORMAL ) { iFi = NFIDIVCONFORMAL; } else if (iFi<0) { iFi = 0; } Double_t RRR = sqrt(infoparalConformal[ListSttParHits[i]][0]* infoparalConformal[ListSttParHits[i]][0]+ infoparalConformal[ListSttParHits[i]][1]* infoparalConformal[ListSttParHits[i]][1]); for(j=NRDIVCONFORMAL-1, iR=0; j>0; j--){ if( RRR> radiaConf[j] ){ iR = j; break; } } bi_index = iR*NFIDIVCONFORMAL+iFi; tri_index = nBoxConformal[bi_index]*NRDIVCONFORMAL*NFIDIVCONFORMAL + bi_index; if( nBoxConformal[bi_index] >= MAXHITSINCELL ){ cout<<"Warning from PndTrkSttConformalFilling::BoxConformalFilling\t:" <<"\n\tcontent in nBoxConformal["<