@@ -75,6 +75,8 @@ public abstract class TupleDriver extends Driver {
7575 private final double [] vzcBeamSize = {0.001 , 100 , 100 };
7676 private final double [] topTrackCorrection = {0 , 0 , 0 , 0 , 0 };
7777 private final double [] botTrackCorrection = {0 , 0 , 0 , 0 , 0 };
78+ private final double [] topPos = {45.5 ,92.0 ,192.0 };
79+ private final double [] botPos = {54.5 ,107.5 ,207.5 };
7880 protected final BasicHep3Matrix beamAxisRotation = BasicHep3Matrix .identity ();
7981 protected double ebeam = Double .NaN ;
8082
@@ -291,6 +293,9 @@ protected void addParticleVariables(String prefix) {
291293 "PhiKink1/D" , "PhiKink2/D" , "PhiKink3/D" ,
292294 "IsoStereo/D" , "IsoAxial/D" ,
293295 "MinPositiveIso/D" , "MinNegativeIso/D" ,
296+ "TrkExtrpXL0/D" , "TrkExtrpYL0/D" ,
297+ "TrkExtrpXL1/D" , "TrkExtrpYL1/D" ,
298+ "TrkExtrpXL2/D" , "TrkExtrpYL2/D" ,
294299 "RawMaxAmplL1/D" , "RawT0L1/D" , "RawChisqL1/D" ,"RawTDiffL1/D" ,
295300 "RawMaxAmplL2/D" , "RawT0L2/D" , "RawChisqL2/D" ,"RawTDiffL2/D" ,
296301 "RawMaxAmplL3/D" , "RawT0L3/D" , "RawChisqL3/D" ,"RawTDiffL3/D" ,
@@ -604,6 +609,19 @@ protected TrackState fillParticleVariables(EventHeader event, ReconstructedParti
604609
605610 Track track = particle .getTracks ().get (0 );
606611 TrackState trackState = track .getTrackStates ().get (0 );
612+ Hep3Vector extrapTrackPosL0 ;
613+ Hep3Vector extrapTrackPosL1 ;
614+ Hep3Vector extrapTrackPosL2 ;
615+ if (trackState .getTanLambda () > 0 ){
616+ extrapTrackPosL0 = TrackUtils .extrapolateTrack (track ,topPos [0 ]);
617+ extrapTrackPosL1 = TrackUtils .extrapolateTrack (track ,topPos [1 ]);
618+ extrapTrackPosL2 = TrackUtils .extrapolateTrack (track ,topPos [2 ]);
619+ }
620+ else {
621+ extrapTrackPosL0 = TrackUtils .extrapolateTrack (track ,botPos [0 ]);
622+ extrapTrackPosL1 = TrackUtils .extrapolateTrack (track ,botPos [1 ]);
623+ extrapTrackPosL2 = TrackUtils .extrapolateTrack (track ,botPos [2 ]);
624+ }
607625 double [] param = new double [5 ];
608626 for (int i = 0 ; i < 5 ; i ++) {
609627 param [i ] = trackState .getParameters ()[i ] + ((trackState .getTanLambda () > 0 ) ? topTrackCorrection [i ] : botTrackCorrection [i ]);
@@ -802,6 +820,12 @@ protected TrackState fillParticleVariables(EventHeader event, ReconstructedParti
802820 tupleMap .put (prefix + "IsoAxial/D" , isoAxial );
803821 tupleMap .put (prefix + "MinPositiveIso/D" , minPositiveIso );
804822 tupleMap .put (prefix + "MinNegativeIso/D" , minNegativeIso );
823+ tupleMap .put (prefix + "TrkExtrpXL0/D" , extrapTrackPosL0 .x ());
824+ tupleMap .put (prefix + "TrkExtrpYL0/D" , extrapTrackPosL0 .y ());
825+ tupleMap .put (prefix + "TrkExtrpXL1/D" , extrapTrackPosL1 .x ());
826+ tupleMap .put (prefix + "TrkExtrpYL1/D" , extrapTrackPosL1 .y ());
827+ tupleMap .put (prefix + "TrkExtrpXL2/D" , extrapTrackPosL2 .x ());
828+ tupleMap .put (prefix + "TrkExtrpYL2/D" , extrapTrackPosL2 .y ());
805829 tupleMap .put (prefix + "MatchChisq/D" , particle .getGoodnessOfPID ());
806830
807831 returnTrackState = tweakedTrackState ;
0 commit comments