Skip to content

run_simPythia.py output

martinfranke edited this page Sep 3, 2014 · 7 revisions

I will try to submit my findings on the output of 'run_simPythia.py' which is located in '.../ShipSoft/FairShip/macro' here. Please help to improve this collection in order to help newcomers get along!

The script produces 4 .root files:
1. FairRunInfo_ship.Pythia8-TGeant4.root
which contains information (TH1) about the running process (Memory vs. Event, Memory vs. Time, Time per Event, Time vs. Event)

2. geofile_full.Pythia8-TGeant4.root
containing a TGeoManager. Not really clear what this is helpful for (freely adapted from Thomas).

3. ship.params.Pythia8-TGeant4.root
Not clear at all what this is helpful for (freely adapted from Thomas)

4. ship.Pythia8-TGeant4.root
which contains the Event and detector information!
Here the KEYs for the file:
KEY: TFolder cbmroot;1 Main Folder
KEY: TList BranchList;1 Doubly linked list
KEY: FairFileHeader FileHeader;1
KEY: TTree cbmsim;1 /cbmroot

I only see the sense in the TTree, consisting of a long list of Branches

TTree cbmsim BranchList


Br 0 :MCTrack : Int_t cbmroot.Stack.MCTrack_
Br 1 :MCTrack.fUniqueID : UInt_t fUniqueID[cbmroot.Stack.MCTrack_]
Br 2 :MCTrack.fBits : UInt_t fBits[cbmroot.Stack.MCTrack_]
Br 3 :MCTrack.fPdgCode : Int_t fPdgCode[cbmroot.Stack.MCTrack_]
Br 4 :MCTrack.fMotherId : Int_t fMotherId[cbmroot.Stack.MCTrack_]
Br 5 :MCTrack.fPx : Double32_t fPx[cbmroot.Stack.MCTrack_]
Br 6 :MCTrack.fPy : Double32_t fPy[cbmroot.Stack.MCTrack_]
Br 7 :MCTrack.fPz : Double32_t fPz[cbmroot.Stack.MCTrack_]
Br 8 :MCTrack.fStartX : Double32_t fStartX[cbmroot.Stack.MCTrack_]
Br 9 :MCTrack.fStartY : Double32_t fStartY[cbmroot.Stack.MCTrack_]
Br 10 :MCTrack.fStartZ : Double32_t fStartZ[cbmroot.Stack.MCTrack_]
Br 11 :MCTrack.fStartT : Double32_t fStartT[cbmroot.Stack.MCTrack_]
Br 12 :MCTrack.fNPoints : Int_t fNPoints[cbmroot.Stack.MCTrack_]

Br 13 :vetoPoint : Int_t cbmroot.veto.vetoPoint_
Br 14 :vetoPoint.fUniqueID : UInt_t fUniqueID[cbmroot.veto.vetoPoint_]
Br 15 :vetoPoint.fBits : UInt_t fBits[cbmroot.veto.vetoPoint_]
Br 16 :vetoPoint.fLinks : set fLinks[cbmroot.veto.vetoPoint_]
Br 17 :vetoPoint.fPersistanceCheck : Bool_t fPersistanceCheck[cbmroot.veto.vetoPoint_]
Br 18 :vetoPoint.fVerbose : Int_t fVerbose[cbmroot.veto.vetoPoint_]
Br 19 :vetoPoint.fDefaultType : Int_t DefaultType[cbmroot.veto.vetoPoint_]
Br 20 :vetoPoint.fTrackID : Int_t fTrackID[cbmroot.veto.vetoPoint_]
Br 21 :vetoPoint.fEventId : UInt_t fEventId[cbmroot.veto.vetoPoint_]
Br 22 :vetoPoint.fPx : Double32_t fPx[cbmroot.veto.vetoPoint_]
Br 23 :vetoPoint.fPy : Double32_t fPy[cbmroot.veto.vetoPoint_]
Br 24 :vetoPoint.fPz : Double32_t fPz[cbmroot.veto.vetoPoint_]
Br 25 :vetoPoint.fTime : Double32_t fTime[cbmroot.veto.vetoPoint_]
Br 26 :vetoPoint.fLength : Double32_t fLength[cbmroot.veto.vetoPoint_]
Br 27 :vetoPoint.fELoss : Double32_t fELoss[cbmroot.veto.vetoPoint_]
Br 28 :vetoPoint.fDetectorID : Int_t fDetectorID[cbmroot.veto.vetoPoint_]
Br 29 :vetoPoint.fX : Double32_t fX[cbmroot.veto.vetoPoint_]
Br 30 :vetoPoint.fY : Double32_t fY[cbmroot.veto.vetoPoint_]
Br 31 :vetoPoint.fZ : Double32_t fZ[cbmroot.veto.vetoPoint_]

