|Message: Readout Cell position||Not Logged In (login)|
Click on the Forum title, e.g. on the "Forums by Category" page, to read a sequence of postings to the Forum and its threads all in one page. If you are only interested in one thread or the thread following a specific posting, click the thread or the posting, which takes you to a smaller page, which contains only the part you are interested in and may be easier to navigate.
Messages are "chained" if there are only replies at the first level, i.e. 1/1.html, 1/1/1.html etc. In case of "chained" messages the message number is replaced by the icon and there is no indentation.
Inline: Display the subject line only or also the text of the posting(s); for the choice "All" the "Outline" choices are switched off.
|1||0||1||no text / full text of posting|
|2||1||All||text for level 1 only / text for All postings|
Outline: Choose the depth of the posting thread, successive toggle controls provide increasing detail.
|1||2||1||2 levels / 1 level (original posting)|
|2||3||2||3 levels / 2 levels|
|3||3||All||3 levels / all levels (all postings)|
I have a silicon tracker which consists of 4 concentric cylindrical layers which is achieved through parameterisation along the radial direction. I also have a ReadOut geometry to readout the pixel position of the hits, in these trackers.
The Readout Geometry is employed by parametrisation in R (using the same parametrisation used in Detector Construction), then Replication in phi, followed by replication in Z.
//////////////////////////////////Code////////////////////////////////// //Tracker R division G4VSolid * Tracker1ROtub = new G4Tubs("TrackerROtub", detector->GetTrackerTubsRmin(), detector->GetTrackerTubsRmax(), detector->GetTrackerLen(), 0.*deg, 360.*deg); G4LogicalVolume * Tracker1ROlog = new G4LogicalVolume(Tracker1ROtub,dummyMat,"Tracker1ROlogical",0,0,0); G4VPVParameterisation *trackerROparam = new StopperTrackerParam; //dummy values modified by parameterisation G4VPhysicalVolume *trackerRphys = new G4PVParameterised("trackerLayer",Tracker1ROlog,ROAssemblyLog,kXAxis,detector->GetnLayer(),trackerROparam);
//Tracker---phi division G4int tracker1phiSeg = (twopi*detector->GetTrackerTubsRmin()/(50*um)); G4double tracker1_dphi = 360*deg/tracker1phiSeg; G4VSolid *tracker1PhiDiv = new G4Tubs("tracker1phi", detector->GetTrackerTubsRmin(), detector->GetTrackerTubsRmax(), detector->GetTrackerLen(), 0.0*deg, tracker1_dphi); G4LogicalVolume *tracker1PhiLog = new G4LogicalVolume(tracker1PhiDiv,dummyMat,"tracker1PhiLog",0,0,0); G4VPhysicalVolume * tracker1ROphi = new G4PVReplica("tracker1ROphi", tracker1PhiLog, trackerRphys, kPhi, tracker1phiSeg, 50*um); //Tracker---Zdivision G4int tracker1Zseg = detector->GetTrackerLen()/(50*um); G4VSolid *tracker1Zdiv = new G4Tubs("tracker1Z", detector->GetTrackerTubsRmin(), detector->GetTrackerTubsRmax(), 50*um, 0.0*deg, tracker1_dphi); G4LogicalVolume *tracker1ZLog = new G4LogicalVolume(tracker1Zdiv,dummyMat,"tracker1Zlog",0,0,0); new G4PVReplica("tracker1Z", tracker1ZLog, tracker1ROphi, kZAxis, tracker1Zseg, 2.*50*um);
StopperDummySD *SD = new StopperDummySD; tracker1ZLog->SetSensitiveDetector(SD); /////////////////////////////////////////////////////////////////////////
I have two questions here.
1) My goal is to have readout cells of 50um in all the tracker layers. The lowermost volume in the Geometry tree (the Z replica volume) of the Readout Geometry is a pixel of 50um dimensions. Does parametrisation guarantee that all the tracker layers have a pixel structure with 50um dimensions ?
2)In the ProcessHits method of sensitive detector, I acces the copy number of the pixel which receive hit. But I also want the global position of the cell which received the hit. I tried ROhist->GetTranslation(); But this gives me only the translation in Z.
When I 'Move Up the History' and again request for a translation, all I am getting is a (0,0,0).
Is there anything that I am doing wrong or is it just that, this is not the way to get the position of the Readout cell?