11 #include <TDirectory.h>
50 file =
new TFile(
"testhits.root",
"recreate");
51 for (
int i=0;
i!=6;
i++)
52 for (
int j=0;
j!=9;
j++){
53 if (
i==0 &&
j>2)
break;
54 if (
i==1 &&
j>1)
break;
55 if (
i==2 &&
j>3)
break;
56 if (
i==3 &&
j>2)
break;
57 if (
i==4 &&
j>5)
break;
58 if (
i==5 &&
j>8)
break;
60 title <<
"PullGP_X_" <<
i+1 <<
"-" <<
j+1 <<
"_ts";
63 title <<
"PullGP_Y_" <<
i+1 <<
"-" << j+1 <<
"_ts";
66 title <<
"PullGP_Z_" <<
i+1 <<
"-" << j+1 <<
"_ts";
69 title <<
"Chi2Increment_" <<
i+1 <<
"-" << j+1;
73 title <<
"PullGM_X_" <<
i+1 <<
"-" << j+1 <<
"_ts";
76 title <<
"PullGM_Y_" <<
i+1 <<
"-" << j+1 <<
"_ts";
79 title <<
"PullGM_Z_" <<
i+1 <<
"-" << j+1 <<
"_ts";
83 title <<
"PullGP_X_" <<
i+1 <<
"-" << j+1 <<
"_tr";
86 title <<
"PullGP_Y_" <<
i+1 <<
"-" << j+1 <<
"_tr";
89 title <<
"PullGP_Z_" <<
i+1 <<
"-" << j+1 <<
"_tr";
93 title <<
"PullGP_X_" <<
i+1 <<
"-" << j+1 <<
"_rs";
96 title <<
"PullGP_Y_" <<
i+1 <<
"-" << j+1 <<
"_rs";
99 title <<
"PullGP_Z_" <<
i+1 <<
"-" << j+1 <<
"_rs";
102 if ( ((
i==2||
i==4)&&(j==0||j==1)) || (
i==3||
i==5) ){
105 title <<
"PullGP_X_" <<
i+1 <<
"-" << j+1 <<
"_ts_mono";
108 title <<
"PullGP_Y_" <<
i+1 <<
"-" << j+1 <<
"_ts_mono";
111 title <<
"PullGP_Z_" <<
i+1 <<
"-" << j+1 <<
"_ts_mono";
115 title <<
"PullGM_X_" <<
i+1 <<
"-" << j+1 <<
"_ts_mono";
118 title <<
"PullGM_Y_" <<
i+1 <<
"-" << j+1 <<
"_ts_mono";
121 title <<
"PullGM_Z_" <<
i+1 <<
"-" << j+1 <<
"_ts_mono";
125 title <<
"PullGP_X_" <<
i+1 <<
"-" << j+1 <<
"_tr_mono";
128 title <<
"PullGP_Y_" <<
i+1 <<
"-" << j+1 <<
"_tr_mono";
131 title <<
"PullGP_Z_" <<
i+1 <<
"-" << j+1 <<
"_tr_mono";
135 title <<
"PullGP_X_" <<
i+1 <<
"-" << j+1 <<
"_rs_mono";
138 title <<
"PullGP_Y_" <<
i+1 <<
"-" << j+1 <<
"_rs_mono";
141 title <<
"PullGP_Z_" <<
i+1 <<
"-" << j+1 <<
"_rs_mono";
146 title <<
"PullGP_X_" <<
i+1 <<
"-" << j+1 <<
"_ts_stereo";
149 title <<
"PullGP_Y_" <<
i+1 <<
"-" << j+1 <<
"_ts_stereo";
152 title <<
"PullGP_Z_" <<
i+1 <<
"-" << j+1 <<
"_ts_stereo";
156 title <<
"PullGM_X_" <<
i+1 <<
"-" << j+1 <<
"_ts_stereo";
159 title <<
"PullGM_Y_" <<
i+1 <<
"-" << j+1 <<
"_ts_stereo";
162 title <<
"PullGM_Z_" <<
i+1 <<
"-" << j+1 <<
"_ts_stereo";
166 title <<
"PullGP_X_" <<
i+1 <<
"-" << j+1 <<
"_tr_stereo";
169 title <<
"PullGP_Y_" <<
i+1 <<
"-" << j+1 <<
"_tr_stereo";
172 title <<
"PullGP_Z_" <<
i+1 <<
"-" << j+1 <<
"_tr_stereo";
176 title <<
"PullGP_X_" <<
i+1 <<
"-" << j+1 <<
"_rs_stereo";
179 title <<
"PullGP_Y_" <<
i+1 <<
"-" << j+1 <<
"_rs_stereo";
182 title <<
"PullGP_Z_" <<
i+1 <<
"-" << j+1 <<
"_rs_stereo";
187 hProcess_vs_Chi2 =
new TH2F(
"Process_vs_Chi2",
"Process_vs_Chi2",1000,0,100,17,-0.5,16.5);
188 hClsize_vs_Chi2 =
new TH2F(
"Clsize_vs_Chi2",
"Clsize_vs_Chi2",1000,0,100,17,-0.5,16.5);
194 LogTrace(
"TestHits") <<
"\nnew event";
203 LogTrace(
"TestHits") <<
"\n*****************new candidate*****************" << std::endl;
216 if (theTSOS.globalMomentum().eta()>
maxeta || theTSOS.globalMomentum().eta()<
mineta)
continue;
222 i!=recHitVec.second;
i++){
227 std::vector<Trajectory>
result =
fit->fit(theTC->
seed(), hits, theTSOS);
228 if (result.size()==0)
continue;
229 std::vector<TrajectoryMeasurement> vtm = result[0].measurements();
232 TSOS lastState = theTSOS;
233 for (std::vector<TrajectoryMeasurement>::iterator tm=vtm.begin(); tm!=vtm.end();tm++){
236 if ((rhit)->isValid()==0&&rhit->det()!=0)
continue;
237 LogTrace(
"TestHits") <<
"*****************new hit*****************" ;
239 int subdetId = rhit->det()->geographicalId().subdetId();
241 DetId id = rhit->det()->geographicalId();
242 if (
id.subdetId()==3) layerId = ((
TIBDetId)(
id)).layer();
243 if (
id.subdetId()==5) layerId = ((
TOBDetId)(
id)).layer();
244 if (
id.subdetId()==1) layerId = ((
PXBDetId)(
id)).layer();
245 if (
id.subdetId()==4) layerId = ((
TIDDetId)(
id)).wheel();
246 if (
id.subdetId()==6) layerId = ((
TECDetId)(
id)).wheel();
247 if (
id.subdetId()==2) layerId = ((
PXFDetId)(
id)).disk();
248 LogTrace(
"TestHits") <<
"subdetId=" << subdetId <<
" layerId=" << layerId ;
250 double delta = 99999;
254 if (assSimHits.size()==0)
continue;
256 for(std::vector<PSimHit>::const_iterator
m=assSimHits.begin();
m<assSimHits.end();
m++){
257 if ((
m->localPosition()-rhitLPv).
mag()<
delta) {
259 delta = (
m->localPosition()-rhitLPv).
mag();
263 TSOS currentState = tm->forwardPredictedState();
264 if (tm->backwardPredictedState().isValid())
265 currentState =
combiner(tm->backwardPredictedState(), tm->forwardPredictedState());
266 TSOS updatedState = tm->updatedState();
267 tchi2+=tm->estimate();
270 double chi2increment = tm->estimate();
271 LogTrace(
"TestHits") <<
"tm->estimate()=" << tm->estimate();
273 title <<
"Chi2Increment_" << subdetId <<
"-" << layerId;
277 if (dynamic_cast<const SiPixelRecHit*>(rhit->hit()))
279 if (dynamic_cast<const SiStripRecHit2D*>(rhit->hit()))
280 hClsize_vs_Chi2->Fill( chi2increment, ((
const SiStripRecHit2D*)(rhit->hit()))->cluster()->amplitudes().size() );
283 const Surface * surf = &( (rhit)->det()->surface() );
286 if (dynamic_cast<const SiStripMatchedRecHit2D*>((rhit)->
hit())) {
287 double rechitmatchedx = rhit->localPosition().x();
288 double rechitmatchedy = rhit->localPosition().y();
289 double mindist = 999999;
291 std::pair<LocalPoint,LocalVector> closestPair;
293 const BoundPlane& plane = (rhit)->det()->surface();
294 for(std::vector<PSimHit>::const_iterator
m=assSimHits.begin();
m<assSimHits.end();
m++) {
296 std::pair<LocalPoint,LocalVector> hitPair =
projectHit((*
m),stripDet,plane);
297 distx = fabs(rechitmatchedx - hitPair.first.x());
298 disty = fabs(rechitmatchedy - hitPair.first.y());
299 double dist = distx*distx+disty*disty;
300 if(
sqrt(dist)<mindist){
302 closestPair = hitPair;
305 shitLPos = closestPair.first;
306 shitLMom = closestPair.second;
320 GlobalError rhitGPEr = (rhit)->globalPositionError();
322 double pullGPX_rs = (rhitGPos.
x()-shitGPos.
x())/
sqrt(rhitGPEr.
cxx());
323 double pullGPY_rs = (rhitGPos.
y()-shitGPos.
y())/
sqrt(rhitGPEr.
cyy());
324 double pullGPZ_rs = (rhitGPos.
z()-shitGPos.
z())/
sqrt(rhitGPEr.
czz());
329 LogTrace(
"TestHits") <<
"rs" << std::endl;
330 LogVerbatim(
"TestHits") <<
"assSimHits.size()=" << assSimHits.size() ;
331 LogVerbatim(
"TestHits") <<
"tsos globalPos =" << tsosGPos ;
332 LogVerbatim(
"TestHits") <<
"sim hit globalPos=" << shitGPos ;
333 LogVerbatim(
"TestHits") <<
"rec hit globalPos=" << rhitGPos ;
334 LogVerbatim(
"TestHits") <<
"geographicalId =" << rhit->det()->geographicalId().rawId() ;
338 title <<
"PullGP_X_" << subdetId <<
"-" << layerId <<
"_rs";
341 title <<
"PullGP_Y_" << subdetId <<
"-" << layerId <<
"_rs";
344 title <<
"PullGP_Z_" << subdetId <<
"-" << layerId <<
"_rs";
347 double pullGPX_tr = (tsosGPos.
x()-rhitGPos.
x())/
sqrt(tsosGPEr.
cxx()+rhitGPEr.
cxx());
348 double pullGPY_tr = (tsosGPos.
y()-rhitGPos.
y())/
sqrt(tsosGPEr.
cyy()+rhitGPEr.
cyy());
349 double pullGPZ_tr = (tsosGPos.
z()-rhitGPos.
z())/
sqrt(tsosGPEr.
czz()+rhitGPEr.
czz());
354 LogTrace(
"TestHits") <<
"tr" << std::endl;
357 title <<
"PullGP_X_" << subdetId <<
"-" << layerId <<
"_tr";
360 title <<
"PullGP_Y_" << subdetId <<
"-" << layerId <<
"_tr";
363 title <<
"PullGP_Z_" << subdetId <<
"-" << layerId <<
"_tr";
366 double pullGPX_ts = (tsosGPos.
x()-shitGPos.
x())/
sqrt(tsosGPEr.
cxx());
367 double pullGPY_ts = (tsosGPos.
y()-shitGPos.
y())/
sqrt(tsosGPEr.
cyy());
368 double pullGPZ_ts = (tsosGPos.
z()-shitGPos.
z())/
sqrt(tsosGPEr.
czz());
373 LogTrace(
"TestHits") <<
"ts1" << std::endl;
376 title <<
"PullGP_X_" << subdetId <<
"-" << layerId <<
"_ts";
379 title <<
"PullGP_Y_" << subdetId <<
"-" << layerId <<
"_ts";
382 title <<
"PullGP_Z_" << subdetId <<
"-" << layerId <<
"_ts";
385 double pullGMX_ts = (tsosGMom.
x()-shitGMom.
x())/
sqrt(tsosGMEr.
cxx());
386 double pullGMY_ts = (tsosGMom.
y()-shitGMom.
y())/
sqrt(tsosGMEr.
cyy());
387 double pullGMZ_ts = (tsosGMom.
z()-shitGMom.
z())/
sqrt(tsosGMEr.
czz());
392 LogTrace(
"TestHits") <<
"ts2" << std::endl;
395 title <<
"PullGM_X_" << subdetId <<
"-" << layerId <<
"_ts";
398 title <<
"PullGM_Y_" << subdetId <<
"-" << layerId <<
"_ts";
401 title <<
"PullGM_Z_" << subdetId <<
"-" << layerId <<
"_ts";
404 if (dynamic_cast<const SiStripMatchedRecHit2D*>((rhit)->
hit())) {
406 LogTrace(
"TestHits") <<
"MONO HIT" << std::endl;
407 auto m =
dynamic_cast<const SiStripMatchedRecHit2D*
>((rhit)->
hit())->monoHit();
409 if (tMonoHit==0)
continue;
411 if (assMonoSimHits.size()==0)
continue;
412 const PSimHit sMonoHit = *(assSimHits.begin());
413 const Surface * monoSurf = &( tMonoHit->det()->surface() );
414 if (monoSurf==0)
continue;
416 if (monoState.
isValid()==0)
continue;
428 GlobalPoint monoRhitGPos = tMonoHit->globalPosition();
429 GlobalError monoRhitGPEr = tMonoHit->globalPositionError();
431 double pullGPX_rs_mono = (monoRhitGPos.
x()-monoShitGPos.
x())/
sqrt(monoRhitGPEr.
cxx());
432 double pullGPY_rs_mono = (monoRhitGPos.
y()-monoShitGPos.
y())/
sqrt(monoRhitGPEr.
cyy());
433 double pullGPZ_rs_mono = (monoRhitGPos.
z()-monoShitGPos.
z())/
sqrt(monoRhitGPEr.
czz());
439 title <<
"PullGP_X_" << subdetId <<
"-" << layerId <<
"_rs_mono";
442 title <<
"PullGP_Y_" << subdetId <<
"-" << layerId <<
"_rs_mono";
445 title <<
"PullGP_Z_" << subdetId <<
"-" << layerId <<
"_rs_mono";
448 double pullGPX_tr_mono = (monoTsosGPos.
x()-monoRhitGPos.
x())/
sqrt(monoTsosGPEr.
cxx()+monoRhitGPEr.
cxx());
449 double pullGPY_tr_mono = (monoTsosGPos.
y()-monoRhitGPos.
y())/
sqrt(monoTsosGPEr.
cyy()+monoRhitGPEr.
cyy());
450 double pullGPZ_tr_mono = (monoTsosGPos.
z()-monoRhitGPos.
z())/
sqrt(monoTsosGPEr.
czz()+monoRhitGPEr.
czz());
456 title <<
"PullGP_X_" << subdetId <<
"-" << layerId <<
"_tr_mono";
459 title <<
"PullGP_Y_" << subdetId <<
"-" << layerId <<
"_tr_mono";
462 title <<
"PullGP_Z_" << subdetId <<
"-" << layerId <<
"_tr_mono";
465 double pullGPX_ts_mono = (monoTsosGPos.
x()-monoShitGPos.
x())/
sqrt(monoTsosGPEr.
cxx());
466 double pullGPY_ts_mono = (monoTsosGPos.
y()-monoShitGPos.
y())/
sqrt(monoTsosGPEr.
cyy());
467 double pullGPZ_ts_mono = (monoTsosGPos.
z()-monoShitGPos.
z())/
sqrt(monoTsosGPEr.
czz());
473 title <<
"PullGP_X_" << subdetId <<
"-" << layerId <<
"_ts_mono";
476 title <<
"PullGP_Y_" << subdetId <<
"-" << layerId <<
"_ts_mono";
479 title <<
"PullGP_Z_" << subdetId <<
"-" << layerId <<
"_ts_mono";
482 double pullGMX_ts_mono = (monoTsosGMom.
x()-monoShitGMom.
x())/
sqrt(monoTsosGMEr.
cxx());
483 double pullGMY_ts_mono = (monoTsosGMom.
y()-monoShitGMom.
y())/
sqrt(monoTsosGMEr.
cyy());
484 double pullGMZ_ts_mono = (monoTsosGMom.
z()-monoShitGMom.
z())/
sqrt(monoTsosGMEr.
czz());
490 title <<
"PullGM_X_" << subdetId <<
"-" << layerId <<
"_ts_mono";
493 title <<
"PullGM_Y_" << subdetId <<
"-" << layerId <<
"_ts_mono";
496 title <<
"PullGM_Z_" << subdetId <<
"-" << layerId <<
"_ts_mono";
500 LogTrace(
"TestHits") <<
"STEREO HIT" << std::endl;
501 auto s =
dynamic_cast<const SiStripMatchedRecHit2D*
>((rhit)->
hit())->stereoHit();
504 if (tStereoHit==0)
continue;
506 if (assStereoSimHits.size()==0)
continue;
507 const PSimHit sStereoHit = *(assSimHits.begin());
508 const Surface * stereoSurf = &( tStereoHit->det()->surface() );
509 if (stereoSurf==0)
continue;
511 if (stereoState.
isValid()==0)
continue;
523 GlobalPoint stereoRhitGPos = tStereoHit->globalPosition();
524 GlobalError stereoRhitGPEr = tStereoHit->globalPositionError();
526 double pullGPX_rs_stereo = (stereoRhitGPos.
x()-stereoShitGPos.
x())/
sqrt(stereoRhitGPEr.
cxx());
527 double pullGPY_rs_stereo = (stereoRhitGPos.
y()-stereoShitGPos.
y())/
sqrt(stereoRhitGPEr.
cyy());
528 double pullGPZ_rs_stereo = (stereoRhitGPos.
z()-stereoShitGPos.
z())/
sqrt(stereoRhitGPEr.
czz());
534 title <<
"PullGP_X_" << subdetId <<
"-" << layerId <<
"_rs_stereo";
537 title <<
"PullGP_Y_" << subdetId <<
"-" << layerId <<
"_rs_stereo";
540 title <<
"PullGP_Z_" << subdetId <<
"-" << layerId <<
"_rs_stereo";
543 double pullGPX_tr_stereo = (stereoTsosGPos.
x()-stereoRhitGPos.
x())/
sqrt(stereoTsosGPEr.
cxx()+stereoRhitGPEr.
cxx());
544 double pullGPY_tr_stereo = (stereoTsosGPos.
y()-stereoRhitGPos.
y())/
sqrt(stereoTsosGPEr.
cyy()+stereoRhitGPEr.
cyy());
545 double pullGPZ_tr_stereo = (stereoTsosGPos.
z()-stereoRhitGPos.
z())/
sqrt(stereoTsosGPEr.
czz()+stereoRhitGPEr.
czz());
551 title <<
"PullGP_X_" << subdetId <<
"-" << layerId <<
"_tr_stereo";
554 title <<
"PullGP_Y_" << subdetId <<
"-" << layerId <<
"_tr_stereo";
557 title <<
"PullGP_Z_" << subdetId <<
"-" << layerId <<
"_tr_stereo";
560 double pullGPX_ts_stereo = (stereoTsosGPos.
x()-stereoShitGPos.
x())/
sqrt(stereoTsosGPEr.
cxx());
561 double pullGPY_ts_stereo = (stereoTsosGPos.
y()-stereoShitGPos.
y())/
sqrt(stereoTsosGPEr.
cyy());
562 double pullGPZ_ts_stereo = (stereoTsosGPos.
z()-stereoShitGPos.
z())/
sqrt(stereoTsosGPEr.
czz());
568 title <<
"PullGP_X_" << subdetId <<
"-" << layerId <<
"_ts_stereo";
571 title <<
"PullGP_Y_" << subdetId <<
"-" << layerId <<
"_ts_stereo";
574 title <<
"PullGP_Z_" << subdetId <<
"-" << layerId <<
"_ts_stereo";
577 double pullGMX_ts_stereo = (stereoTsosGMom.
x()-stereoShitGMom.
x())/
sqrt(stereoTsosGMEr.
cxx());
578 double pullGMY_ts_stereo = (stereoTsosGMom.
y()-stereoShitGMom.
y())/
sqrt(stereoTsosGMEr.
cyy());
579 double pullGMZ_ts_stereo = (stereoTsosGMom.
z()-stereoShitGMom.
z())/
sqrt(stereoTsosGMEr.
czz());
585 title <<
"PullGM_X_" << subdetId <<
"-" << layerId <<
"_ts_stereo";
588 title <<
"PullGM_Y_" << subdetId <<
"-" << layerId <<
"_ts_stereo";
591 title <<
"PullGM_Z_" << subdetId <<
"-" << layerId <<
"_ts_stereo";
594 lastState = updatedState;
596 LogTrace(
"TestHits") <<
"traj chi2=" << tchi2 ;
597 LogTrace(
"TestHits") <<
"track chi2=" << result[0].chiSquared() ;
600 LogTrace(
"TestHits") <<
"end of event" << std::endl;
946 TDirectory * chi2i =
file->mkdir(
"Chi2_Increment");
948 TDirectory * gp_ts =
file->mkdir(
"GP_TSOS-SimHit");
949 TDirectory * gm_ts =
file->mkdir(
"GM_TSOS-SimHit");
950 TDirectory * gp_tr =
file->mkdir(
"GP_TSOS-RecHit");
951 TDirectory * gp_rs =
file->mkdir(
"GP_RecHit-SimHit");
953 TDirectory * gp_tsx = gp_ts->mkdir(
"X");
954 TDirectory * gp_tsy = gp_ts->mkdir(
"Y");
955 TDirectory * gp_tsz = gp_ts->mkdir(
"Z");
956 TDirectory * gm_tsx = gm_ts->mkdir(
"X");
957 TDirectory * gm_tsy = gm_ts->mkdir(
"Y");
958 TDirectory * gm_tsz = gm_ts->mkdir(
"Z");
959 TDirectory * gp_trx = gp_tr->mkdir(
"X");
960 TDirectory * gp_try = gp_tr->mkdir(
"Y");
961 TDirectory * gp_trz = gp_tr->mkdir(
"Z");
962 TDirectory * gp_rsx = gp_rs->mkdir(
"X");
963 TDirectory * gp_rsy = gp_rs->mkdir(
"Y");
964 TDirectory * gp_rsz = gp_rs->mkdir(
"Z");
966 TDirectory * gp_tsx_mono = gp_ts->mkdir(
"MONOX");
967 TDirectory * gp_tsy_mono = gp_ts->mkdir(
"MONOY");
968 TDirectory * gp_tsz_mono = gp_ts->mkdir(
"MONOZ");
969 TDirectory * gm_tsx_mono = gm_ts->mkdir(
"MONOX");
970 TDirectory * gm_tsy_mono = gm_ts->mkdir(
"MONOY");
971 TDirectory * gm_tsz_mono = gm_ts->mkdir(
"MONOZ");
972 TDirectory * gp_trx_mono = gp_tr->mkdir(
"MONOX");
973 TDirectory * gp_try_mono = gp_tr->mkdir(
"MONOY");
974 TDirectory * gp_trz_mono = gp_tr->mkdir(
"MONOZ");
975 TDirectory * gp_rsx_mono = gp_rs->mkdir(
"MONOX");
976 TDirectory * gp_rsy_mono = gp_rs->mkdir(
"MONOY");
977 TDirectory * gp_rsz_mono = gp_rs->mkdir(
"MONOZ");
979 TDirectory * gp_tsx_stereo = gp_ts->mkdir(
"STEREOX");
980 TDirectory * gp_tsy_stereo = gp_ts->mkdir(
"STEREOY");
981 TDirectory * gp_tsz_stereo = gp_ts->mkdir(
"STEREOZ");
982 TDirectory * gm_tsx_stereo = gm_ts->mkdir(
"STEREOX");
983 TDirectory * gm_tsy_stereo = gm_ts->mkdir(
"STEREOY");
984 TDirectory * gm_tsz_stereo = gm_ts->mkdir(
"STEREOZ");
985 TDirectory * gp_trx_stereo = gp_tr->mkdir(
"STEREOX");
986 TDirectory * gp_try_stereo = gp_tr->mkdir(
"STEREOY");
987 TDirectory * gp_trz_stereo = gp_tr->mkdir(
"STEREOZ");
988 TDirectory * gp_rsx_stereo = gp_rs->mkdir(
"STEREOX");
989 TDirectory * gp_rsy_stereo = gp_rs->mkdir(
"STEREOY");
990 TDirectory * gp_rsz_stereo = gp_rs->mkdir(
"STEREOZ");
996 for (
int i=0;
i!=6;
i++)
997 for (
int j=0;
j!=9;
j++){
998 if (
i==0 &&
j>2)
break;
999 if (
i==1 &&
j>1)
break;
1000 if (
i==2 &&
j>3)
break;
1001 if (
i==3 &&
j>2)
break;
1002 if (
i==4 &&
j>5)
break;
1003 if (
i==5 &&
j>8)
break;
1006 title <<
"Chi2Increment_" <<
i+1 <<
"-" <<
j+1;
1012 title <<
"PullGP_X_" <<
i+1 <<
"-" << j+1 <<
"_ts";
1016 title <<
"PullGP_Y_" <<
i+1 <<
"-" << j+1 <<
"_ts";
1020 title <<
"PullGP_Z_" <<
i+1 <<
"-" << j+1 <<
"_ts";
1026 title <<
"PullGM_X_" <<
i+1 <<
"-" << j+1 <<
"_ts";
1030 title <<
"PullGM_Y_" <<
i+1 <<
"-" << j+1 <<
"_ts";
1034 title <<
"PullGM_Z_" <<
i+1 <<
"-" << j+1 <<
"_ts";
1040 title <<
"PullGP_X_" <<
i+1 <<
"-" << j+1 <<
"_tr";
1044 title <<
"PullGP_Y_" <<
i+1 <<
"-" << j+1 <<
"_tr";
1048 title <<
"PullGP_Z_" <<
i+1 <<
"-" << j+1 <<
"_tr";
1054 title <<
"PullGP_X_" <<
i+1 <<
"-" << j+1 <<
"_rs";
1058 title <<
"PullGP_Y_" <<
i+1 <<
"-" << j+1 <<
"_rs";
1062 title <<
"PullGP_Z_" <<
i+1 <<
"-" << j+1 <<
"_rs";
1065 if ( ((
i==2||
i==4)&&(j==0||j==1)) || (
i==3||
i==5) ){
1070 title <<
"PullGP_X_" <<
i+1 <<
"-" << j+1 <<
"_ts_mono";
1074 title <<
"PullGP_Y_" <<
i+1 <<
"-" << j+1 <<
"_ts_mono";
1078 title <<
"PullGP_Z_" <<
i+1 <<
"-" << j+1 <<
"_ts_mono";
1084 title <<
"PullGM_X_" <<
i+1 <<
"-" << j+1 <<
"_ts_mono";
1088 title <<
"PullGM_Y_" <<
i+1 <<
"-" << j+1 <<
"_ts_mono";
1092 title <<
"PullGM_Z_" <<
i+1 <<
"-" << j+1 <<
"_ts_mono";
1098 title <<
"PullGP_X_" <<
i+1 <<
"-" << j+1 <<
"_tr_mono";
1102 title <<
"PullGP_Y_" <<
i+1 <<
"-" << j+1 <<
"_tr_mono";
1106 title <<
"PullGP_Z_" <<
i+1 <<
"-" << j+1 <<
"_tr_mono";
1112 title <<
"PullGP_X_" <<
i+1 <<
"-" << j+1 <<
"_rs_mono";
1116 title <<
"PullGP_Y_" <<
i+1 <<
"-" << j+1 <<
"_rs_mono";
1120 title <<
"PullGP_Z_" <<
i+1 <<
"-" << j+1 <<
"_rs_mono";
1125 gp_tsx_stereo->cd();
1127 title <<
"PullGP_X_" <<
i+1 <<
"-" << j+1 <<
"_ts_stereo";
1129 gp_tsy_stereo->cd();
1131 title <<
"PullGP_Y_" <<
i+1 <<
"-" << j+1 <<
"_ts_stereo";
1133 gp_tsz_stereo->cd();
1135 title <<
"PullGP_Z_" <<
i+1 <<
"-" << j+1 <<
"_ts_stereo";
1139 gm_tsx_stereo->cd();
1141 title <<
"PullGM_X_" <<
i+1 <<
"-" << j+1 <<
"_ts_stereo";
1143 gm_tsy_stereo->cd();
1145 title <<
"PullGM_Y_" <<
i+1 <<
"-" << j+1 <<
"_ts_stereo";
1147 gm_tsz_stereo->cd();
1149 title <<
"PullGM_Z_" <<
i+1 <<
"-" << j+1 <<
"_ts_stereo";
1153 gp_trx_stereo->cd();
1155 title <<
"PullGP_X_" <<
i+1 <<
"-" << j+1 <<
"_tr_stereo";
1157 gp_try_stereo->cd();
1159 title <<
"PullGP_Y_" <<
i+1 <<
"-" << j+1 <<
"_tr_stereo";
1161 gp_trz_stereo->cd();
1163 title <<
"PullGP_Z_" <<
i+1 <<
"-" << j+1 <<
"_tr_stereo";
1167 gp_rsx_stereo->cd();
1169 title <<
"PullGP_X_" <<
i+1 <<
"-" << j+1 <<
"_rs_stereo";
1171 gp_rsy_stereo->cd();
1173 title <<
"PullGP_Y_" <<
i+1 <<
"-" << j+1 <<
"_rs_stereo";
1175 gp_rsz_stereo->cd();
1177 title <<
"PullGP_Z_" <<
i+1 <<
"-" << j+1 <<
"_rs_stereo";
1187 std::pair<LocalPoint,LocalVector>
1199 float scale = -localHit.
z() / dir.
z();
1209 return std::pair<LocalPoint,LocalVector>( projectedPos, localStripDir);
edm::Handle< TrackCandidateCollection > theTCCollection
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
T getParameter(std::string const &) const
std::pair< LocalPoint, LocalVector > projectHit(const PSimHit &, const StripGeomDetUnit *, const BoundPlane &)
virtual void beginRun(edm::Run &run, const edm::EventSetup &)
std::map< std::string, TH1F * > hPullGP_Y_tr_mono
std::map< std::string, TH1F * > hPullGP_X_rs_mono
std::map< std::string, TH1F * > hPullGP_Z_tr_stereo
virtual float stripAngle(float strip) const =0
edm::ESHandle< TransientTrackingRecHitBuilder > theBuilder
std::map< std::string, TH1F * > hPullGP_Z_ts_mono
LocalVector momentumAtEntry() const
The momentum of the track that produced the hit, at entry point.
std::map< std::string, TH1F * > hPullGM_X_ts_stereo
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
#define DEFINE_FWK_MODULE(type)
std::map< std::string, TH1F * > hPullGM_X_ts_mono
Sin< T >::type sin(const T &t)
TrajectorySeed const & seed() const
const CartesianTrajectoryError cartesianError() const
GlobalPoint globalPosition() const
std::map< std::string, TH1F * > hPullGP_Y_ts
std::map< std::string, TH1F * > hChi2Increment
std::pair< const_iterator, const_iterator > range
std::map< std::string, TH1F * > hPullGP_Y_ts_stereo
std::map< std::string, TH1F * > hPullGP_Z_rs
virtual const StripTopology & specificTopology() const
Returns a reference to the strip proxy topology.
edm::ESHandle< Propagator > thePropagator
std::map< std::string, TH1F * > hPullGP_Y_rs
std::vector< ConstRecHitPointer > RecHitContainer
std::map< std::string, TH1F * > hPullGP_X_tr_stereo
virtual float strip(const LocalPoint &) const =0
std::map< std::string, TH1F * > hPullGP_Z_rs_stereo
PTrajectoryStateOnDet const & trajectoryStateOnDet() const
TrackerHitAssociator * hitAssociator
ROOT::Math::SMatrix< double, 3, 3, ROOT::Math::MatRepSym< double, 3 > > AlgebraicSymMatrix33
std::map< std::string, TH1F * > hPullGP_Y_tr
Local3DPoint localPosition() const
std::string propagatorName
LocalPoint toLocal(const GlobalPoint &gp) const
std::map< std::string, TH1F * > hPullGP_X_rs_stereo
Cos< T >::type cos(const T &t)
std::map< std::string, TH1F * > hPullGP_Y_tr_stereo
TransientTrackingRecHit::ConstRecHitPointer CTTRHp
std::map< std::string, TH1F * > hPullGP_Y_rs_mono
unsigned int detId() const
std::map< std::string, TH1F * > hPullGM_Z_ts
std::map< std::string, TH1F * > hPullGM_Y_ts_mono
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
std::map< std::string, TH1F * > hPullGP_Z_rs_mono
std::map< std::string, TH1F * > hPullGP_X_ts_stereo
std::map< std::string, TH1F * > hPullGP_Y_rs_stereo
const AlgebraicSymMatrix66 & matrix() const
edm::ESHandle< TrackerGeometry > theG
edm::ESHandle< TrajectoryFitter > fit
LocalVector localDirection() const
Obsolete. Same as momentumAtEntry().unit(), for backward compatibility.
std::map< std::string, TH1F * > hPullGM_Z_ts_stereo
TrajectoryStateOnSurface TSOS
const GlobalError position() const
Position error submatrix.
virtual void analyze(const edm::Event &, const edm::EventSetup &)
T const * product() const
std::map< std::string, TH1F * > hPullGP_Z_tr
std::map< std::string, TH1F * > hPullGP_Y_ts_mono
unsigned short processType() const
std::map< std::string, TH1F * > hPullGM_Y_ts_stereo
edm::ESHandle< MagneticField > theMF
const edm::ParameterSet conf_
std::map< std::string, TH1F * > hPullGP_X_tr_mono
GlobalVector globalMomentum() const
const BoundPlane & surface() const
The nominal surface of the GeomDet.
std::map< std::string, TH1F * > hPullGM_X_ts
std::map< std::string, TH1F * > hPullGP_X_ts
std::vector< PSimHit > associateHit(const TrackingRecHit &thit)
std::map< std::string, TH1F * > hPullGP_Z_ts
TestHits(const edm::ParameterSet &)
std::map< std::string, TH1F * > hPullGP_Z_tr_mono
std::map< std::string, TH1F * > hPullGP_X_ts_mono
const PositionType & position() const
std::map< std::string, TH1F * > hPullGM_Z_ts_mono
std::map< std::string, TH1F * > hPullGM_Y_ts
std::map< std::string, TH1F * > hPullGP_X_tr
std::map< std::string, TH1F * > hPullGP_Z_ts_stereo
std::map< std::string, TH1F * > hPullGP_X_rs