Br 32 :ecalPoint : Int_t cbmroot.ecal.ecalPoint_
Br 33 :ecalPoint.fUniqueID : UInt_t fUniqueID[cbmroot.ecal.ecalPoint_]
Br 34 :ecalPoint.fBits : UInt_t fBits[cbmroot.ecal.ecalPoint_]
Br 35 :ecalPoint.fLinks : set fLinks[cbmroot.ecal.ecalPoint_]
Br 36 :ecalPoint.fPersistanceCheck : Bool_t fPersistanceCheck[cbmroot.ecal.ecalPoint_]
Br 37 :ecalPoint.fVerbose : Int_t fVerbose[cbmroot.ecal.ecalPoint_]
Br 38 :ecalPoint.fDefaultType : Int_t fDefaultType[cbmroot.ecal.ecalPoint_]
Br 39 :ecalPoint.fTrackID : Int_t fTrackID[cbmroot.ecal.ecalPoint_]
Br 40 :ecalPoint.fEventId : UInt_t fEventId[cbmroot.ecal.ecalPoint_]
Br 41 :ecalPoint.fPx : Double32_t fPx[cbmroot.ecal.ecalPoint_]
Br 42 :ecalPoint.fPy : Double32_t fPy[cbmroot.ecal.ecalPoint_]
Br 43 :ecalPoint.fPz : Double32_t fPz[cbmroot.ecal.ecalPoint_]
Br 44 :ecalPoint.fTime : Double32_t fTime[cbmroot.ecal.ecalPoint_]
Br 45 :ecalPoint.fLength : Double32_t fLength[cbmroot.ecal.ecalPoint_]
Br 46 :ecalPoint.fELoss : Double32_t fELoss[cbmroot.ecal.ecalPoint_]
Br 47 :ecalPoint.fDetectorID : Int_t fDetectorID[cbmroot.ecal.ecalPoint_]
Br 48 :ecalPoint.fX : Double32_t fX[cbmroot.ecal.ecalPoint_]
Br 49 :ecalPoint.fY : Double32_t fY[cbmroot.ecal.ecalPoint_]
Br 50 :ecalPoint.fZ : Double32_t fZ[cbmroot.ecal.ecalPoint_]

Br 51 :muonPoint : Int_t cbmroot.muon.muonPoint_
Br 52 :muonPoint.fUniqueID : UInt_t fUniqueID[cbmroot.muon.muonPoint_]
Br 53 :muonPoint.fBits : UInt_t fBits[cbmroot.muon.muonPoint_]
Br 54 :muonPoint.fLinks : set fLinks[cbmroot.muon.muonPoint_]
Br 55 :muonPoint.fPersistanceCheck : Bool_t fPersistanceCheck[cbmroot.muon.muonPoint_]
Br 56 :muonPoint.fVerbose : Int_t fVerbose[cbmroot.muon.muonPoint_]
Br 57 :muonPoint.fDefaultType : Int_t fDefaultType[cbmroot.muon.muonPoint_]
Br 58 :muonPoint.fTrackID : Int_t fTrackID[cbmroot.muon.muonPoint_]
Br 59 :muonPoint.fEventId : UInt_t fEventId[cbmroot.muon.muonPoint_]
Br 60 :muonPoint.fPx : Double32_t fPx[cbmroot.muon.muonPoint_]
Br 61 :muonPoint.fPy : Double32_t fPy[cbmroot.muon.muonPoint_]
Br 62 :muonPoint.fPz : Double32_t fPz[cbmroot.muon.muonPoint_]
Br 63 :muonPoint.fTime : Double32_t fTime[cbmroot.muon.muonPoint_]
Br 64 :muonPoint.fLength : Double32_t fLength[cbmroot.muon.muonPoint_]
Br 65 :muonPoint.fELoss : Double32_t fELoss[cbmroot.muon.muonPoint_]
Br 66 :muonPoint.fDetectorID : Int_t fDetectorID[cbmroot.muon.muonPoint_]
Br 67 :muonPoint.fX : Double32_t fX[cbmroot.muon.muonPoint_]
Br 68 :muonPoint.fY : Double32_t fY[cbmroot.muon.muonPoint_]
Br 69 :muonPoint.fZ : Double32_t fZ[cbmroot.muon.muonPoint_]


Branch :MCEventHeader. : cbmroot.Event.MCEventHeader.
Br 70 :MCEventHeader.TNamed.fUniqueID : UInt_t cbmroot.Event.MCEventHeader.TNamed.fUniqueID
Br 71 :MCEventHeader.TNamed.fBits : UInt_t cbmroot.Event.MCEventHeader.TNamed.fBits
Br 72 :MCEventHeader.TNamed.fName : TString cbmroot.Event.MCEventHeader.TNamed.fName
Br 73 :MCEventHeader.TNamed.fTitle : TString cbmroot.Event.MCEventHeader.TNamed.fTitle
Br 74 :MCEventHeader.fRunId : UInt_t cbmroot.Event.MCEventHeader.fRunId
Br 75 :MCEventHeader.fEventId : UInt_t cbmroot.Event.MCEventHeader.fEventId
Br 76 :MCEventHeader.fX : Double32_t cbmroot.Event.MCEventHeader.fX
Br 77 :MCEventHeader.fY : Double32_t cbmroot.Event.MCEventHeader.fY
Br 78 :MCEventHeader.fZ : Double32_t cbmroot.Event.MCEventHeader.fZ
Br 79 :MCEventHeader.fT : Double32_t cbmroot.Event.MCEventHeader.fT
Br 80 :MCEventHeader.fB : Double32_t cbmroot.Event.MCEventHeader.fB
Br 81 :MCEventHeader.fNPrim : Int_t cbmroot.Event.MCEventHeader.fNPrim
Br 82 :MCEventHeader.fIsSet : Bool_t cbmroot.Event.MCEventHeader.fIsSet
Br 83 :MCEventHeader.fRotX : Double32_t cbmroot.Event.MCEventHeader.fRotX
Br 84 :MCEventHeader.fRotY : Double32_t cbmroot.Event.MCEventHeader.fRotY
Br 85 :MCEventHeader.fRotZ : Double32_t cbmroot.Event.MCEventHeader.fRotZ

