Changeset a95da74 in git
- Timestamp:
- Apr 28, 2021, 9:35:32 AM (4 years ago)
- Branches:
- master
- Children:
- d4fb268
- Parents:
- 4739226
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
cards/delphes_card_IDEA.tcl
r4739226 ra95da74 24 24 TrackMergerPre 25 25 TrackSmearing 26 ClusterCounting 26 27 27 28 TrackMerger … … 161 162 162 163 module TrackCovariance TrackSmearing { 164 163 165 set InputArray TrackMergerPre/tracks 164 166 set OutputArray tracks 165 167 166 167 set InputArray TrackMergerPre/tracks168 set OutputArray tracks169 170 set Bz 2.0171 172 168 ## minimum number of hits to accept a track 173 169 set NMinHits 6 170 171 ## magnetic field 172 set Bz $B 174 173 175 174 ## uses https://raw.githubusercontent.com/selvaggi/FastTrackCovariance/master/GeoIDEA_BASE.txt … … 343 342 } 344 343 345 set Bz $B 346 } 344 } 345 346 ################### 347 # Cluster Counting 348 ################### 349 350 module ClusterCounting ClusterCounting { 351 352 add InputArray TrackSmearing/tracks 353 set OutputArray tracks 354 355 set Bz $B 356 357 set Rmin 0.35 358 set Rmax 2.0 359 set Zmin -2.0 360 set Zmax 2.0 361 362 # gas mix option: 0 363 # 0: Helium 90% - Isobutane 10% 364 # 1: Helium 100% 365 # 2: Argon 50% - Ethane 50% 366 # 3: Argon 100% 367 368 set GasOption 0 369 370 } 371 372 347 373 348 374 ############## … … 352 378 module Merger TrackMerger { 353 379 # add InputArray InputArray 354 add InputArray TrackSmearing/tracks380 add InputArray ClusterCounting/tracks 355 381 set OutputArray tracks 356 382 } -
classes/DelphesClasses.cc
r4739226 ra95da74 230 230 Phi(0), ErrorPhi(0), 231 231 Xd(0), Yd(0), Zd(0), 232 Nclusters(0.0), 232 233 TrackResolution(0), 233 234 NCharged(0), … … 406 407 object.Yd = Yd; 407 408 object.Zd = Zd; 409 object.Nclusters = Nclusters; 408 410 object.TrackResolution = TrackResolution; 409 411 object.NCharged = NCharged; … … 538 540 Yd = 0.0; 539 541 Zd = 0.0; 542 Nclusters = 0.0; 540 543 TrackResolution = 0.0; 541 544 NCharged = 0; -
classes/DelphesClasses.h
r4739226 ra95da74 461 461 Float_t D0; // track transverse impact parameter 462 462 Float_t DZ; // track longitudinal impact parameter 463 Float_t Nclusters; // Number of ionization clusters 463 464 464 465 Float_t ErrorP; // track momentum error … … 565 566 Float_t D0; // track transverse impact parameter 566 567 Float_t DZ; // track longitudinal impact parameter 568 Float_t Nclusters; // Number of ionization clusters 567 569 568 570 Float_t ErrorP; // track momentum error … … 694 696 Float_t ErrorPhi; 695 697 698 Float_t Nclusters; // Number of ionization clusters 699 696 700 Float_t Xd; 697 701 Float_t Yd; -
external/TrackCovariance/TrkUtil.cc
r4739226 ra95da74 233 233 } 234 234 // 235 236 // 237 void TrkUtil::SetBfield(Double_t Bz) 238 { 239 fBz = Bz; 240 } 241 235 242 // Setup chamber volume 236 243 void TrkUtil::SetDchBoundaries(Double_t Rmin, Double_t Rmax, Double_t Zmin, Double_t Zmax) … … 267 274 // << ", C= " << C << ", z0= " << z0 << ", ct= " << ct << std::endl; 268 275 // 269 // Track length per unit phase change 276 // Track length per unit phase change 270 277 Double_t Scale = sqrt(1.0 + ct*ct) / (2.0*TMath::Abs(C)); 271 278 // 272 279 // Find intersections with chamber boundaries 273 280 // 274 Double_t phRin = 0.0; // phase of inner cylinder 281 Double_t phRin = 0.0; // phase of inner cylinder 275 282 Double_t phRin2= 0.0; // phase of inner cylinder intersection (2nd branch) 276 283 Double_t phRhi = 0.0; // phase of outer cylinder intersection … … 287 294 //std::cout << "Rin intersection: ph = " << ph<<", z= "<<z << std::endl; 288 295 289 if (z < fZmax && z > fZmin) phRin = TMath::Abs(ph); // Intersection inside chamber volume 296 if (z < fZmax && z > fZmin) phRin = TMath::Abs(ph); // Intersection inside chamber volume 290 297 // 291 298 // Include second branch of loopers … … 301 308 Double_t ph = 2 * asin(C*sqrt((fRmax*fRmax - D*D) / (1.0 + 2.0*C*D))); 302 309 Double_t z = z0 + ct*ph / (2.0*C); 303 if (z < fZmax && z > fZmin) phRhi = TMath::Abs(ph); // Intersection inside chamber volume 310 if (z < fZmax && z > fZmin) phRhi = TMath::Abs(ph); // Intersection inside chamber volume 304 311 } 305 312 // ... with left wall … … 309 316 Double_t ph = 2.0*C*Zdir; 310 317 Double_t Rint = sqrt(D*D + (1.0 + 2.0*C*D)*pow(sin(ph / 2), 2) / (C*C)); 311 if (Rint < fRmax && Rint > fRmin) phZmn = TMath::Abs(ph); // Intersection inside chamber volume 318 if (Rint < fRmax && Rint > fRmin) phZmn = TMath::Abs(ph); // Intersection inside chamber volume 312 319 } 313 320 // ... with right wall … … 317 324 Double_t ph = 2.0*C*Zdir; 318 325 Double_t Rint = sqrt(D*D + (1.0 + 2.0*C*D)*pow(sin(ph / 2), 2) / (C*C)); 319 if (Rint < fRmax && Rint > fRmin) phZmx = TMath::Abs(ph); // Intersection inside chamber volume 326 if (Rint < fRmax && Rint > fRmin) phZmx = TMath::Abs(ph); // Intersection inside chamber volume 320 327 } 321 328 // … … 390 397 // 391 398 // 392 Double_t TrkUtil::Nclusters(Double_t begam) 399 Double_t TrkUtil::Nclusters(Double_t begam) 393 400 { 394 401 Int_t Opt = fGasSel; … … 465 472 { 466 473 case 0: std::copy(ncl_He_Iso, ncl_He_Iso + Npt, ncl); // He-Isobutane 467 break; 474 break; 468 475 case 1: std::copy(ncl_He, ncl_He + Npt, ncl); // pure He 469 476 break; … … 493 500 TVectorD coeff = Xval * y; 494 501 Double_t interp = coeff[0] + coeff[1] * begam + coeff[2] * begam * begam; 495 //std::cout << "val1= (" <<x(0)<<", "<< y(0) << "), val2= (" 496 // <<x(1)<<", "<< y(1) << "), val3= (" 502 //std::cout << "val1= (" <<x(0)<<", "<< y(0) << "), val2= (" 503 // <<x(1)<<", "<< y(1) << "), val3= (" 497 504 // <<x(2)<<", "<< y(2) 498 505 // << "), result= (" <<begam<<", "<< interp<<")" << std::endl; -
external/TrackCovariance/TrkUtil.h
r4739226 ra95da74 25 25 // Service routines 26 26 // 27 void SetBfield(Double_t Bz) { fBz = Bz; }28 27 TVectorD XPtoPar(TVector3 x, TVector3 p, Double_t Q); 29 28 TVector3 ParToP(TVectorD Par); … … 54 53 Double_t c = 2.99792458e8; // speed of light m/sec 55 54 //return TMath::C()*1.0e-9; // Incompatible with root5 56 return c*1.0e-9; // Reduced speed of light 55 return c*1.0e-9; // Reduced speed of light 57 56 } 58 57 // … … 71 70 // Cluster counting in gas 72 71 // 73 // Define gas volume (units = meters) 72 void SetBfield(Double_t Bz); 73 // Define gas volume (units = meters) 74 74 void SetDchBoundaries(Double_t Rmin, Double_t Rmax, Double_t Zmin, Double_t Zmax); 75 75 // Gas mixture selection -
modules/ModulesLinkDef.h
r4739226 ra95da74 37 37 #include "modules/TrackSmearing.h" 38 38 #include "modules/TrackCovariance.h" 39 #include "modules/ClusterCounting.h" 39 40 #include "modules/ImpactParameterSmearing.h" 40 41 #include "modules/TimeSmearing.h" … … 94 95 #pragma link C++ class TrackSmearing+; 95 96 #pragma link C++ class TrackCovariance+; 97 #pragma link C++ class ClusterCounting+; 96 98 #pragma link C++ class ImpactParameterSmearing+; 97 99 #pragma link C++ class TimeSmearing+; -
modules/TreeWriter.cc
r4739226 ra95da74 355 355 entry->D0 = candidate->D0; 356 356 entry->DZ = candidate->DZ; 357 entry->Nclusters = candidate->Nclusters; 357 358 358 359 entry->ErrorP = candidate->ErrorP; … … 507 508 entry->D0 = candidate->D0; 508 509 entry->DZ = candidate->DZ; 510 entry->Nclusters = candidate->Nclusters; 509 511 510 512 entry->ErrorP = candidate->ErrorP;
Note:
See TracChangeset
for help on using the changeset viewer.