Print

Print


Commit in lcsim-contrib/src/main/java/org/lcsim/contrib/Mbussonn on MAIN
.cvsignore+1added 1.1
JetFinder1.java+134added 1.1
MuonsBoth.java+1-11.1 -> 1.2
JetDriverExtended.java+2-21.3 -> 1.4
JetFinder.java+79-561.4 -> 1.5
+217-59
2 added + 3 modified, total 5 files
Adding my package to be able to synchronize it with other computer

lcsim-contrib/src/main/java/org/lcsim/contrib/Mbussonn
.cvsignore added at 1.1
diff -N .cvsignore
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ .cvsignore	23 Jun 2009 01:17:46 -0000	1.1
@@ -0,0 +1 @@
+.DS_Store

lcsim-contrib/src/main/java/org/lcsim/contrib/Mbussonn
JetFinder1.java added at 1.1
diff -N JetFinder1.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ JetFinder1.java	23 Jun 2009 01:17:46 -0000	1.1
@@ -0,0 +1,134 @@
+package org.lcsim.contrib.Mbussonn;
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+import hep.aida.IHistogramFactory;
+import hep.aida.IProfile1D;
+import hep.physics.vec.BasicHep3Vector;
+import hep.physics.vec.Hep3Vector;
+import java.util.ArrayList;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+import org.lcsim.contrib.Partridge.TrackingTest.TrackAnalysis;
+import org.lcsim.contrib.mgraham.sATLASDigi.FindableTrack;
+import org.lcsim.contrib.mgraham.sATLASDigi.FindableTrack.Ignore;
+import org.lcsim.contrib.sATLAS.TrackReconstructionDriver;
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.LCRelation;
+import org.lcsim.event.MCParticle;
+import org.lcsim.event.ReconstructedParticle;
+import org.lcsim.event.RelationalTable;
+import org.lcsim.event.Track;
+import org.lcsim.event.base.BaseRelationalTable;
+import org.lcsim.fit.helicaltrack.HelicalTrackFit;
+import org.lcsim.recon.tracking.seedtracker.SeedStrategy;
+import org.lcsim.recon.tracking.seedtracker.StrategyXMLUtils;
+import org.lcsim.recon.vertexing.zvtop4.VectorArithmetic;
+import org.lcsim.util.Driver;
+import org.lcsim.util.aida.AIDA;
+
+
+
+/**
+ *
+ * @author matthiasbussonnier
+ */
+public class JetFinder1 extends Driver{
+   private AIDA aida = AIDA.defaultInstance();
+   private IProfile1D gx;
+   public JetFinder1()
+   {
+      //super.add(new MCFast());
+		this.add(new JetDriverExtended());
+		this.add(new TrackReconstructionDriver());
+		IHistogramFactory hf = aida.histogramFactory();
+		gx = hf.createProfile1D("track finding efficiency vs angle ",18,.0,6.0);
+//		gx.fill(1,1);
+//	  int i;
+   }
+
+	@Override
+	@SuppressWarnings("unchecked")
+   protected void process(EventHeader event)
+   {
+	this.processChildren(event);
+      //super.process(event);
+      List<ReconstructedParticle> jets = event.get(ReconstructedParticle.class,"Jets");
+    //  aida.cloud1D("nJets").fill(jets.size());
+      //for (ReconstructedParticle jet : jets)
+      //{
+      //   List<ReconstructedParticle> particlesInJet = jet.getParticles();
+      //   aida.cloud1D("nParticles").fill(particlesInJet.size());
+      //}
+		RelationalTable     hittomc     = new BaseRelationalTable(RelationalTable.Mode.MANY_TO_MANY, RelationalTable.Weighting.UNWEIGHTED);
+		RelationalTable     trktomc     = new BaseRelationalTable(RelationalTable.Mode.MANY_TO_MANY, RelationalTable.Weighting.UNWEIGHTED);
+		List<LCRelation>    mcrelations = event.get(LCRelation.class, "HelicalTrackMCRelations");
+		List<Track>         tracklist   = event.getTracks();
+		for (LCRelation relation : mcrelations) {
+			hittomc.add(relation.getFrom(), relation.getTo());
+			}
+		//******ajoute une ralation entre reconstructed particle and mcp ********//
+		RelationalTable     rc2mc     = new BaseRelationalTable(RelationalTable.Mode.MANY_TO_MANY, RelationalTable.Weighting.UNWEIGHTED);
+		List<LCRelation>    rcmcfe    = event.get(LCRelation.class, "rc2mc");//collection of relation is onyread once here
+		for (LCRelation relation : rcmcfe) {								 // the collection of rcp is not load anywhere
+			rc2mc.add(relation.getFrom(), relation.getTo());
+			}
+		
+		for (Track track : tracklist) {
+			TrackAnalysis tkanal = new TrackAnalysis(track, hittomc);
+			MCParticle mcp = tkanal.getMCParticle();
+			tkanal=null;
+			double px	  = track.getPX();
+			double py	  = track.getPY();
+			double pz	  = track.getPZ();
+			double ptotal = Math.sqrt(px*px+py*py+pz*pz);
+			double ptcut  = 50.;
+
+			if(track.getCharge()==0)
+				continue;
+			if( ptotal < ptcut)
+				continue;
+			if (mcp != null)
+				trktomc.add(track, mcp);
+			}
+
+		int i=0;
+		List<MCParticle> mcplist = new LinkedList<MCParticle>();//event.getMCParticles();
+		
+		for(ReconstructedParticle jet : jets){
+			mcplist.clear();
+			List<ReconstructedParticle> listOfParticles = jet.getParticles();
+			for(ReconstructedParticle rcpInJet : listOfParticles){
+				MCParticle mcpp = (MCParticle) rc2mc.to(rcpInJet);
+				if(mcpp != null)
+					mcplist.add(mcpp);
+			}
+			
+			if(mcplist.size()!=0){
+			System.out.println("mcplist size :"+mcplist.size());
+			System.out.println("gx is "+gx+" aida is "+aida);
+			System.out.println("in jets");
+			for(i=0;i<20;i++){
+				gx.fill(1,1);
+				}
+			}
+			mcplist.clear();
+		}
+		//* from here
+		mcplist = event.getMCParticles();
+		if(mcplist.size()!=0){
+		int j ;
+			System.out.println("in event");
+			for(j=0;j<20;j++){
+				gx.fill(2,3);
+				
+			}
+		}
+		//to here */
+   }
+
+
+
+}