Br 86 :GeoTracks : Int_t cbmroot.MCGeoTrack.GeoTracks_
Br 87 :GeoTracks.fUniqueID : UInt_t fUniqueID[cbmroot.MCGeoTrack.GeoTracks_]
Br 88 :GeoTracks.fBits : UInt_t fBits[cbmroot.MCGeoTrack.GeoTracks_]
Br 89 :GeoTracks.fGeoAtt : UInt_t fGeoAtt[cbmroot.MCGeoTrack.GeoTracks_]
Br 90 :GeoTracks.fLineColor : Short_t fLineColor[cbmroot.MCGeoTrack.GeoTracks_]
Br 91 :GeoTracks.fLineStyle : Short_t fLineStyle[cbmroot.MCGeoTrack.GeoTracks_]
Br 92 :GeoTracks.fLineWidth : Short_t fLineWidth[cbmroot.MCGeoTrack.GeoTracks_]
Br 93 :GeoTracks.fMarkerColor : Short_t fMarkerColor[cbmroot.MCGeoTrack.GeoTracks_]
Br 94 :GeoTracks.fMarkerStyle : Short_t fMarkerStyle[cbmroot.MCGeoTrack.GeoTracks_]
Br 95 :GeoTracks.fMarkerSize : Float_t fMarkerSize[cbmroot.MCGeoTrack.GeoTracks_]
Br 96 :GeoTracks.fPDG : Int_t fPDG[cbmroot.MCGeoTrack.GeoTracks_]
Br 97 :GeoTracks.fId : Int_t fId[cbmroot.MCGeoTrack.GeoTracks_]
Br 98 :GeoTracks.fParent : TVirtualGeoTrack* fParent[cbmroot.MCGeoTrack.GeoTracks_]
Br 99 :GeoTracks.fParticle : TObject* fParticle[cbmroot.MCGeoTrack.GeoTracks_]
Br 100 :GeoTracks.fTracks : TObjArray* fTracks[cbmroot.MCGeoTrack.GeoTracks_]
Br 101 :GeoTracks.fPointsSize : Int_t fPointsSize[cbmroot.MCGeoTrack.GeoTracks_]
Br 102 :GeoTracks.fNpoints : Int_t fNpoints[cbmroot.MCGeoTrack.GeoTracks_]
Br 103 :GeoTracks.fPoints : Double_t fPoints[cbmroot.MCGeoTrack.GeoTracks_]



Basically MC information, Geo information (not clear yet, I guess for eventDisplay, colors and stuff), MCEventHeader (not clear yet) and numerous variables for each detector component defined in the .../ShipSoft/FairShip directory. Most of these are arrays in which each entry represents a particle hit. The Tree entries represent one MC event each.
**Units: GeV, cm, ns**

a) number of particles that hit the component during that event b) UniqueID (no idea, seems to be set to 0) c) Bits (no idea, all the same value, so maybe memory usage per event?) d) Links (no idea) e) PersistanceCheck (no idea, seems to be set to 1) f) Verbose (no idea, seems to be set to 0) g) DefaultType (no idea, seems to be set to 0) h) TrackID (link to MC truth info, this is only stored if particles have energy above cut (100MeV), otherwise -2) i) EventId (no idea, seems to be set to 0) j,k,l) Px, Py, Pz: momentum component when detector is hit [GeV] m) Time evolved since decay of N particle [ns] n) Length: flight distance since partice production [cm] o) ELoss : enegry deposit in detector component [GeV] p) DetectorID q,r,s) X,Y,Z : point where detector is hit

For now the basic detector as in the figure is implemented: Z axis along beam axis Z = 0 where the Decay volume starts Z = -9900 -> target X = Y = 0 -> on beam axis T = 0 -> decay of sterile neutrino N
ShiP Detector Setup
The following changed slightly since I started writing this: The 'vetoPoint' Branches contain the veto and all 4 tracking chambers (Z = -2390, 1510, 1710, 2150, 2370, Detector ID 16-19, 23-26, 29-32, 35-38, 41-44) with width of 20 each. Each of these areas consists of 4 layers, so a particle going through on all will leave 20 entries in the vetoPoint branches;
'muonPoint' (green in figure) (Z between 2480 and 2520, DetectorID 45);
'ecalPoint' (magenta in figure) (Z between 2400 and 2480, DetectorID 46);
Clone this wiki locally