Skip to content

Commit

Permalink
Merge pull request #6 from MuonColliderSoft/jetReco
Browse files Browse the repository at this point in the history
Some fixes for jet reconstruction
  • Loading branch information
gianelle authored Feb 27, 2023
2 parents 0d0f58b + cb62ea3 commit 2e33b57
Show file tree
Hide file tree
Showing 6 changed files with 52 additions and 44 deletions.
14 changes: 7 additions & 7 deletions include/LCTupleConf.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,20 +24,20 @@ struct CollID : public lcrtrel::LCIntExtension<CollID> {} ;

#define LCT_COLLENTRIES_MAX 1000000
#define LCT_MCPARTICLE_MAX 1000000
#define LCT_RECOPARTICLE_MAX 100000
#define LCT_TRACK_MAX 100000
#define LCT_RECOPARTICLE_MAX 500000
#define LCT_TRACK_MAX 300000
#define LCT_TRACKSTATE_MAX 1000000
#define LCT_CLUSTER_MAX 100000
#define LCT_CLUSTER_MAX 500000
#define LCT_RELATION_MAX 1000000
#define LCT_SIMTRACKERHIT_MAX 1000000
#define LCT_TRACKERHIT_MAX 1000000
#define LCT_SIMTRACKERHIT_MAX 2000000
#define LCT_TRACKERHIT_MAX 3000000
#define LCT_TRACKERRAWHIT_MAX 5000000
#define LCT_SIMCALORIMETERHIT_MAX 1000000
#define LCT_CALORIMETERHIT_MAX 1000000
#define LCT_PARTICLEID_MAX 1000000
#define LCT_VERTEX_MAX 1000
#define LCT_JET_MAX 20
#define LCT_JET_PARTICLES_MAX 20
#define LCT_JET_MAX 200
#define LCT_JET_PARTICLES_MAX 200
#define LCT_ISOLEP_MAX 100000

