Commit in lcsim-contrib/src/main/java/org/lcsim/contrib/JanStrube/CLIC_Studies on MAIN | |||
MuonHelicity.java | +41 | added 1.1 | |
splitLCIOFile | +22 | added 1.1 | |
BackgroundHitDropper.java | +77 | added 1.1 | |
.cvsignore | +2 | added 1.1 | |
DropSlicPandoraCollections.java | +30 | added 1.1 | |
CollectionDropper.java | +79 | added 1.1 | |
+251 |
Some scripts for clic studies
diff -N MuonHelicity.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ MuonHelicity.java 19 Jan 2012 16:00:11 -0000 1.1 @@ -0,0 +1,41 @@
+import hep.physics.vec.HepLorentzVector; +import hep.physics.vec.VecOp; + +import java.util.List; + +import org.lcsim.event.EventHeader; +import org.lcsim.event.MCParticle; +import org.lcsim.util.Driver; +import org.lcsim.util.aida.AIDA; + + +public class MuonHelicity extends Driver { + AIDA aida = AIDA.defaultInstance(); + public MuonHelicity() { + + } + + public void process(EventHeader event) { + List<MCParticle> parts = event.getMCParticles(); + MCParticle muPlus = null; + MCParticle muMinus = null; + for (MCParticle p : parts) { + if (p.getGeneratorStatus() != p.FINAL_STATE) { + continue; + } + if (p.getPDGID() == 13) { + muPlus = p; + } + else if (p.getPDGID() == -13) { + muMinus = p; + } + } + if (muPlus == null || muMinus == null) { + return; + } + HepLorentzVector higgs = VecOp.add(muPlus.asFourVector(), muMinus.asFourVector()); + HepLorentzVector muPlus_in_Higgs = VecOp.boost(muPlus.asFourVector(), higgs); + double theta = VecOp.dot(higgs, muPlus_in_Higgs) / higgs.magnitude() / muPlus_in_Higgs.magnitude(); + aida.cloud1D("muonHel").fill(theta); + } +}
diff -N splitLCIOFile --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ splitLCIOFile 19 Jan 2012 16:00:11 -0000 1.1 @@ -0,0 +1,22 @@
+#!/data/jython-2.5.2/bin/jython + +from java.io import File +from org.lcsim.mc.fast import MCFast +from org.lcsim.util import Driver +from org.lcsim.util.loop import LCIODriver +from org.lcsim.util.loop import LCSimLoop +import sys + +input = sys.argv[1] +nEvents = int(sys.argv[2]) +iteration = 0 +while 1: + loop = LCSimLoop() + loop.setLCIORecordSource(File(input)) + outputDriver = LCIODriver(File(input+str(iteration))) + loop.add(outputDriver) + loop.skip(nEvents*iteration) + loop.loop(nEvents) + loop.dispose() + iteration += 1 +
diff -N BackgroundHitDropper.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ BackgroundHitDropper.java 19 Jan 2012 16:00:11 -0000 1.1 @@ -0,0 +1,77 @@
+import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.HashMap; + +import org.lcsim.event.CalorimeterHit; +import org.lcsim.event.Cluster; +import org.lcsim.event.EventHeader; +import org.lcsim.event.EventHeader.LCMetaData; +import org.lcsim.event.ReconstructedParticle; +import org.lcsim.event.Track; +import org.lcsim.event.TrackerHit; +import org.lcsim.util.Driver; + + +public class BackgroundHitDropper extends Driver { + + public void process(EventHeader event) { + List<ReconstructedParticle> loosePFOs = event.get(ReconstructedParticle.class, "SelectedPandoraPFOCollection"); + List<ReconstructedParticle> allPFOs = event.get(ReconstructedParticle.class, "PandoraPFOCollection"); + + List<List<TrackerHit>> trackerHitLists = event.get(TrackerHit.class); + List<List<CalorimeterHit>> caloHitLists = event.get(CalorimeterHit.class); + List<Track> tracks = event.getTracks(); + List<Cluster> clusters = new ArrayList<Cluster>();// event.getClusters(); + int trackerHitsToRemove = 0; + int caloHitsToRemove = 0; + int tracksToRemove = 0; + int clustersToRemove = 0; + for (ReconstructedParticle part: allPFOs) { + if (loosePFOs.contains(part)) { + continue; + } + List<Track> pfoTracks = part.getTracks(); + tracksToRemove += pfoTracks.size(); + for (Track t: pfoTracks) { + trackerHitsToRemove += t.getTrackerHits().size(); + tracksToRemove += t.getTracks().size(); + } + List<Cluster> pfoClusters = part.getClusters(); + clustersToRemove += pfoClusters.size(); + for (Cluster c: pfoClusters) { + caloHitsToRemove += c.getCalorimeterHits().size(); + clustersToRemove += c.getClusters().size(); + } + + } + Iterator<Track> tIter = tracks.iterator(); + while (tIter.hasNext() && tracksToRemove != 0) { + tIter.next(); + tIter.remove(); + tracksToRemove--; + } + for (List<TrackerHit> tHitList: trackerHitLists) { + Iterator<TrackerHit> tHitIterator = tHitList.iterator(); + while (tHitIterator.hasNext() && trackerHitsToRemove != 0) { + tHitIterator.next(); + tHitIterator.remove(); + trackerHitsToRemove--; + } + } + Iterator<Cluster> cIter = clusters.iterator(); + while (cIter.hasNext() && clustersToRemove != 0) { + cIter.next(); + cIter.remove(); + clustersToRemove--; + } + for (List<CalorimeterHit> cHitList: caloHitLists) { + Iterator<CalorimeterHit> cHitIter = cHitList.iterator(); + while (cHitIter.hasNext() && caloHitsToRemove != 0) { + cHitIter.next(); + cHitIter.remove(); + caloHitsToRemove--; + } + } + } +}
diff -N .cvsignore --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ .cvsignore 19 Jan 2012 16:00:11 -0000 1.1 @@ -0,0 +1,2 @@
+*.class +*.slcio
diff -N DropSlicPandoraCollections.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ DropSlicPandoraCollections.java 19 Jan 2012 16:00:11 -0000 1.1 @@ -0,0 +1,30 @@
+// MainLoop.java +// Java wrapper to enable running outside of JAS3 +// 16-JUL-2005 Jan Strube +// from a response to the JAS mailing list by Tony Johnson + +import java.io.File; +import org.lcsim.mc.fast.MCFast; +import org.lcsim.util.Driver; +import org.lcsim.util.aida.AIDA; +import org.lcsim.util.loop.LCIODriver; +import org.lcsim.util.loop.LCSimLoop; + +public class DropSlicPandoraCollections extends Driver { + public DropSlicPandoraCollections() {} + public static void main(String[] args) throws Exception { + //System.out.print(args[0]); + LCSimLoop loop = new LCSimLoop(); + File input = new File(args[0]); +// String fileBasename = args[0].substring(args[0].lastIndexOf('/')+1); + LCIODriver outputDriver = new LCIODriver(new File("out.slcio")); + loop.setLCIORecordSource(input); + //loop.add(new BackgroundHitDropper()); + outputDriver.setIgnoreCollections(new String[]{"EM_BARREL", "EM_ENDCAP", "HAD_BARREL", "HAD_ENDCAP", "MUON_BARREL", "MUON_ENDCAP", "CalorimeterHitRelations", "ReconClusters", "PandoraPFOCollection"}); + loop.add(outputDriver); + loop.loop(-1); + loop.dispose(); +// AIDA.defaultInstance().saveAs(outputDirectory + fileBasename.replace(".slcio", ".aida")); + } +} +
diff -N CollectionDropper.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ CollectionDropper.java 19 Jan 2012 16:00:11 -0000 1.1 @@ -0,0 +1,79 @@
+// MainLoop.java +// Java wrapper to enable running outside of JAS3 +// 16-JUL-2005 Jan Strube +// from a response to the JAS mailing list by Tony Johnson + +import java.io.File; +import java.util.ArrayList; +import java.util.List; +//import org.lcsim.mc.fast.MCFast; +import org.lcsim.util.Driver; +import org.lcsim.util.aida.AIDA; +import org.lcsim.util.loop.LCIODriver; +import org.lcsim.util.loop.LCSimLoop; +//import org.lcsim.job.EventMarkerDriver; +public class CollectionDropper extends Driver { + public static String[] makeSiDCollectionNames() { + List<String> nameList = new ArrayList<String>(); + nameList.add("ReconClusters"); + nameList.add("TKR_RawTrackerHits"); + nameList.add("VXD_RawTrackerHits"); + nameList.add("PandoraPFOCollection"); + nameList.add("LooseSelectedPandoraPFOCollection"); + nameList.add("Tracks"); + nameList.add("TKR_TrackerHits"); + nameList.add("VXD_TrackerHits"); + nameList.add("HelicalTrackHits"); + nameList.add("EM_BARREL"); + nameList.add("EM_ENDCAP"); + nameList.add("MUON_BARREL"); + nameList.add("MUON_ENDCAP"); + nameList.add("HAD_BARREL"); + nameList.add("HAD_ENDCAP"); + return nameList.toArray(new String[]{}); + } + + public static String[] makeILDCollectionNames() { + List<String> nameList = new ArrayList<String>(); + nameList.add("AllTPCTrackerHits"); + nameList.add("ECALBarrel"); + nameList.add("ECALEndCap"); + nameList.add("ECALOther"); + nameList.add("ETDTrackerHits"); + nameList.add("FTDTrackerHits"); + nameList.add("HCALBarrel"); + nameList.add("HCALEndcap"); + nameList.add("HCALOther"); + nameList.add("LDCTracks"); + nameList.add("TPCTracks"); + nameList.add("PandoraPFANewPFOs"); + nameList.add("MUON"); + nameList.add("VTXTrackerHits"); + nameList.add("SITTrackerHits"); + nameList.add("SETTrackerHits"); + return nameList.toArray(new String[]{}); + } + + public CollectionDropper() {} + public static void main(String[] args) throws Exception { + //System.out.print(args[0]); + LCSimLoop loop = new LCSimLoop(); + File input = new File(args[0]); + String fileBasename = args[0].substring(args[0].lastIndexOf('/')+1); + loop.setLCIORecordSource(input); + //loop.add(new MCFast()); + //EventMarkerDriver eventMarkerDriver = new EventMarkerDriver(); + //loop.add(eventMarkerDriver); + //String outputDirectory = "/opt/ppd/month/sidLOI/ReducedData/"; + LCIODriver outputDriver = new LCIODriver(); + outputDriver.setOutputFilePath("output.slcio"); + outputDriver.setIgnoreCollections(makeSiDCollectionNames()); + //outputDriver.setWriteOnlyCollections(makeSiDCollectionNames()); + loop.add(outputDriver); + System.out.printf("%s: %d\n", fileBasename, loop.loop(-1)); + loop.dispose(); + //AIDA.defaultInstance().saveAs(outputDirectory + fileBasename.replace(".slcio", ".aida")); + //AIDA.defaultInstance().saveAs("output.aida"); + } +} +
Use REPLY-ALL to reply to list
To unsubscribe from the LCD-CVS list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=LCD-CVS&A=1