lcsim-contrib/src/main/java/org/lcsim/contrib/Mbussonn
MuonsBoth.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- MuonsBoth.java	3 Jun 2009 00:20:09 -0000	1.1
+++ MuonsBoth.java	23 Jun 2009 01:17:46 -0000	1.2
@@ -201,7 +201,7 @@
 
 				}
 			}//ENDFOR
-
+		super.printStatistics(System.out);
 		aida.cloud1D("mcp/number of detectable muons").fill(numberOfMuons);
 		aida.cloud1D("mcp/number of detected muons").fill(numberOfMuonsWithTrack);
 	}

lcsim-contrib/src/main/java/org/lcsim/contrib/Mbussonn
JetDriverExtended.java 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- JetDriverExtended.java	19 Jun 2009 19:11:19 -0000	1.3
+++ JetDriverExtended.java	23 Jun 2009 01:17:46 -0000	1.4
@@ -26,7 +26,7 @@
  * A simple driver which can be used to find jets from ReconstructedParticles.
  * The resuslting jets are stored in a new collection of ReconstructedParticles.
  * @author tonyj
- * @version $Id: JetDriverExtended.java,v 1.3 2009/06/19 19:11:19 mbussonn Exp $
+ * @version $Id: JetDriverExtended.java,v 1.4 2009/06/23 01:17:46 mbussonn Exp $
  */
 public class JetDriverExtended extends Driver
 {
@@ -98,7 +98,7 @@
 	@Override
    protected void process(EventHeader event)
    {
-	  super.process(event);
+	 // super.process(event);
       double totalEnergy=0;
       // Find the input reconstructed Particles
       List<ReconstructedParticle> input = null;

lcsim-contrib/src/main/java/org/lcsim/contrib/Mbussonn
JetFinder.java 1.4 -> 1.5
diff -u -r1.4 -r1.5
--- JetFinder.java	19 Jun 2009 19:15:23 -0000	1.4
+++ JetFinder.java	23 Jun 2009 01:17:46 -0000	1.5
@@ -3,6 +3,8 @@
  * To change this template, choose Tools | Templates
  * and open the template in the editor.
  */
+import hep.aida.IHistogramFactory;
+import hep.aida.IProfile1D;
 import hep.physics.vec.BasicHep3Vector;
 import hep.physics.vec.Hep3Vector;
 import java.util.ArrayList;
@@ -35,12 +37,16 @@
  */
 public class JetFinder extends Driver{
    private AIDA aida = AIDA.defaultInstance();
+   private IProfile1D gx;
    public JetFinder()
    {
       //super.add(new MCFast());
-	  super.add(new JetDriverExtended());
-	   super.add(new TrackReconstructionDriver());
-	  
+		super.add(new JetDriverExtended());
+		super.add(new TrackReconstructionDriver());
+		IHistogramFactory hf = aida.histogramFactory();
+		gx = hf.createProfile1D("track finding efficiency vs angle ",18,-6.0,6.0);
+		gx.fill(1,1);
+	  int i;
    }
 
 	@Override
@@ -49,12 +55,12 @@
    {
       super.process(event);
       List<ReconstructedParticle> jets = event.get(ReconstructedParticle.class,"Jets");
-      aida.cloud1D("nJets").fill(jets.size());
-      for (ReconstructedParticle jet : jets)
-      {
-         List<ReconstructedParticle> particlesInJet = jet.getParticles();
-         aida.cloud1D("nParticles").fill(particlesInJet.size());
-      }
+    //  aida.cloud1D("nJets").fill(jets.size());
+      //for (ReconstructedParticle jet : jets)
+      //{
+      //   List<ReconstructedParticle> particlesInJet = jet.getParticles();
+      //   aida.cloud1D("nParticles").fill(particlesInJet.size());
+      //}
 		RelationalTable     hittomc     = new BaseRelationalTable(RelationalTable.Mode.MANY_TO_MANY, RelationalTable.Weighting.UNWEIGHTED);
 		RelationalTable     trktomc     = new BaseRelationalTable(RelationalTable.Mode.MANY_TO_MANY, RelationalTable.Weighting.UNWEIGHTED);
 		List<LCRelation>    mcrelations = event.get(LCRelation.class, "HelicalTrackMCRelations");
@@ -79,8 +85,6 @@
 			double ptotal = Math.sqrt(px*px+py*py+pz*pz);
 			double ptcut  = 50.;
 
-
-
 			if(track.getCharge()==0)
 				continue;
 			if( ptotal < ptcut)
@@ -88,95 +92,114 @@
 			if (mcp != null)
 				trktomc.add(track, mcp);
 			}
-	  String sfile = StrategyXMLUtils.getDefaultStrategiesPrefix() + "sATLASFull-JeffMarch26.xml";
-		List<SeedStrategy> slist = StrategyXMLUtils.getStrategyListFromResource(sfile);
-		FindableTrack findable = new FindableTrack(event);
+//	  String sfile = StrategyXMLUtils.getDefaultStrategiesPrefix() + "sATLASFull-JeffMarch26.xml";
+//		List<SeedStrategy> slist = StrategyXMLUtils.getStrategyListFromResource(sfile);
+//		FindableTrack findable = new FindableTrack(event);
 
 		List<MCParticle> mcplist = new LinkedList<MCParticle>();//event.getMCParticles();
 		
-		//mcplist.clear();
 		for(ReconstructedParticle jet : jets){
 			double jpx = jet.getMomentum().x();
 			double jpy = jet.getMomentum().y();
-			double jpz = jet.getMomentum().z();
+//			double jpz = jet.getMomentum().z();
 			double jpt = Math.sqrt(jpx*jpx +jpy*jpy);
 			if (jpt <150)continue;
-			aida.cloud1D("jet direction r z").fill(jpz,jpt);
+//			aida.cloud2D("jet direction r z").fill(jpz,jpt);
 			List<ReconstructedParticle> listOfParticles = jet.getParticles();
 			for(ReconstructedParticle rcpInJet : listOfParticles){
 				MCParticle mcpp = (MCParticle) rc2mc.to(rcpInJet);
-				System.out.println("one more mcp");
+				
 				//MCParticleExtended mcpe = new MCParticleExtended(mcpp,event);
 				if(mcpp != null)
 					mcplist.add(mcpp);
 			}
 			Hep3Vector jetMomentum = jet.getMomentum();
-			System.out.println("mcp in jet : "+mcplist.size());
-			int ntracks=0;
+			//System.out.println("mcp in jet : "+mcplist.size());
+//			int ntracks=0;
 			for(MCParticle mcp : mcplist){
 				MCParticleExtended mcpx = new MCParticleExtended(mcp,event);
 				Set<Track> setOfTrack= trktomc.allTo(mcp);
 				Hep3Vector mmt = mcp.getMomentum();
-				double angle = getAngle(jetMomentum,mmt);
-				aida.cloud1D("angle").fill(angle);
+//				double angle = getAngle(jetMomentum,mmt);
+//				aida.cloud1D("angle").fill(angle);
 				double ptotal = mcpx.getPTotal();
 				double ptcut=50.;
+//				int nhits = findable.LayersHit(mcpx);
+//				aida.cloud1D("nhits for MCparticles").fill(nhits);
 				if( ptotal < ptcut
 					//||(mcp.getPDGID()!=13 && mcp.getPDGID()!=-13)
 					||mcp.getGeneratorStatus()!= MCParticleExtended.FINAL_STATE
 					||Math.abs(mcpx.getEta())>2.5)
 				{continue;}
 				else{
+					gx.fill(1,2);
 					if(setOfTrack.size()>1){
-						aida.cloud1D("track with more than 1 mcp").fill(setOfTrack.size());						continue;
+//						aida.cloud1D("track with more than 1 mcp").fill(setOfTrack.size());						continue;
 					}
 					else if(setOfTrack.size()==0) {
-						double weight=0.;
-						int nhits = findable.LayersHit(mcpx);
-						aida.cloud1D("mcp/eta for non-finded particle").fill(mcpx.getEta());
-						aida.cloud1D("mcp/theta for non-finded particle").fill(mcpx.getTheta());
-						aida.cloud1D("nhits for non-finded muons").fill(nhits);
+						double wgt = 0.0;
+						double angle3 = getAngle(mmt,jetMomentum);
+						gx.fill(1,4);
+						//gx.fill(angle3,wgt);
+						//System.out.println("0 : "+mmt);
+						System.out.println("0 weight : "+wgt);
+						//System.out.println("0 angle  : "+angle3);
+						gx.fill(1,1);
+
+						
+//						aida.cloud1D("mcp/eta for non-finded particle").fill(mcpx.getEta());
+//						aida.cloud1D("mcp/theta for non-finded particle").fill(mcpx.getTheta());
+//						aida.cloud1D("nhits for non-finded particles").fill(nhits);
+
 					}else if (setOfTrack.size()==1){
-					ntracks++;
+//					ntracks++;
 					//System.out.println("tracktomcp : "+setOfTx.size()+" Vs "+setOfTrack.size());
-					System.out.println("rcp associed with mcp "+rc2mc.allTo(mcpx).size());
+//					System.out.println("rcp associed with mcp "+rc2mc.allTo(mcpx).size());
 					double weight=1;
 					Track track = setOfTrack.iterator().next();
-					double d0 = track.getTrackParameter(HelicalTrackFit.dcaIndex);
-					double z0 = track.getTrackParameter(HelicalTrackFit.z0Index);
-					double px = track.getPX();
-					double py = track.getPY();
-					double pz = track.getPZ();
-					double pt = Math.sqrt(px*px+py*py);
-					double ps = Math.sqrt(px*px+py*py+pz*pz);
+//					double d0 = track.getTrackParameter(HelicalTrackFit.dcaIndex);
+//					double z0 = track.getTrackParameter(HelicalTrackFit.z0Index);
+//					double px = track.getPX();
+//					double py = track.getPY();
+//					double pz = track.getPZ();
+//					double pt = Math.sqrt(px*px+py*py);
+//					double ps = Math.sqrt(px*px+py*py+pz*pz);
 					double p[] = track.getMomentum();
 					Hep3Vector h3vp = new BasicHep3Vector(p[0],p[1],p[2]);
 					double trackangle = getAngle(h3vp,jetMomentum);
-					aida.cloud1D("track angle").fill(trackangle);
-//					double bfield = event.getDetector().getFieldMap().getField(new BasicHep3Vector(0., 0., 0.)).z();
-//					HelixParamCalculator helix = new HelixParamCalculator(mcp, bfield);
-//					double d0mc = helix.getDCA();
-//					double z0mc = helix.getZ0();
-					aida.cloud1D("track/d0").fill(d0);
-					aida.cloud1D("track/z0").fill(z0);
-					aida.cloud2D("track/do VS Z0").fill(z0, d0);
-					aida.cloud1D("track/tr momentum").fill(pt);
-					//aida.cloud1D("track/scalar momentum").fill(ps);
-					aida.cloud1D("track/residual t momentum").fill(mcpx.getPR()-pt);
-					aida.cloud1D("track/residual d0").fill(d0-mcpx.getDCA());
-					aida.cloud1D("track/residual z0").fill(z0-mcpx.getZ0());
-					aida.cloud1D("track/number of Tracker hits").fill(track.getTrackerHits().size());
-					aida.cloud1D("track/number of mcp hits").fill(findable.LayersHit(mcp));
-					aida.cloud1D("track/chiSquared").fill(track.getChi2());
+//					aida.cloud1D("track angle").fill(trackangle);
+					//double angle2 = getAngle(mmt,jetMomentum);
+					double wgt = 1.0;
+					gx.fill(1,3);
+					//gx.fill(angle2,wgt);
+					gx.fill(1,0);
+
+						//System.out.println("1 : "+mmt);
+						System.out.println("1 weight: "+wgt);
+						//System.out.println("1 angle: "+angle2);
+						System.out.println("1 track angle: "+trackangle);
+
+
+
+//					aida.cloud1D("track/d0").fill(d0);
+//					aida.cloud1D("track/z0").fill(z0);
+//					aida.cloud2D("track/do VS Z0").fill(z0, d0);
+//					aida.cloud1D("track/tr momentum").fill(pt);
+//					//aida.cloud1D("track/scalar momentum").fill(ps);
+//					aida.cloud1D("track/residual t momentum").fill(mcpx.getPR()-pt);
+//					aida.cloud1D("track/residual d0").fill(d0-mcpx.getDCA());
+//					aida.cloud1D("track/residual z0").fill(z0-mcpx.getZ0());
+//					aida.cloud1D("track/number of Tracker hits").fill(track.getTrackerHits().size());
+//					aida.cloud1D("track/number of mcp hits").fill(findable.LayersHit(mcp));
+//					aida.cloud1D("track/chiSquared").fill(track.getChi2());
 					}//ed loop through mcp
-				aida.cloud2D("ntrack vs nMCP in jet").fill(mcplist.size(),ntracks);
-				aida.cloud2D("nTrack vs nRCP in jet").fill(listOfParticles.size(), ntracks);
+//				aida.cloud2D("nTrack vs nRCP in jet").fill(listOfParticles.size(), ntracks);
 				}
 
 			}
 			mcplist.clear();	
 		}
-		super.printStatistics(System.out);
+		//super.printStatistics(System.out);
    }
    private double getAngle(Hep3Vector h1, Hep3Vector h2){
 	   double ca = VectorArithmetic.dot(h1, h2)/(h1.magnitude()*h2.magnitude());
CVSspam 0.2.8