#define LCT_STRING_MAX 1024
Expand Down
1 change: 1 addition & 0 deletions include/TrackBranches.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ class TrackBranches : public CollectionBranches {
float _trrih[ LCT_TRACK_MAX ] {} ;
int _trthn[ LCT_TRACK_MAX ] {} ; // total number of hits
int _trthi[ LCT_TRACK_MAX ][50] {} ; // track hit indices
int _trthd[ LCT_TRACK_MAX ][50] {} ; // track hit subdetector
int _trshn[ LCT_TRACK_MAX ][12] {} ;
int _trnts[ LCT_TRACK_MAX ] {} ;
int _trfts[ LCT_TRACK_MAX ] {} ;
Expand Down
1 change: 1 addition & 0 deletions include/TrackerHitBranches.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ class TrackerHitBranches : public CollectionBranches {
double _thpoz[ LCT_TRACKERHIT_MAX ] {} ;
float _thedp[ LCT_TRACKERHIT_MAX ] {} ;
float _thtim[ LCT_TRACKERHIT_MAX ] {} ;
int _thdet[ LCT_TRACKERHIT_MAX ] {} ;

float _thcov[ LCT_TRACKERHIT_MAX ][6] {} ;

Expand Down
71 changes: 35 additions & 36 deletions src/JetBranches.cc
Original file line number Diff line number Diff line change
Expand Up @@ -87,26 +87,27 @@ void JetBranches::initBranches( TTree* tree, const std::string& pre){

tree->Branch( (pre+"jnpid" ).c_str() , &_jnpid , (pre+"jnpid/I").c_str() ) ;
tree->Branch( (pre+"npfojet").c_str(), &_njetpfo , (pre+"npfojet["+pre+"njet]/I").c_str() ) ;
tree->Branch( (pre+"rcidx").c_str(), &_jetpfoori , (pre+"rcidx["+pre+"njet][20]/I").c_str() ) ;
tree->Branch( (pre+"rcidx").c_str(), &_jetpfoori , (pre+"rcidx["+pre+"njet][LCT_JET_PARTICLES_MAX]/I").c_str() ) ;
} // end if

//PFO branches

if(_writeDaughtersParameters) {

tree->Branch( (pre+"ndaughters").c_str(), _ndaughters , (pre+"ndaughters["+pre+"njet]/I").c_str() ) ;
tree->Branch( (pre+"ntracks").c_str(), _ntracks , (pre+"ntracks["+pre+"njet]/I").c_str() ) ;
tree->Branch( (pre+"nclusters").c_str(), _nclusters , (pre+"nclusters["+pre+"njet]/I").c_str() ) ;
tree->Branch( (pre+"daughters_PX").c_str(), _daughters_PX , (pre+"daughters_PX["+pre+"njet][20]/F").c_str() ) ;
tree->Branch( (pre+"daughters_PY").c_str(), _daughters_PY , (pre+"daughters_PY["+pre+"njet][20]/F").c_str() ) ;
tree->Branch( (pre+"daughters_PZ").c_str(), _daughters_PZ , (pre+"daughters_PZ["+pre+"njet][20]/F").c_str() ) ;
tree->Branch( (pre+"daughters_E").c_str(), _daughters_E , (pre+"daughters_E["+pre+"njet][20]/F").c_str() ) ;
tree->Branch( (pre+"daughters_M").c_str(), _daughters_M , (pre+"daughters_M["+pre+"njet][20]/F").c_str() ) ;
tree->Branch( (pre+"daughters_Q").c_str(), _daughters_Q , (pre+"daughters_Q["+pre+"njet][20]/F").c_str() ) ;
tree->Branch( (pre+"daughters_trackD0").c_str(), _daughters_trackD0 , (pre+"daughters_trackD0["+pre+"njet][20]/F").c_str() ) ;
tree->Branch( (pre+"daughters_trackPhi").c_str(), _daughters_trackPhi , (pre+"daughters_trackPhi["+pre+"njet][20]/F").c_str() ) ;
tree->Branch( (pre+"daughters_trackOmega").c_str(), _daughters_trackOmega , (pre+"daughters_trackOmega["+pre+"njet][20]/F").c_str() ) ;
tree->Branch( (pre+"daughters_trackZ0").c_str(), _daughters_trackZ0 , (pre+"daughters_trackZ0["+pre+"njet][20]/F").c_str() ) ;
tree->Branch( (pre+"daughters_trackTanLambda").c_str(), _daughters_trackTanLambda , (pre+"daughters_trackTanLambda["+pre+"njet][20]/F").c_str() ) ;
tree->Branch( (pre+"ntracks").c_str(), _ntracks , (pre+"ntracks["+pre+"njet]/I").c_str() ) ;
tree->Branch( (pre+"nclusters").c_str(), _nclusters , (pre+"nclusters["+pre+"njet]/I").c_str() ) ;
tree->Branch( (pre+"daughters_PX").c_str(), _daughters_PX , (pre+"daughters_PX["+pre+"njet][LCT_JET_PARTICLES_MAX]/F").c_str() ) ;
tree->Branch( (pre+"daughters_PY").c_str(), _daughters_PY , (pre+"daughters_PY["+pre+"njet][LCT_JET_PARTICLES_MAX]/F").c_str() ) ;
tree->Branch( (pre+"daughters_PZ").c_str(), _daughters_PZ , (pre+"daughters_PZ["+pre+"njet][LCT_JET_PARTICLES_MAX]/F").c_str() ) ;
tree->Branch( (pre+"daughters_E").c_str(), _daughters_E , (pre+"daughters_E["+pre+"njet][LCT_JET_PARTICLES_MAX]/F").c_str() ) ;
tree->Branch( (pre+"daughters_M").c_str(), _daughters_M , (pre+"daughters_M["+pre+"njet][LCT_JET_PARTICLES_MAX]/F").c_str() ) ;
tree->Branch( (pre+"daughters_Q").c_str(), _daughters_Q , (pre+"daughters_Q["+pre+"njet][LCT_JET_PARTICLES_MAX]/F").c_str() ) ;
tree->Branch( (pre+"daughters_trackD0").c_str(), _daughters_trackD0 , (pre+"daughters_trackD0["+pre+"njet][LCT_JET_PARTICLES_MAX]/F").c_str() ) ;
tree->Branch( (pre+"daughters_trackPhi").c_str(), _daughters_trackPhi , (pre+"daughters_trackPhi["+pre+"njet][LCT_JET_PARTICLES_MAX]/F").c_str() ) ;
tree->Branch( (pre+"daughters_trackOmega").c_str(), _daughters_trackOmega , (pre+"daughters_trackOmega["+pre+"njet][LCT_JET_PARTICLES_MAX]/F").c_str() ) ;
tree->Branch( (pre+"daughters_trackZ0").c_str(), _daughters_trackZ0 , (pre+"daughters_trackZ0["+pre+"njet][LCT_JET_PARTICLES_MAX]/F").c_str() ) ;
tree->Branch( (pre+"daughters_trackTanLambda").c_str(), _daughters_trackTanLambda , (pre+"daughters_trackTanLambda["+pre+"njet][LCT_JET_PARTICLES_MAX]/F").c_str() ) ;
}


Expand Down Expand Up @@ -196,23 +197,23 @@ void JetBranches::fill(const EVENT::LCCollection* col, EVENT::LCEvent* evt )
_ntracks[ i ] = 0;
_nclusters[ i ] = 0;


for ( size_t j = 0; j < LCT_JET_PARTICLES_MAX ; ++j ) {
if(_writeDaughtersParameters) {

for ( size_t j = 0; j < LCT_JET_PARTICLES_MAX ; ++j ) {
_daughters_PX[ i ][ j ] = 0 ;
_daughters_PY[ i ][ j ] = 0 ;
_daughters_PZ[ i ][ j ] = 0 ;
_daughters_E[ i ][ j ] = 0 ;
_daughters_M[ i ][ j ] = 0 ;
_daughters_Q[ i ][ j ] = 0 ;
_daughters_trackD0[ i ][ j ] = 0;
_daughters_trackD0[ i ][ j ] = 0;
_daughters_trackPhi[ i ][ j ] = 0;
_daughters_trackOmega[ i ][ j ] = 0;
_daughters_trackZ0[ i ][ j ] = 0;
_daughters_trackTanLambda[ i ][ j ] = 0;

}

}
}
}
}

