Changeset 294
- Timestamp:
- Feb 23, 2007, 2:22:42 PM (18 years ago)
- Location:
- ELYSE/HEAD/source
- Files:
-
- 2 deleted
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
ELYSE/HEAD/source/Callbacks/Callbacks.cxx
r286 r294 105 105 data_visualize(session); 106 106 107 data_collect(session,"PV","name==\" SensiVol\"");107 data_collect(session,"PV","name==\"GlassVol\""); 108 108 data_visualize(session); 109 109 -
ELYSE/HEAD/source/DetectorConstruction.cxx
r286 r294 25 25 26 26 //ELYSE 27 #include "ELYSE/TrappingVolume.hh"27 //#include "ELYSE/TrappingVolume.hh" 28 28 #include "ELYSE/DetectorMessenger.hh" 29 29 #include "ELYSE/Cast.hh" … … 42 42 //----------------- 43 43 44 aTrappingVolume = 0;44 // aTrappingVolume = 0; 45 45 46 46 //----------------- … … 54 54 //tyvek sheet thickness 55 55 tyvek_thickness = 1.0*mm; 56 //glass tank thickness 57 glass_thickness = 5.0*mm; 56 58 57 59 58 60 updated = true; 59 60 //Initialize the optical surface61 OpWaterTyvekSurface = 0;62 OpWaterAirSurface = 0;63 64 61 65 62 //----------------- … … 86 83 87 84 //----------------------- 88 // A box of water delimited by a tyvek sheet and surrounding by a air volume sensitive85 // A box of water delimited by a tyvek sheet and surrounding by a glass tank and then a air volume sensitive 89 86 //----------------------- 90 87 … … 96 93 97 94 98 //a volume sensitive to trap every particles... 99 G4Box* solidSensiVolFull = new G4Box("SensiVolFull", 100 water_x/2.+ 2.*tyvek_thickness, 101 water_y/2.+ 2.*tyvek_thickness, 102 water_z/2.+ 2.*tyvek_thickness 95 G4Box* solidGlassVol = new G4Box("GlassVol", 96 water_x/2.+ glass_thickness, 97 water_y/2.+ glass_thickness, 98 water_z/2.+ glass_thickness 103 99 ); 104 100 105 101 106 G4Box* solidTyvek Full = new G4Box("TyvekFull",102 G4Box* solidTyvek = new G4Box("TyvekSheet", 107 103 water_x/2.+tyvek_thickness, 108 104 water_y/2.+tyvek_thickness, … … 114 110 115 111 116 G4SubtractionSolid* solidSensiVol = new G4SubtractionSolid("SensiVol",solidSensiVolFull,solidTyvekFull); 112 //JEC 22/2/07 test to avoid Substraction and use simple immersion 113 // G4SubtractionSolid* solidGlassVol = new G4SubtractionSolid("GlassVol",solidGlassFull,solidTyvekFull); 117 114 118 115 //Make the tyvek volume as an subtraction to define a proper tyvek volume for the oprtical surface 119 116 //overwise we would have done a tyvek volume and place inside a water volume... 120 G4SubtractionSolid* solidTyvek = new G4SubtractionSolid("TyvekSheet",solidTyvekFull,solidWaterTank);117 //G4SubtractionSolid* solidTyvek = new G4SubtractionSolid("TyvekSheet",solidTyvekFull,solidWaterTank); 121 118 122 119 … … 141 138 142 139 143 G4LogicalVolume* logicSensiVol 144 = new G4LogicalVolume(solidSensiVol,G4Material::GetMaterial("Glass"),"SensiVol",0,0,0); 145 146 147 G4VPhysicalVolume* physicSensiVol 148 = new G4PVPlacement(0,G4ThreeVector(),logicSensiVol,"SensiVol", 149 logicExpHall,false,0); 140 G4LogicalVolume* logicGlassVol 141 = new G4LogicalVolume(solidGlassVol,G4Material::GetMaterial("Glass"),"GlassVol",0,0,0); 142 143 144 new G4PVPlacement(0,G4ThreeVector(),logicGlassVol,"GlassVol", 145 logicExpHall,false,0); 150 146 151 147 … … 153 149 = new G4LogicalVolume(solidTyvek,G4Material::GetMaterial("Tyvek"),"TyvekSheet",0,0,0); 154 150 155 G4VPhysicalVolume* physicTyvek 156 = new G4PVPlacement(0,G4ThreeVector(),logicTyvek,"TyvekSheet", 157 logicExpHall,false,0); 151 new G4PVPlacement(0,G4ThreeVector(),logicTyvek,"TyvekSheet", 152 logicGlassVol,false,0); 158 153 159 154 G4LogicalVolume* logicWaterTank … … 161 156 162 157 163 G4VPhysicalVolume* physicWaterTank 164 = new G4PVPlacement(0,G4ThreeVector(),logicWaterTank,"waterTank", 165 logicExpHall,false,0); 166 167 168 //introduce the interfaces Water-Tyvek and Tyvek-Glass for optical photons 169 new G4LogicalBorderSurface("waterTyvekInterface", 170 physicWaterTank,physicTyvek,OpWaterTyvekSurface); 171 172 new G4LogicalBorderSurface("tyvekGlassInterface", 173 physicTyvek,physicSensiVol,OpTyvekGlassSurface); 158 new G4PVPlacement(0,G4ThreeVector(),logicWaterTank,"waterTank", 159 logicTyvek,false,0); 160 161 162 G4LogicalSkinSurface* waterTyvekInter = new G4LogicalSkinSurface("waterTyvekInterface", 163 logicWaterTank,OpWaterTyvekSurface); 164 //Dump 165 if(waterTyvekInter->GetLogicalVolume() == logicWaterTank) 166 G4cout << "(JEC) water-Tyvek x-check logical: Ok" << G4endl; 167 ((G4OpticalSurface*) 168 (G4LogicalSkinSurface::GetSurface(logicWaterTank)->GetSurfaceProperty()))->DumpInfo(); 169 170 171 //JEC 22/2/07 use a Skin envelop for the transition Tyvek-Glass 172 //JEC Not sure that for the moment it is useful: To be Fixed 173 new G4LogicalSkinSurface("waterTyvekInterface", 174 logicWaterTank,OpTyvekGlassSurface); 175 174 176 175 177 //-------------- … … 177 179 //-------------- 178 180 179 G4SDManager* SDman = G4SDManager::GetSDMpointer();180 181 if (!aTrappingVolume) {182 //JEC 25/1/06 add the "this" pointer, so WCSD can access to the PMT location wo static functions183 aTrappingVolume = new TrappingVolume( "/ELYSE/TrappingVolume", this );184 SDman->AddNewDetector( aTrappingVolume );185 }186 logicSensiVol->SetSensitiveDetector( aTrappingVolume );181 // G4SDManager* SDman = G4SDManager::GetSDMpointer(); 182 183 // if (!aTrappingVolume) { 184 // //JEC 25/1/06 add the "this" pointer, so WCSD can access to the PMT location wo static functions 185 // aTrappingVolume = new TrappingVolume( "/ELYSE/TrappingVolume", this ); 186 // SDman->AddNewDetector( aTrappingVolume ); 187 // } 188 // logicGlassVol->SetGlasstiveDetector( aTrappingVolume ); 187 189 188 190 … … 275 277 276 278 //---Tyvek 277 //JEC : 9/2/07 as MEMPHYS/SK::Blacksheet in a version 0278 279 //JEC + SDC: 9/2/07 use Auger Liner definition 279 280 a= 12.01*g/mole; … … 422 423 Water->SetMaterialPropertiesTable(myMPT1); 423 424 424 G4cout << "ConstructMaterial: Dump Water properties" << G4endl;425 myMPT1->DumpTable();425 // G4cout << "ConstructMaterial: Dump Water properties" << G4endl; 426 // myMPT1->DumpTable(); 426 427 427 428 … … 468 469 G4MaterialPropertiesTable *myMPT2 = new G4MaterialPropertiesTable(); 469 470 myMPT2->AddProperty("RINDEX", ENERGY_water, RINDEX_air, NUMENTRIES_general); 470 // M Fechner : what is that ?????471 // myMPT2->AddProperty("ABSLENGTH", ENERGY_water, BLACKABS_blacksheet, NUMENTRIES_general);472 // JEC: replace BLACKABS_blacksheet by ABSORPTION_air473 471 myMPT2->AddProperty("ABSLENGTH", ENERGY_water, ABSORPTION_air, NUMENTRIES_general); 474 472 myMPT2->AddProperty("RAYLEIGH",ENERGY_water, RAYLEIGH_air, NUMENTRIES_general); … … 479 477 //---------------- Tyvek 480 478 //-------------- 481 //JEC 9/2/07 : as Blacksheet in a version 0482 479 //JEC +SDC 9/2/07: introduce the Auger simulation of the liner 483 480 … … 489 486 3.22*eV , 3.31*eV , 3.4*eV , 3.49*eV , 3.59*eV , 3.7*eV , 3.81*eV , 3.94*eV , 4.07*eV , 4.20*eV }; 490 487 491 G4double ABSORPTION_Tyvek[NUMENTRIES_tyvek] = 492 { 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 493 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 494 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m }; 495 496 G4MaterialPropertiesTable *myMPT4 = new G4MaterialPropertiesTable(); 497 myMPT4->AddProperty("ABSLENGTH", ENERGY_tyvek, ABSORPTION_Tyvek, NUMENTRIES_tyvek); 498 Tyvek->SetMaterialPropertiesTable(myMPT4); 488 // //JEC 22/2/07 : This Absorbtion may be not useful ??? To be fixed 489 // G4double ABSORPTION_Tyvek[NUMENTRIES_tyvek] = 490 // { 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 491 // 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 492 // 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m , 10.0*m }; 493 494 // //JEC 22/2/07 ad hoc to make non 0 RINDEX in the OpBoundary process 495 // //see Web http://www.mfa.org/_cameo/frontend/material_print.asp?name=polyethylene&type=description 496 // G4double RINDEX_Tyvek[NUMENTRIES_tyvek] = 497 // { 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 498 // 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 499 // 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 , 1.52 }; 500 501 // G4MaterialPropertiesTable *myMPT4 = new G4MaterialPropertiesTable(); 502 // myMPT4->AddProperty("ABSLENGTH", ENERGY_tyvek, ABSORPTION_Tyvek, NUMENTRIES_tyvek); 503 // myMPT4->AddProperty("RINDEX" , ENERGY_tyvek, RINDEX_Tyvek , NUMENTRIES_tyvek); 504 505 // Tyvek->SetMaterialPropertiesTable(myMPT4); 499 506 500 507 … … 503 510 //-------------- 504 511 512 // G4double RINDEX_glass[NUMENTRIES_general] = 513 // { 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 514 // 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 515 // 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 516 // 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 517 // 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 518 // 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 519 // 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 520 // 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 521 // 1.600, 1.600 }; 522 523 // JEC 22/2/07 test: 1.6 a 2. for a tracking test... 505 524 G4double RINDEX_glass[NUMENTRIES_general] = 506 525 { 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, … … 552 571 OpWaterTyvekSurface->SetType(dielectric_dielectric); 553 572 OpWaterTyvekSurface->SetModel(unified); 554 OpWaterTyvekSurface->SetFinish(groundbackpainted); 573 //OpWaterTyvekSurface->SetFinish(groundbackpainted); 574 //JEC why not groundfrontpainted instead? 22/2/07 575 OpWaterTyvekSurface->SetFinish(groundfrontpainted); 555 576 OpWaterTyvekSurface->SetSigmaAlpha( 0.17 ); 556 577 557 578 //JEC + SDC 9/2/07 : adapted from Auger 558 const G4int NUMENTRIES_water_tyvek = 3; 559 G4double PP[NUMENTRIES_water_tyvek] = { 2.08*eV, 3.0*eV, 4.2*eV }; 560 G4double RINDEX_tyvek[NUMENTRIES_water_tyvek] = { 0.0 , 0.0 , 0.0 }; //JEC ???? 561 G4double SPECULARLOBECONSTANT[NUMENTRIES_water_tyvek] = { 0.2 , 0.2 , 0.2 }; 562 G4double SPECULARSPIKECONSTANT[NUMENTRIES_water_tyvek] = { 0.0 , 0.0 , 0.0 }; 563 G4double BACKSCATTERCONSTANT[NUMENTRIES_water_tyvek] = { 0.0 , 0.0 , 0.0 }; 564 565 //JEC 9/2/07 from MEMPHYS/SK Blacksheet: for sure should be modified! 579 580 // const G4int NUMENTRIES_water_tyvek = 3; 581 // G4double PP[NUMENTRIES_water_tyvek] = { 2.08*eV, 3.0*eV, 4.2*eV }; 582 //JEC 23/2/07 no more RINDEX useful for groundfrontpainted surface 583 //G4double RINDEX2_tyvek[NUMENTRIES_water_tyvek] = { 0.0 , 0.0 , 0.0 }; //JEC ???? 584 585 //JEC 23/2/07 extend to the entire energy domain of the REFLECTIVITY 586 //G4double SPECULARLOBECONSTANT[NUMENTRIES_water_tyvek] = { 0.2 , 0.2 , 0.2 }; 587 G4double SPECULARLOBECONSTANT_tyvek[NUMENTRIES_tyvek] = 588 { 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 589 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 590 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 , 0.2 }; 591 592 593 //JEC 23/2/07 by default = 0 so unuseful 594 //G4double SPECULARSPIKECONSTANT[NUMENTRIES_water_tyvek] = { 0.0 , 0.0 , 0.0 }; 595 //G4double BACKSCATTERCONSTANT[NUMENTRIES_water_tyvek] = { 0.0 , 0.0 , 0.0 }; 566 596 //JEC + SDC 9/2/07 adapted from Auger 597 567 598 G4double REFLECTIVITY_tyvek[NUMENTRIES_tyvek] = 568 599 { 0.968816 , 0.968427 , 0.967940 , 0.967357 , 0.967065 , 0.966870 , 0.966870 , 0.967162 , 0.967649 , 0.968524 , … … 572 603 573 604 G4MaterialPropertiesTable *myST1 = new G4MaterialPropertiesTable(); 574 myST1->AddProperty("RINDEX", ENERGY_tyvek, RINDEX_tyvek, NUMENTRIES_tyvek); 575 myST1->AddProperty("SPECULARLOBECONSTANT", PP, SPECULARLOBECONSTANT, NUMENTRIES_water_tyvek); 576 myST1->AddProperty("SPECULARSPIKECONSTANT", PP, SPECULARSPIKECONSTANT, NUMENTRIES_water_tyvek); 577 myST1->AddProperty("BACKSCATTERCONSTANT", PP, BACKSCATTERCONSTANT, NUMENTRIES_water_tyvek); 605 //myST1->AddProperty("RINDEX", ENERGY_tyvek, RINDEX2_tyvek, NUMENTRIES_water_tyvek); 606 // myST1->AddProperty("SPECULARLOBECONSTANT", PP, SPECULARLOBECONSTANT, NUMENTRIES_water_tyvek); 607 myST1->AddProperty("SPECULARLOBECONSTANT", ENERGY_tyvek, SPECULARLOBECONSTANT_tyvek, NUMENTRIES_tyvek); 608 //myST1->AddProperty("SPECULARSPIKECONSTANT", PP, SPECULARSPIKECONSTANT, NUMENTRIES_water_tyvek); 609 //myST1->AddProperty("BACKSCATTERCONSTANT", PP, BACKSCATTERCONSTANT, NUMENTRIES_water_tyvek); 578 610 myST1->AddProperty("REFLECTIVITY", ENERGY_tyvek, REFLECTIVITY_tyvek, NUMENTRIES_tyvek); 579 611 OpWaterTyvekSurface->SetMaterialPropertiesTable(myST1); … … 585 617 //JEC 13/2/07 this is a stopping surface as the photocathode in MEMPHYS 586 618 // reflectivity = 0 && efficiency = 100% => absorption 619 //JEC 23/2/07 certainly unuseful since the water-tyvek is groundfrontpainted it do reflection or absorption so 620 // no optical photon can penetrate the Tyvek sheet. To be Fixed 587 621 588 622 OpTyvekGlassSurface = new G4OpticalSurface("TyvekGlassSurface"); … … 591 625 OpTyvekGlassSurface->SetFinish(polished); 592 626 const G4int NUM = 2; 627 G4double PP_tyvekglass[NUM] = { 1.0*eV, 5.0*eV }; 593 628 G4double REFLECTIVITY_tyvekglass[NUM] = { 0.0, 0.0 }; 594 629 G4double EFFICIENCY_tyvekglass[NUM] = { 1.0, 1.0 }; 595 630 596 631 G4MaterialPropertiesTable *myST2 = new G4MaterialPropertiesTable(); 597 myST2->AddProperty("REFLECTIVITY", PP , REFLECTIVITY_tyvekglass, NUM);598 myST2->AddProperty("EFFICIENCY", PP , EFFICIENCY_tyvekglass, NUM);632 myST2->AddProperty("REFLECTIVITY", PP_tyvekglass, REFLECTIVITY_tyvekglass, NUM); 633 myST2->AddProperty("EFFICIENCY", PP_tyvekglass, EFFICIENCY_tyvekglass, NUM); 599 634 OpTyvekGlassSurface->SetMaterialPropertiesTable(myST2); 600 635 601 //------------------602 //Water - Air603 //------------------604 605 //JEC: 9/2/07 certainly from a G4 novice exercice ==> should be clarified606 OpWaterAirSurface = new G4OpticalSurface("WaterAirSurface");607 OpWaterAirSurface->SetType(dielectric_dielectric);608 OpWaterAirSurface->SetFinish(ground);609 OpWaterAirSurface->SetModel(unified);610 611 const G4int num_WaterAir = 2;612 G4double Ephoton_WaterAir[num_WaterAir] = {2.038*eV, 4.144*eV};613 G4double RefractiveIndex_WaterAir[num_WaterAir] = {1.35, 1.40};614 G4double SpecularLobe_WaterAir[num_WaterAir] = {0.3, 0.3};615 G4double SpecularSpike_WaterAir[num_WaterAir] = {0.2, 0.2};616 G4double Backscatter_WaterAir[num_WaterAir] = {0.2, 0.2};617 618 G4MaterialPropertiesTable* myST11 = new G4MaterialPropertiesTable();619 620 myST11->AddProperty("RINDEX", Ephoton_WaterAir, RefractiveIndex_WaterAir, num_WaterAir);621 myST11->AddProperty("SPECULARLOBECONSTANT", Ephoton_WaterAir, SpecularLobe_WaterAir, num_WaterAir);622 myST11->AddProperty("SPECULARSPIKECONSTANT", Ephoton_WaterAir, SpecularSpike_WaterAir, num_WaterAir);623 myST11->AddProperty("BACKSCATTERCONSTANT", Ephoton_WaterAir, Backscatter_WaterAir, num_WaterAir);624 625 OpWaterAirSurface->SetMaterialPropertiesTable(myST11);636 // //------------------ 637 // //Water - Air 638 // //------------------ 639 640 // //JEC: 9/2/07 certainly from a G4 novice exercice ==> should be clarified 641 // OpWaterAirSurface = new G4OpticalSurface("WaterAirSurface"); 642 // OpWaterAirSurface->SetType(dielectric_dielectric); 643 // OpWaterAirSurface->SetFinish(ground); 644 // OpWaterAirSurface->SetModel(unified); 645 646 // const G4int num_WaterAir = 2; 647 // G4double Ephoton_WaterAir[num_WaterAir] = {2.038*eV, 4.144*eV}; 648 // G4double RefractiveIndex_WaterAir[num_WaterAir] = {1.35, 1.40}; 649 // G4double SpecularLobe_WaterAir[num_WaterAir] = {0.3, 0.3}; 650 // G4double SpecularSpike_WaterAir[num_WaterAir] = {0.2, 0.2}; 651 // G4double Backscatter_WaterAir[num_WaterAir] = {0.2, 0.2}; 652 653 // G4MaterialPropertiesTable* myST11 = new G4MaterialPropertiesTable(); 654 655 // myST11->AddProperty("RINDEX", Ephoton_WaterAir, RefractiveIndex_WaterAir, num_WaterAir); 656 // myST11->AddProperty("SPECULARLOBECONSTANT", Ephoton_WaterAir, SpecularLobe_WaterAir, num_WaterAir); 657 // myST11->AddProperty("SPECULARSPIKECONSTANT", Ephoton_WaterAir, SpecularSpike_WaterAir, num_WaterAir); 658 // myST11->AddProperty("BACKSCATTERCONSTANT", Ephoton_WaterAir, Backscatter_WaterAir, num_WaterAir); 659 660 // OpWaterAirSurface->SetMaterialPropertiesTable(myST11); 626 661 }//ConstructMaterials 627 662 -
ELYSE/HEAD/source/EventAction.cxx
r286 r294 36 36 #include "ELYSE/RunAction.hh" 37 37 #include "ELYSE/PrimaryGeneratorAction.hh" 38 #include "ELYSE/TrappVolHit.hh"38 //#include "ELYSE/TrappVolHit.hh" 39 39 #include "ELYSE/DetectorConstruction.hh" 40 40 … … 347 347 // Get Hit Collection 348 348 // -------------------- 349 350 G4SDManager* SDman = G4SDManager::GetSDMpointer(); //JEC FIXME: use data member 351 352 // Get Hit collection of this event 353 G4HCofThisEvent* HCE = evt->GetHCofThisEvent(); 354 TrappVolHitsCollection* TrappVolHC = 0; 355 356 AIDA::ITuple* hit = eventTuple->getTuple(6); //hit 357 G4int nHits=0; 358 359 if (HCE) { 360 G4String name = "TrappingVolume"; //see TrappingVolume.cxx Ctor 361 G4int collectionID = SDman->GetCollectionID(name); 362 TrappVolHC = (TrappVolHitsCollection*)HCE->GetHC(collectionID); 363 } 364 365 if (TrappVolHC) { 366 367 nHits = TrappVolHC->entries(); 368 eventTuple->fill(5, nHits); //nHits 369 370 TrappVolHit* aHit; 371 372 for (G4int i=0; i<nHits ;i++) { 373 aHit = (*TrappVolHC)[i]; 374 375 //dump 376 aHit->Print(); 377 378 hit->fill(0,aHit->GetTime()); //time of hit creation 379 hit->fill(1,aHit->GetEtot()); //Total energy of the particle creating the hit 380 hit->fill(2,aHit->GetCoordinates().x()); //position of the hit 381 hit->fill(3,aHit->GetCoordinates().y()); 382 hit->fill(4,aHit->GetCoordinates().z()); 383 hit->fill(5,aHit->GetTrkId()); //Id of the particle 384 hit->fill(6,aHit->GetParentId()); //Id of the parent of the particle 385 hit->fill(7,aHit->GetPDGEncoding()); //PDG code of the particle 386 hit->fill(8,aHit->GetEdep()); //Energy deposit 387 388 hit->addRow(); 389 }//loop on hits 390 }//Hit container 349 //JEC 22/2/07 not yet available 350 351 // G4SDManager* SDman = G4SDManager::GetSDMpointer(); //JEC FIXME: use data member 352 353 // // Get Hit collection of this event 354 // G4HCofThisEvent* HCE = evt->GetHCofThisEvent(); 355 // TrappVolHitsCollection* TrappVolHC = 0; 356 357 // AIDA::ITuple* hit = eventTuple->getTuple(6); //hit 358 // G4int nHits=0; 359 360 // if (HCE) { 361 // G4String name = "TrappingVolume"; //see TrappingVolume.cxx Ctor 362 // G4int collectionID = SDman->GetCollectionID(name); 363 // TrappVolHC = (TrappVolHitsCollection*)HCE->GetHC(collectionID); 364 // } 365 366 // if (TrappVolHC) { 367 368 // nHits = TrappVolHC->entries(); 369 // eventTuple->fill(5, nHits); //nHits 370 371 // TrappVolHit* aHit; 372 373 // for (G4int i=0; i<nHits ;i++) { 374 // aHit = (*TrappVolHC)[i]; 375 376 // //dump 377 // aHit->Print(); 378 379 // hit->fill(0,aHit->GetTime()); //time of hit creation 380 // hit->fill(1,aHit->GetEtot()); //Total energy of the particle creating the hit 381 // hit->fill(2,aHit->GetCoordinates().x()); //position of the hit 382 // hit->fill(3,aHit->GetCoordinates().y()); 383 // hit->fill(4,aHit->GetCoordinates().z()); 384 // hit->fill(5,aHit->GetTrkId()); //Id of the particle 385 // hit->fill(6,aHit->GetParentId()); //Id of the parent of the particle 386 // hit->fill(7,aHit->GetPDGEncoding()); //PDG code of the particle 387 // hit->fill(8,aHit->GetEdep()); //Energy deposit 388 389 // hit->addRow(); 390 // }//loop on hits 391 // }//Hit container 391 392 392 393 //Save the Event -
ELYSE/HEAD/source/StackingAction.cxx
r286 r294 19 19 20 20 G4ClassificationOfNewTrack ELYSE::StackingAction::ClassifyNewTrack (const G4Track* aTrack) { 21 G4ClassificationOfNewTrack classification = fWaiting;21 //JEC unused varaible 22/2/07 G4ClassificationOfNewTrack classification = fWaiting; 22 22 G4ParticleDefinition* particleType = aTrack->GetDefinition(); 23 23 G4String particleName = particleType->GetParticleName(); -
ELYSE/HEAD/source/SteppingAction.cxx
r286 r294 20 20 #include "ELYSE/TrackingAction.hh" 21 21 #include "ELYSE/Trajectory.hh" 22 #include "ELYSE/TrappingVolume.hh"22 //#include "ELYSE/TrappingVolume.hh" 23 23 #include "ELYSE/TrackInformation.hh" 24 24 … … 40 40 G4VPhysicalVolume* thePostPV = thePostPoint->GetPhysicalVolume(); 41 41 42 43 //JEC START debug Optical surface properties 44 // G4StepPoint* pPreStepPoint = theStep->GetPreStepPoint(); 45 // G4cout << "(JEC): UserSteppingAction PrePoint Volume:" << pPreStepPoint->GetPhysicalVolume()->GetName() 46 // << " PostPoint Volume: " << thePostPV->GetName() 47 // << G4endl; 48 // G4LogicalSurface* Surface = 49 // G4LogicalSkinSurface::GetSurface(pPreStepPoint->GetPhysicalVolume()->GetLogicalVolume()); 50 // G4OpticalSurface* OpticalSurface = 0; 51 // if (Surface) OpticalSurface = (G4OpticalSurface*) Surface->GetSurfaceProperty(); 52 // if (OpticalSurface) { 53 // G4cout << "(JEC) UserSteppingAction: Optical Surface Found" << G4endl; 54 // OpticalSurface->DumpInfo(); 55 // G4MaterialPropertiesTable* aMaterialPropertiesTable; 56 // G4MaterialPropertyVector* Rindex; 57 // aMaterialPropertiesTable = OpticalSurface->GetMaterialPropertiesTable(); 58 59 // if (aMaterialPropertiesTable) { 60 // Rindex = aMaterialPropertiesTable->GetProperty("RINDEX"); 61 // if (Rindex) { 62 // G4cout << "(JEC) Found RINDEX properties: " << G4endl; 63 // Rindex->DumpVector(); 64 // } else { 65 // G4cout << "(JEC) NO RINDEX properties " << G4endl; 66 // } 67 // } else { 68 // G4cout << "(JEC) NO MATERIAL properties " << G4endl; 69 // } 70 // } else { 71 // G4cout << "(JEC) NO OpticalSurface " << G4endl; 72 // } 73 42 74 G4OpBoundaryProcessStatus boundaryStatus=Undefined; 43 75 static G4OpBoundaryProcess* boundary=NULL; … … 74 106 75 107 //------------Kill photons entering expHall 108 109 // G4cout << "(JEC) UserSteppingAction: Post Volume " << thePostPV->GetName() 110 // << G4endl; 111 76 112 if(thePostPV->GetName()=="expHall") { 77 113 theTrack->SetTrackStatus(fStopAndKill);} … … 94 130 // Absorption, Detection, NotAtBoundary, 95 131 // SameMaterial, StepTooSmall, NoRINDEX} 96 switch(boundaryStatus){ 97 case FresnelRefraction: 98 G4cout << "(JEC) Status of PostPoint: FresnelRefraction" << G4endl; break; 99 case FresnelReflection: 100 G4cout << "(JEC) Status of PostPoint: FresnelReflection" << G4endl; break; 101 case TotalInternalReflection: 102 G4cout << "(JEC) Status of PostPoint: TotalInternalReflection" << G4endl; break; 103 case LambertianReflection: 104 G4cout << "(JEC) Status of PostPoint: LambertianReflection" << G4endl; break; 105 case LobeReflection: 106 G4cout << "(JEC) Status of PostPoint: LobeReflection" << G4endl; break; 107 case SpikeReflection: 108 G4cout << "(JEC) Status of PostPoint: SpikeReflection" << G4endl; break; 109 case Absorption: 110 G4cout << "(JEC) Status of PostPoint: Absorption" << G4endl; break; 111 112 case Detection: // Note, this assumes that the volume causing detection 113 // is the interface between Tyvek and Air because it is the only one with 114 // 100% efficiency 115 { 116 // Triger sensitive detector manually since photon is 117 // absorbed but status was Detection 118 G4SDManager* SDman = G4SDManager::GetSDMpointer(); 119 //see DetectorConstruction::Construct for the PATH of the Sensitive Volume 120 TrappingVolume* trapVol = 0; 121 if(SDman) trapVol = (TrappingVolume*)SDman->FindSensitiveDetector("/ELYSE/TrappingVolume"); 132 // switch(boundaryStatus){ 133 // case FresnelRefraction: 134 // G4cout << "(JEC) Status of PostPoint: FresnelRefraction" << G4endl; break; 135 // case FresnelReflection: 136 // G4cout << "(JEC) Status of PostPoint: FresnelReflection" << G4endl; break; 137 // case TotalInternalReflection: 138 // G4cout << "(JEC) Status of PostPoint: TotalInternalReflection" << G4endl; break; 139 // case LambertianReflection: 140 // G4cout << "(JEC) Status of PostPoint: LambertianReflection" << G4endl; break; 141 // case LobeReflection: 142 // G4cout << "(JEC) Status of PostPoint: LobeReflection" << G4endl; break; 143 // case SpikeReflection: 144 // G4cout << "(JEC) Status of PostPoint: SpikeReflection" << G4endl; break; 145 // case Absorption: 146 // G4cout << "(JEC) Status of PostPoint: Absorption" << G4endl; break; 147 // case Detection: 148 // G4cout << "(JEC) Status of PostPoint: Detection" << G4endl; break; 149 // case NotAtBoundary: 150 // G4cout << "(JEC) Status of PostPoint: NotAtBoundary" << G4endl; break; 151 // case SameMaterial: 152 // G4cout << "(JEC) Status of PostPoint: SameMaterial" << G4endl; break; 153 // case StepTooSmall: 154 // G4cout << "(JEC) Status of PostPoint: StepTooSmall" << G4endl; break; 155 // case NoRINDEX: 156 // G4cout << "(JEC) Status of PostPoint: NoRINDEX" << G4endl; break; 122 157 123 if(trapVol) { 124 trapVol->ProcessHits_constStep(theStep,0);158 // default: 159 // break; 125 160 126 //------------Save the hit into the track info 127 128 TrackInformation* aInfo = (TrackInformation*)theTrack->GetUserInformation(); 129 G4cout << "(JEC) SteppingAction::opticalphoton detection = " 130 << " " << theTrack << " " << aInfo << G4endl; 131 if(aInfo)aInfo->AddTrackStatusFlag(hitProduced); 132 133 } else { 134 G4cout << "(JEC) UserSteppingAction: FATAL: NO Sensitive Det. FOUND" << G4endl; 135 exit(0); 136 } 137 break; 138 }//case Detection 139 140 case NotAtBoundary: 141 G4cout << "(JEC) Status of PostPoint: NotAtBoundary" << G4endl; break; 142 case SameMaterial: 143 G4cout << "(JEC) Status of PostPoint: SameMaterial" << G4endl; break; 144 case StepTooSmall: 145 G4cout << "(JEC) Status of PostPoint: StepTooSmall" << G4endl; break; 146 case NoRINDEX: 147 G4cout << "(JEC) Status of PostPoint: NoRINDEX" << G4endl; break; 148 149 default: 150 break; 151 152 }//eo switch on boundary values 161 // }//eo switch on boundary values 153 162 154 163 }//test on GeomBoundary -
ELYSE/HEAD/source/TrackingAction.cxx
r286 r294 48 48 //-----------optical photon: store trajectory objects 49 49 50 G4cout << "(JEC) PreUserTrackingAction (" << particleName51 << ") and DrawOptical = " << drawOpticalPhoton52 << G4endl;50 // G4cout << "(JEC) PreUserTrackingAction (" << particleName 51 // << ") and DrawOptical = " << drawOpticalPhoton 52 // << G4endl; 53 53 54 54 if(!drawOpticalPhoton && (particleName == "opticalphoton") )return; … … 56 56 if(drawOpticalPhoton && (particleName == "opticalphoton") ){ 57 57 58 G4cout << "(JEC) PreUserTrackingAction: Optical--ParentID : " << aTrack->GetParentID()59 << G4endl;58 // G4cout << "(JEC) PreUserTrackingAction: Optical--ParentID : " << aTrack->GetParentID() 59 // << G4endl; 60 60 61 61 … … 84 84 G4double thresholdTobeSaved = 0.*keV; //JEC FIXME put in the messenger 85 85 86 G4cout << "(JEC) PreUserTrackingAction (" << particleName87 << " ParentID " << aTrack->GetParentID();88 if (creatorProcess!=0) G4cout << ") and Process Name " << creatorProcess->GetProcessName();89 G4cout << G4endl;86 // G4cout << "(JEC) PreUserTrackingAction (" << particleName 87 // << " ParentID " << aTrack->GetParentID(); 88 // if (creatorProcess!=0) G4cout << ") and Process Name " << creatorProcess->GetProcessName(); 89 // G4cout << G4endl; 90 90 91 91
Note: See TracChangeset
for help on using the changeset viewer.