if( !col ) return ;

Expand Down Expand Up @@ -289,18 +290,16 @@ void JetBranches::fill(const EVENT::LCCollection* col, EVENT::LCEvent* evt )
_jcov8[ i ] = jet->getCovMatrix()[8];
_jcov9[ i ] = jet->getCovMatrix()[9];

if(_writeDaughtersParameters){
auto particles = jet->getParticles();
_ndaughters[ i ] = particles.size() ;

int nparticles = std::min<int>( particles.size() , LCT_JET_PARTICLES_MAX ); // check array limit ...
memset( &_jetpfoori[ i ][0], -1, LCT_JET_PARTICLES_MAX ); // init indices
if (_writeDaughtersParameters) {
auto particles = jet->getParticles();
_ndaughters[ i ] = particles.size() ;

int ntracks=0;
int nclusters=0;
int ntracks=0;
int nclusters=0;
int nparticles = std::min<int>( particles.size() , LCT_JET_PARTICLES_MAX ); // check array limit ...

for( int partid = 0 ; partid < nparticles ; ++partid ) {
_daughters_PX[ i ][ partid ] = particles[partid]->getMomentum()[0] ;
for( int partid = 0 ; partid < nparticles ; ++partid ) {
_daughters_PX[ i ][ partid ] = particles[partid]->getMomentum()[0] ;
_daughters_PY[ i ][ partid ] = particles[partid]->getMomentum()[1] ;
_daughters_PZ[ i ][ partid ] = particles[partid]->getMomentum()[2] ;
_daughters_E[ i ][ partid ] = particles[partid]->getEnergy() ;
Expand All @@ -310,7 +309,7 @@ void JetBranches::fill(const EVENT::LCCollection* col, EVENT::LCEvent* evt )
if (abs(_daughters_Q[ i ][ partid ])>0) ntracks++;
if (abs(_daughters_Q[ i ][ partid ])==0) nclusters++;

auto tracks = particles[partid]->getTracks();
auto tracks = particles[partid]->getTracks();
//std::cout << "ntracks = " << tracks.size() << " charge = " << _daughters_Q[ i ][ partid ] << std::endl;

if (tracks.size()>0) {
Expand All @@ -321,12 +320,12 @@ void JetBranches::fill(const EVENT::LCCollection* col, EVENT::LCEvent* evt )
_daughters_trackTanLambda[ i ][ partid ] = tracks[0]->getTanLambda();
}

}
_ntracks[ i ] = ntracks ;
_nclusters[ i ] = nclusters ;
}
_ntracks[ i ] = ntracks ;
_nclusters[ i ] = nclusters ;
}

// write tagginf parameters if it is enabled
// write tagging parameters if it is enabled
if(_writeTaggingParameters) {
std::vector< float > pidvec = pid->getParticleID (jet, algo).getParameters() ;

Expand Down
6 changes: 5 additions & 1 deletion src/TrackBranches.cc
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ void TrackBranches::initBranches( TTree* tree, const std::string& pre){
tree->Branch( (pre+"trthn").c_str() , _trthn , (pre+"trthn["+pre+"ntrk]/I").c_str() ) ;
tree->Branch( (pre+"trthi").c_str() , _trthi , (pre+"trthi["+pre+"ntrk][50]/I").c_str() ) ;
tree->Branch( (pre+"trshn").c_str() , _trshn , (pre+"trshn["+pre+"ntrk][12]/I").c_str() ) ;
tree->Branch( (pre+"trthd").c_str() , _trthd , (pre+"trthd["+pre+"ntrk][50]/I").c_str() ) ;
tree->Branch( (pre+"trnts").c_str() , _trnts , (pre+"trnts["+pre+"ntrk]/I").c_str() ) ;
tree->Branch( (pre+"trfts").c_str() , _trfts , (pre+"trfts["+pre+"ntrk]/I").c_str() ) ;
tree->Branch( (pre+"trsip").c_str() , _trsip , (pre+"trsip["+pre+"ntrk]/I").c_str() ) ;
Expand Down Expand Up @@ -157,7 +158,10 @@ void TrackBranches::fill(const EVENT::LCCollection* col, EVENT::LCEvent* evt ){
int hit_index = ( trk->getTrackerHits().at(ihit) ?
trk->getTrackerHits().at(ihit)->ext<CollIndex>() - 1 :
-1 );

unsigned det = ( trk->getTrackerHits().at(ihit) ?
(unsigned) (trk->getTrackerHits().at(ihit)->getCellID0() & 0x1f) :
0 );
_trthd[ i ][ ihit ] = det ;
_trthi[ i ][ ihit ] = hit_index;

}
Expand Down
3 changes: 3 additions & 0 deletions src/TrackerHitBranches.cc
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ void TrackerHitBranches::initBranches( TTree* tree, const std::string& pre ){
tree->Branch( (pre+"thpoz").c_str() , _thpoz , (pre+"thpoz["+pre+"ntrh]/D").c_str() ) ;
tree->Branch( (pre+"thedp").c_str() , _thedp , (pre+"thedp["+pre+"ntrh]/F").c_str() ) ;
tree->Branch( (pre+"thtim").c_str() , _thtim , (pre+"thtim["+pre+"ntrh]/F").c_str() ) ;
tree->Branch( (pre+"thdet").c_str() , _thdet , (pre+"thdet["+pre+"ntrh]/I").c_str() ) ;

tree->Branch( (pre+"thcov").c_str() , _thcov , (pre+"thcov["+pre+"ntrh][6]/F").c_str() ) ;

Expand Down Expand Up @@ -95,6 +96,8 @@ void TrackerHitBranches::fill(const EVENT::LCCollection* col, const EVENT::LCCol
_thedp[i] = hit->getEDep() ;
_thtim[i] = hit->getTime() ;

_thdet[i] = (unsigned) hit->getCellID0() & 0x1f ;

for(int j=0;j<6;++j){
_thcov[ i ][ j ] = hit->getCovMatrix()[j] ;
}
Expand Down

0 comments on commit 2e33b57

Please sign in to comment.