import ROOT,os def cosmic_histos(rangefile): histsdict={} ranges=getRanges(rangefile) def TH2D(n,t,xb,xl,xh,yb,yl,yh): return makeTH2D(n,t,xb,xl,xh,yb,yl,yh,ranges) def TH1D(n,t,b,l,h): return makeTH1D(n,t,b,l,h,ranges) hits3d = ROOT.TH3D("h3dhits","3d hits",300,-15.,15,300,-15.,15.,800,0.,73) histsdict['hsnr'] = TH1D("hsnr","signal to noise (digi) ;Signal to Noise Ratio",100,0.,1000.) histsdict['csnr'] = TH1D("csnr","signal to noise (cluster);Signal to Noise Ratio",100,0.,5000.) histsdict['ssnr'] = TH1D("ssnr","signal to noise (sample) ;Signal to Noise Ratio",100,0., 200.) histsdict['hmom'] = TH1D("hmom","mom",500,0,2.) histsdict['hAllDigiSamples'] = TH1D("hAllDigisSamples","dig amp vs time",520,0.,520.) histsdict['hcl pos z'] = TH1D("hClpos","cl pos z",520,0.,75.) histsdict['hcl pos z cut'] = TH1D("hClposcut","cl pos z (cut)",520,0.,75.) histsdict['hclsizevsradius'] = TH2D("hclsizevsradius","radius vs clustersize",150,0.,15.,100,0.,100.) histsdict['hnumberofthetracks'] = TH1D("hnumberoftthetracks", "number of tracks", 2,0,2) histsdict['htrklengthvsclcount'] = TH2D("htrklengthvsclcount", "Tracklength over clustercount",40,0,40,40,0,40) histsdict['hclvsclcount'] = TH2D("hclvsclcount", "Cluster per cm over Clustercount",40,0,40,200,0,2) histsdict['hclusterSize2DVsZ'] = TH2D("hclusterSize2DVsZ","2D Size Vs Z",75,0.,75.,40,0,40) histsdict['hclusterSize3DVsZ'] = TH2D("hclusterSize3DVsZ","3D Size Vs Z",75,0.,75.,40,0,40) histsdict['hclusterSize3DUVsZ'] = TH2D("hclusterSize3DUVsZ","3D Unshared Size Vs Z",75,0.,75.,40,0,40) histsdict['hdiffclustersize'] = TH2D("hdiffclustersize", "difference ClusterSize", 90,-70,20,20,0,20) histsdict['hclusterpertrack'] = TH1D("hclusterpertrack","cluster per track (cutted)",200,0.,200.) histsdict['hclusterpertrack no cut'] = TH1D("hclusterpertrack2","cluster per track (no cut)",200,0.,200.) histsdict['hclusterpercm'] = TH1D("hclusterpercm","Cluster per cm",1000,0.,10.) histsdict['hclusterpercm vs Z'] = TH2D("hclusterpercmVsZ","Cluster per cm vs mean z",75,-63,12,100,0,10) histsdict['hclusterpercm cutted'] = TH1D("hclusterpercmcut","Cluster per cm (cutted)",1000,0.,10.) histsdict['hdistbetweencluster'] = TH2D("hdistbetweencluster", "distance between cluster", 90, -70, 20, 50, 0, 5) histsdict['hdigipercm'] = TH1D("hdigipercm","Digi per cm",500,0.,50.) histsdict['hdigipertrack'] = TH1D("hdigipertrack","Digi per Track",1000,0.,1000.) histsdict['hdigipercm cutted'] = TH1D("hdigipercmcut","Cluster per cm (cutted)",1000,0.,100.) histsdict['hdigipercm cutted vs z'] = TH2D("hdigipercmcutZ","Cluster per cm vs mean z(cutted)",750,0.,75.,1000,0.,100.) histsdict['hdigipercm vs z'] = TH2D("hdigipercmZ","Digi per cm vs mean z",75,0.,75.,500,0.,50.) histsdict['hdigpercl'] = TH1D("hdigpercl","Digis per cluster",100,0.,100.) histsdict['hdigpercl cut'] = TH1D("hdigperclcut","digis per cluster cutted",100,0.,100.) histsdict['hclmedian'] = TH1D("hclmedian","median of clustersizes",50,0.,50.) histsdict['hclmedian cut'] = TH1D("hclmediancut","median of clustersizes (cut)",50,0.,50.) histsdict['hcl medians meana'] = TH2D("hclmedsimeanamp","median of cl size vs mean cl amp",50,0.,50.,1000,0.,20000.) histsdict['hcl size vs amp'] = TH2D("hcsizevsamp","cluster size vs amp",50,0.,50.,1500,0.,150000.) histsdict['hresvsclsize'] = TH2D("hresvsclsize","residual vs clustersize",200,-10000.,10000.,30,0.,30.) histsdict['hresvsz'] = TH2D("hresvsz","residuals vs z",850,0,73,100,-5000,5000) histsdict['hslices'] = TH1D("hslices","slicepos",6,0.,6.) hxybinning=64 hzbinning=160 histsdict['hxy'] = TH2D("hxy","xy",hxybinning,-16.,16.,hxybinning,-16.,16.) histsdict['hxyz'] = ROOT.TH3D("hxyz","xyz",hxybinning,-16.,16.,hxybinning,-16.,16.,hzbinning,-5,75) histsdict['hyz'] = TH2D("hyz","yz",hzbinning,-5.,75.,hxybinning,-16.,16.) histsdict['hxz'] = TH2D("hxz","xz",hzbinning,-5.,75.,hxybinning,-16.,16.) histsdict['hxy MC'] = TH2D("hxyMC","xy",hxybinning,-16.,16.,hxybinning,-16.,16.) histsdict['hyz MC'] = TH2D("hyzMC","yz",hzbinning,-5.,75.,hxybinning,-16.,16.) histsdict['hxz MC'] = TH2D("hxzMC","xz",hzbinning,-5.,75.,hxybinning,-16.,16.) #X-Residuals histsdict['hxy res'] = TH2D("hxyres","xy res",hxybinning,-16.,16.,hxybinning,-16.,16.) histsdict['hxy MC res'] = TH2D("hxyMCres","xy res",hxybinning,-16.,16.,hxybinning,-16.,16.) histsdict['hyz res'] = TH2D("hyzres","yz res",hzbinning,-5.,75.,hxybinning,-16.,16.) histsdict['hyz MC res'] = TH2D("hyzMCres","yz MC res",hzbinning,-5.,75.,hxybinning,-16.,16.) #Y-Residuals histsdict['hxy resY'] = TH2D("hxyresY","xy resY",hxybinning,-16.,16.,hxybinning,-16.,16.) histsdict['hxy MC resY'] = TH2D("hxyMCresY","xy MC resY",hxybinning,-16.,16.,hxybinning,-16.,16.) histsdict['hyz resY'] = TH2D("hyzresY","yz resY",hzbinning,-5.,75.,hxybinning,-16.,16.) histsdict['hyz MC resY'] = TH2D("hyzMCresY","yz MC resY",hzbinning,-5.,75.,hxybinning,-16.,16.) #Z-Residuals histsdict['hxy resZ'] = TH2D("hxyresZ","xy resZ",hxybinning,-16.,16.,hxybinning,-16.,16.) histsdict['hxy MC resZ'] = TH2D("hxyMCresZ","xy MC resZ",hxybinning,-16.,16.,hxybinning,-16.,16.) histsdict['hyz resZ'] = TH2D("hyzresZ","yz resZ",hzbinning,-5.,75.,hxybinning,-16.,16.) histsdict['hyz MC resZ'] = TH2D("hyzMCresZ","yz MC resZ",hzbinning,-5.,75.,hxybinning,-16.,16.) histsdict['hxy amp'] = TH2D("hxyamp","xy amp",hxybinning,-16.,16.,hxybinning,-16.,16.) histsdict['hxy amp cut'] = TH2D("hxyamp cut","xy amp (cut)",hxybinning,-16.,16.,hxybinning,-16.,16.) histsdict['hxy chi2X'] = TH2D("hxychi2X","xy chi2X",hxybinning,-16.,16.,hxybinning,-16.,16.) histsdict['hxy resR'] = TH2D("hxyresR","xy resR",hxybinning,-16.,16.,hxybinning,-16.,16.) histsdict['hxy MC resR'] = TH2D("hxyMCresR" ,"xy resR",hxybinning,-16.,16.,hxybinning,-16.,16.) histsdict['hxy resP'] = TH2D("hxyresP" ,"xy resP",hxybinning,-16.,16.,hxybinning,-16.,16.) histsdict['hxy MC resP'] = TH2D("hxyMCresP" ,"xy resP",hxybinning,-16.,16.,hxybinning,-16.,16.) histsdict['hxy resU'] = TH2D("hxyresU","xy resU",hxybinning,-16.,16.,hxybinning,-16.,16.) histsdict['hxy MC resU'] = TH2D("hxyMCresU" ,"xy resU",hxybinning,-16.,16.,hxybinning,-16.,16.) histsdict['hxy resV'] = TH2D("hxyresV" ,"xy resV",hxybinning,-16.,16.,hxybinning,-16.,16.) histsdict['hxy MC resV'] = TH2D("hxyMCresV" ,"xy resV",hxybinning,-16.,16.,hxybinning,-16.,16.) histsdict['hxyz res'] = ROOT.TH3D("hxyzres" , "xyz res ;X(cm);Y(cm);Z(cm)",hxybinning,-16.,16.,hxybinning,-16.,16.,hzbinning,-5,75) histsdict['hxyz resY'] = ROOT.TH3D("hxyzresY", "xyz resY ;X(cm);Y(cm);Z(cm)",hxybinning,-16.,16.,hxybinning,-16.,16.,hzbinning,-5,75) histsdict['hxyz resZ'] = ROOT.TH3D("hxyzresZ", "xyz resZ ;X(cm);Y(cm);Z(cm)",hxybinning,-16.,16.,hxybinning,-16.,16.,hzbinning,-5,75) histsdict['hxyz resU'] = ROOT.TH3D("hxyzresU", "xyz Res U ;X(cm);Y(cm);Z(cm)",hxybinning,-16.,16.,hxybinning,-16.,16.,hzbinning,-5,75) histsdict['hxyz resV'] = ROOT.TH3D("hxyzresV", "xyz Res V ;X(cm);Y(cm);Z(cm)",hxybinning,-16.,16.,hxybinning,-16.,16.,hzbinning,-5,75) histsdict['hxyz resA1'] = ROOT.TH3D("hxyzresA1", "xyz Res A1;X(cm);Y(cm);Z(cm)",hxybinning,-16.,16.,hxybinning,-16.,16.,hzbinning,-5,75) histsdict['hxyz resA2'] = ROOT.TH3D("hxyzresA2", "xyz Res A2;X(cm);Y(cm);Z(cm)",hxybinning,-16.,16.,hxybinning,-16.,16.,hzbinning,-5,75) histsdict['hxyz resA3'] = ROOT.TH3D("hxyzresA3", "xyz Res A3;X(cm);Y(cm);Z(cm)",hxybinning,-16.,16.,hxybinning,-16.,16.,hzbinning,-5,75) histsdict['hxyz MC res'] = ROOT.TH3D("hxyzMCres" , "xyz MC res ;X(cm);Y(cm);Z(cm)",hxybinning,-16.,16.,hxybinning,-16.,16.,hzbinning,-5,75) histsdict['hxyz MC resY'] = ROOT.TH3D("hxyzMCresY", "xyz MC resY ;X(cm);Y(cm);Z(cm)",hxybinning,-16.,16.,hxybinning,-16.,16.,hzbinning,-5,75) histsdict['hxyz MC resZ'] = ROOT.TH3D("hxyzMCresZ", "xyz MC resZ ;X(cm);Y(cm);Z(cm)",hxybinning,-16.,16.,hxybinning,-16.,16.,hzbinning,-5,75) histsdict['hxyz MC resU'] = ROOT.TH3D("hxyzMCresU", "xyz MC Res U ;X(cm);Y(cm);Z(cm)",hxybinning,-16.,16.,hxybinning,-16.,16.,hzbinning,-5,75) histsdict['hxyz MC resV'] = ROOT.TH3D("hxyzMCresV", "xyz MC Res V ;X(cm);Y(cm);Z(cm)",hxybinning,-16.,16.,hxybinning,-16.,16.,hzbinning,-5,75) histsdict['hxyz MC resA1'] = ROOT.TH3D("hxyzMCresA1","xyz MC Res A1;X(cm);Y(cm);Z(cm)",hxybinning,-16.,16.,hxybinning,-16.,16.,hzbinning,-5,75) histsdict['hxyz MC resA2'] = ROOT.TH3D("hxyzMCresA2","xyz MC Res A2;X(cm);Y(cm);Z(cm)",hxybinning,-16.,16.,hxybinning,-16.,16.,hzbinning,-5,75) histsdict['hxyz MC resA3'] = ROOT.TH3D("hxyzMCresA3","xyz MC Res A3;X(cm);Y(cm);Z(cm)",hxybinning,-16.,16.,hxybinning,-16.,16.,hzbinning,-5,75) histsdict['hxz resY'] = TH2D("hxzres","xz res",hzbinning,-5.,75.,hxybinning,-16.,16.) histsdict['hxy last'] = TH2D("hxylast","xy last",200,-16.,16.,200,-16.,16.) histsdict['hxy first'] = TH2D("hxyfirst","xy first",200,-16.,16.,200,-16.,16.) histsdict['hxyc'] = TH2D("hxyc","xy curvcut",200,-16.,16.,200,-16.,16.) histsdict['hyzc'] = TH2D("hyzc","yz curvcut",350,0.,75.,100,-16.,16.) histsdict['hxysnr'] = TH2D("hxysnr","xy low snr",200,-16.,16.,200,-16.,16.) histsdict['hyzsnr'] = TH2D("hyzsnr","yz low snr",350,0.,75.,100,-16.,16.) histsdict['hresX'] = TH1D("hresX","residuals in X",400,-10000.,10000.) histsdict['hresY'] = TH1D("hresY","residuals in Y",400,-10000.,10000.) histsdict['hresZ'] = TH1D("hresZ","residuals in Z",400,-10000.,10000.) histsdict['hMCresX'] = TH1D("hMCresX","MC Residuals in X",400,-10000.,10000.) histsdict['hMCresY'] = TH1D("hMCresY","MC Residuals in Y",400,-10000.,10000.) histsdict['hMCresZ'] = TH1D("hMCresZ","MC Residuals in Z",400,-10000.,10000.) histsdict['cuts'] = TH1D("hcuts","cuts",25,0.,25.) histsdict['pedsigma'] = TH1D("pedsigma","sigma",10500,0.,10500.) histsdict['pedmean'] = TH1D("pedmean","mean",10500,0.,10500.) histsdict['someinfo'] = TH1D("someinfo","some info",1,0.,1.) histsdict['hclusteramp'] = TH1D("hclusteramp","cluster amplitude",1000,0.,100000.) histsdict['hdigiamp'] = TH1D("hdigiamp","Digi amplitude",1000,0.,20000.) histsdict['hdigiamp_low'] = TH1D("hdigiamp_low","Digi amplitude low",500,0.,500.) histsdict['resxy'] = TH2D("hresxy","resxy",200,-16.,16.,200,-16.,16.) histsdict['rad'] = TH1D("hrad","hrad",200,0.,16) histsdict['chi2cdf'] = TH1D("hchi2cdf","chi2 cdf",110,0.,1.1) histsdict['chi2cdf cutted'] = TH1D("hchi2cdfcutted","chi2 cdf (cutted)",110,0.,1.1) histsdict['chi2cdf cut'] = TH1D("hchi2cdfcut","chi2 cdf (cuts)",110,0.,1.1) histsdict['tcuts'] = TH2D("htcut","htcut",20,0.,20.,20,0.,20.) histsdict['z vs theta'] = TH2D("hzvtheta","Z vs Theta",350,-65.,20,180,0.,180.) histsdict['z vs theta c'] = TH2D("hzvthetac","Z vs Theta (cuts)",350,-65.,20,180,0.,180.) histsdict['z vs phi'] = TH2D("hzvphi","Z vs Phi",350,-65.,20,360,-180.,180.) histsdict['z vs phi c'] = TH2D("hzvphic","Z vs Phi (cuts)",350,-65.,20,360,-180.,180.) histsdict['hxy le90'] = TH2D("hxy le90","xy le90",200,-16.,16.,200,-16.,16.) histsdict['hyz le90'] = TH2D("hyz le90","yz le90",350,0.,75.,100,-16.,16.) histsdict['hxy gt90'] = TH2D("hxy gt90","xy gt90",200,-15.,16.,200,-16.,16.) histsdict['hyz gt90'] = TH2D("hyz gt90","yz gt90",350,0.,75.,100,-16.,16.) histsdict['hresX first'] = ROOT.TH1D("hresXfirst","residuals in X first cluster",400,-10000.,10000.) histsdict['hresX last'] = ROOT.TH1D("hresXlast","residuals in X last cluster",400,-10000.,10000.) histsdict['hits per track vs res'] = TH2D("hhitres","hits_per_track_vs_res",400,-10000.,10000,50,0.,50,) histsdict['theta vs fitf'] = TH2D("hthevsfitf","theta_vs_trackflag",2,0.,2.,180,0.,180.) histsdict['theta vs clp'] = TH2D("hthevsclp","theta_vs_clpusterpertrack",50,0.,50.,180,0.,180.) histsdict['theta vs mom'] = TH2D("hthevsmom","theta_vs_momentum",2500,0,250.,180,0.,180.) histsdict['theta vs clsumamp'] = TH2D("hthevsclsumamp","theta_vs_clsumamp",1500,0.,150000.,180,0.,180.) histsdict['theta vs clmeanamp f'] = TH2D("hthevsclmeanampf","theta_vs_clmeanampf",1000,0.,20000.,180,0.,180.) histsdict['theta vs clmeanamp'] = TH2D("hthevsclmeanamp","theta_vs_clmeanamp",1000,0.,20000.,180,0.,180.) histsdict['theta vs digsum'] = TH2D("hthevsdigsum","theta_vs_digsum",250,0.,250.,180,0.,180.) histsdict['theta vs median'] = TH2D("hthevsmedian","theta_vs_median",50,0.,50.,180,0.,180.) histsdict['theta vs median cut'] = TH2D("hthevsmedianc","theta_vs_median (cut)",50,0.,50.,180,0.,180.) histsdict['phi vs clsumamp'] = TH2D("hphivsclsumamp","phi_vs_clsumamp",1500,0.,150000.,360,-180.,180.) histsdict['phi vs clmeanamp'] = TH2D("hphivsclmeanamp","phi_vs_clmeanamp",1000,0.,20000.,360,-180.,180.) histsdict['phi vs digsum'] = TH2D("hphivsdigisum","phi_vs_digsum",250,0.,250.,360,-180.,180.) histsdict['phi vs mom'] = TH2D("hphivsmom","phi_vs_momentum",2500,0,250.,360,-180.,180.) histsdict['phi vs clp'] = TH2D("hphivsclp","phi_vs_clpusterpertrack",50,0.,50.,360,-180.,180.) histsdict['mom vs clsumamp'] = TH2D("hmomvsclsumamp","mom_vs_clsumamp",1500,0.,150000.,2500,0.,250.) histsdict['mom vs clmeanamp'] = TH2D("hmomclmeanamp","mom_vs_clmeanamp",1000,0.,20000.,2500,0.,250.) histsdict['mom vs digsum'] = TH2D("hmomdigsum","mom_vs_digsum",250,0.,250.,2500,0.,250.) histsdict['clmeanamp'] = ROOT.TH1D("hclmeanamp","track_cluster_mean_amp",1000,0.,20000.) histsdict['clsumamp'] = ROOT.TH1D("hclsumamp","track_cluster_sum_amp",1500,0.,150000.) histsdict['digmeanamp'] = ROOT.TH1D("hdigmeanamp","track_digi_mean_amp",1000,0.,2000.) histsdict['digsumamp'] = ROOT.TH1D("hdigsumamp","track_digi_sum_amp",1400,0.,140000.) histsdict['digsum'] = ROOT.TH1D("hdigisum","number of digis in track",500,0.,1000.) histsdict['theta vs phi'] = TH2D("hthetavsphi","thetha vs phi (all)",360,-180.,180.,180,0.,180.) histsdict['theta vs phi cut'] = TH2D("hthetavsphi2","thetha vs phi (cut)",360,-180.,180.,180,0.,180.) histsdict['mean digis in cluster']=ROOT.TH1D("hmeandigincl","mean digis per cluster",200,0.,100.) histsdict['mean samples in cluster']=ROOT.TH1D("hmeansamincl","mean samples per cluster",200,0.,100.) histsdict['mean digis in cluster cut']=ROOT.TH1D("hmeandiginclcut","mean digis per cluster cut",200,0.,100.) histsdict['mean samples in cluster cut']=ROOT.TH1D("hmeansaminclcut","mean samples per cluster cut",200,0.,100.) histsdict['cut reduction']=TH2D("hcutred","cut reductions",5,1.,6.,5,1.,6.) histsdict['clusterdists']=ROOT.TH1D("hcldist","distance between cluster",100,0.,5.) histsdict['clusterdists vs z']=TH2D("hcldistz","distance between cluster vs z",188, -65, 20,100,0.,5.) #----------------------------------------------------------------------------------------------------------- curvd={} curvd['no cut'] = ROOT.TH1D("hcurv1","curvature (no cuts)",1000,0.,1) curvd['all cuts'] = ROOT.TH1D("hcurv2","curvature (all cuts)",1000,0.,1) histsdict['curvature']=curvd # }}} # {{{ chi2 #----------------------------------------------------------------------------------------------------------- chisq={} chisq['chindf no cuts'] = ROOT.TH1D("trackchi2_1","Track Chi2/ndf (no cuts)",250,0.,100) chisq['chindf all cuts'] = ROOT.TH1D("trackchi2_2","Track Chi2/ndf (all cuts)",250,0.,100) chisq['chi no cuts'] = ROOT.TH1D("trackchi2_3","Track Chi2 (no cuts)",250,0.,100) chisq['chi all cuts'] = ROOT.TH1D("trackchi2_4","Track Chi2 (all cuts)",250,0.,100) chisq['ndf no cuts'] = ROOT.TH1D("trackchi2_5","Track ndf (no cuts)",250,0.,100) chisq['ndf all cuts'] = ROOT.TH1D("trackchi2_6","Track ndf (all cuts)",250,0.,100) histsdict['trackchi2'] = chisq # }}} # {{{ tracknumber distributions #----------------------------------------------------------------------------------------------------------- tracknum={} tracknum['no cuts'] = ROOT.TH1D("trknumdist1","Track number distribution no cuts",100,0,100) tracknum['all cuts'] = ROOT.TH1D("trknumdist2","Track number distribution all cuts",100,0,100) #tracknum['low snr'] = ROOT.TH1D("trknumdist3","Track number distribution low snr",100,0,100) histsdict['tracknum'] = tracknum # }}} # {{{ clsizerad #----------------------------------------------------------------------------------------------------------- clrad={} clrad['no cuts'] = ROOT.TH1D("hclsizeradius1","clustersizesum vs radius",150,0.,15.) clrad['all cuts'] = ROOT.TH1D("hclsizeradius2","clustersizesum vs radius",150,0.,15.) clrad['in curvature cut'] = ROOT.TH1D("hclsizeradius3","clustersizesum vs radius for curvcut",150,0.,15.) histsdict['clsizeVsRad'] = clrad # }}} # {{{ clustersize #----------------------------------------------------------------------------------------------------------- hclsize={} hclsize['3D'] = ROOT.TH1D("hclustersize3D" ,"Clustersize 3D",100,0.,100.) hclsize['3DU'] = ROOT.TH1D("hclustersize3DU","Clustersize 3D unshared",100,0.,100.) hclsize['2D'] = ROOT.TH1D("hclustersize2D" ,"Clustersize 2D",100,0.,100.) histsdict['clustersize'] = hclsize # }}} # {{{ htrackld #----------------------------------------------------------------------------------------------------------- htrackld={} htrackld['no cuts'] = ROOT.TH1D("htracklen1","Track length (no cuts)",800,0.,80.) htrackld['curvature cut'] = ROOT.TH1D("htracklen2","Track length (curv cut)",800,0,80) htrackld['all cuts'] = ROOT.TH1D("htracklen3","track length (all cuts)",800,0.,80.) htrackld['low snr'] = ROOT.TH1D("htracklen4","track length (low snr)",800,0.,80.) histsdict['tracklen'] = htrackld # }}} # {{{ hthetad #----------------------------------------------------------------------------------------------------------- hthetad={} hthetad['no cuts'] = ROOT.TH1D("htheta1","theta angle of tracks",180,0.,180.) hthetad['theta cut'] = ROOT.TH1D("htheta2","theta theta cut",180,0.,180.) hthetad['curvature cut'] = ROOT.TH1D("htheta3","theta curv cut",180,0.,180.) hthetad['all cuts'] = ROOT.TH1D("htheta4","theta (all cuts)",180,0.,180.) hthetad['track cut'] = ROOT.TH1D("htheta5","theta single track cut",180,0.,180.) hthetad['low snr'] = ROOT.TH1D("htheta6","theta low snr",180,0.,180.) hthetad['no theta cut'] = ROOT.TH1D("htheta7","theta all but theta cut",180,0.,180.) hthetad['fit flag cut'] = ROOT.TH1D("htheta8","theta fit flag cut",180,0.,180.) hthetad['mom cut'] = ROOT.TH1D("htheta9","theta momentum cut",180,0.,180.) hthetad['phi cut'] = ROOT.TH1D("htheta10","theta phi cut",180,0.,180.) hthetad['cp cut'] = ROOT.TH1D("htheta11","theta cp cut",180,0.,180.) hthetad['cl sum cut'] = ROOT.TH1D("htheta12","theta cl sum cut",180,0.,180.) hthetad['cl mean cut'] = ROOT.TH1D("htheta13","theta cl mean cut",180,0.,180.) #hthetad['r cl sum'] = ROOT.TH1D("htheta14","theta r clsum",180,0.,180.) #hthetad['r cl mean'] = ROOT.TH1D("htheta15","theta r clmean",180,0.,180.) #hthetad['r phi'] = ROOT.TH1D("htheta16","theta r phi",180,0.,180.) #hthetad['r mom'] = ROOT.TH1D("htheta17","theta r mom",180,0.,180.) histsdict['theta'] = hthetad # }}} # {{{ hclustermaxd #----------------------------------------------------------------------------------------------------------- hclustermaxd={} #hclustermaxd['track cuts'] = ROOT.TH1D("hClusterMax1","Maximal sample amplitude in Cluster (track cut)",1200,0.,1200.) hclustermaxd['sat cut'] =ROOT.TH1D("hClusterMax1","max sample amplitude (saturaion)",250,0.,2000.) hclustermaxd['low snr'] =ROOT.TH1D("hClusterMax2","max sample amplitude (low snr)",250,0.,2000.) hclustermaxd['all cuts'] =ROOT.TH1D("hClusterMax3","max sample amplitude (all cuts)",250,0.,2000.) hclustermaxd['all'] =ROOT.TH1D("hClusterMax4","max sample amplitude ",250,0.,2000.) hclustermaxd['all cutted'] =ROOT.TH1D("hClusterMax5","max sample amplitude (all cutted)",250,0.,2000.) #hclustermaxd['track cut'] =ROOT.TH1D("hClusterMax5","max sample amplitude (track cut)",250,0.,2000.) #hclustermaxd['mom cut'] =ROOT.TH1D("hClusterMax5","max sample amplitude (mom cut)",250,0.,2000.) #hclustermaxd['theta cut'] =ROOT.TH1D("hClusterMax5","max sample amplitude (theta cut)",250,0.,2000.) #hclustermaxd['fit flag cut'] =ROOT.TH1D("hClusterMax5","max sample amplitude (fit flag cut)",250,0.,2000.) #hclustermaxd['cp cut'] =ROOT.TH1D("hClusterMax5","max sample amplitude (cp cut)",250,0.,2000.) #hclustermaxd['phi cut'] =ROOT.TH1D("hClusterMax5","max sample amplitude (phi cut)",250,0.,2000.) histsdict['clustermax']=hclustermaxd #----------------------------------------------------------------------------------------------------------- # }}} # {{{ hclusteramp hclusteramp={} hclusteramp['sat cut'] =ROOT.TH1D("hClusterAmp1","Cluster Amplitude (saturaion)",1000,0.,100000.) hclusteramp['low snr'] =ROOT.TH1D("hClusterAmp2","Cluster Amplitude (low snr)",1000,0.,100000.) hclusteramp['all cuts'] =ROOT.TH1D("hClusterAmp3","Cluster Amplitude (lall cuts)",1000,0.,100000.) hclusteramp['all'] =ROOT.TH1D("hClusterAmp4","Cluster Amplitude ",1000,0.,100000.) hclusteramp['all cutted'] =ROOT.TH1D("hClusterAmp5","Cluster Amplitude (all cutted)",1000,0.,100000.) hclusteramp['track cut'] =ROOT.TH1D("hClusterAmp6","Cluster Amplitude (track cut)",1000,0.,100000.) hclusteramp['mom cut'] =ROOT.TH1D("hClusterAmp7","Cluster Amplitude (mom cut)",1000,0.,100000.) hclusteramp['theta cut'] =ROOT.TH1D("hClusterAmp8","Cluster Amplitude (theta cut)",1000,0.,100000.) hclusteramp['fit flag cut'] =ROOT.TH1D("hClusterAmp9","Cluster Amplitude (fit flag cut)",1000,0.,100000.) hclusteramp['cp cut'] =ROOT.TH1D("hClusterAmp10","Cluster Amplitude (cp cut)",1000,0.,100000.) hclusteramp['phi cut'] =ROOT.TH1D("hClusterAmp11","Cluster Amplitude (phi cut)",1000,0.,100000.) histsdict['clusteramp'] =hclusteramp # }}} # {{{ hphid #----------------------------------------------------------------------------------------------------------- hphid={} hphid['no cuts'] = ROOT.TH1D("hphi1","phi no cut",360,-180.,180.) hphid['track cut'] = ROOT.TH1D("hphi2","phi track cut",360,-180.,180.) hphid['curvature cut'] = ROOT.TH1D("hphi3","phi curvature cut",360,-180.,180.) hphid['low snr'] = ROOT.TH1D("hphi4","phi low snr",360,-180.,180.) hphid['all cuts'] = ROOT.TH1D("hphi5","phi (after cuts)",360,-180.,180.) hphid['no phi cut'] = ROOT.TH1D("hphi6","phi all but phi cut",360,-180.,180.) hphid['mom cut'] = ROOT.TH1D("hphi7","phi momentum cut",360,-180.,180.) hphid['theta cut'] = ROOT.TH1D("hphi8","phi theta cut",360,-180.,180.) hphid['fit flag cut'] = ROOT.TH1D("hphi9","phi fit flag cut",360,-180.,180.) hphid['cp cut'] = ROOT.TH1D("hphi10","phi cp cut",360,-180.,180.) hphid['phi cut'] = ROOT.TH1D("hphi11","phi phi cut",360,-180.,180.) hphid['cl sum cut'] = ROOT.TH1D("hphi12","phi cl sum cut",360,-180.,180.) hphid['cl mean cut'] = ROOT.TH1D("hphi13","phi cl mean cut",360,-180.,180.) hphid['phi'] = ROOT.TH1D("htrackphi","phi of Track",360,-180.,180.) histsdict['phi']=hphid #----------------------------------------------------------------------------------------------------------- hmomd={} hmomd['no cut'] = ROOT.TH1D("hmom1","mom no cut",3000,0.,300.) hmomd['track cut'] = ROOT.TH1D("hmom2","mom track cut",3000,0.,300.) hmomd['curvature cut'] = ROOT.TH1D("hmom3","mom curvature cut",3000,0.,300.) hmomd['low snr'] = ROOT.TH1D("hmom4","mom low snr",3000,0.,300.) hmomd['all cuts'] = ROOT.TH1D("hmom5","mom (after cuts)",3000,0.,300.) hmomd['no mom cut'] = ROOT.TH1D("hmom6","mom all but mom cut",3000,0.,300.) hmomd['mom cut'] = ROOT.TH1D("hmom7","mom momentum cut",3000,0.,300.) hmomd['theta cut'] = ROOT.TH1D("hmom8","mom theta cut",3000,0.,300.) hmomd['fit flag cut'] = ROOT.TH1D("hmom9","mom fit flag cut",3000,0.,300.) hmomd['cp cut'] = ROOT.TH1D("hmom10","mom cp cut",3000,0.,300.) hmomd['phi cut'] = ROOT.TH1D("hmom11","mom phi cut",3000,0.,300.) hmomd['cl sum cut'] = ROOT.TH1D("hmom12","mom cl sum cut",3000,0.,300.) hmomd['cl mean cut'] = ROOT.TH1D("hmom13","mom cl mean cut",3000,0.,300.) histsdict['mom']=hmomd #----------------------------------------------------------------------------------------------------------- hdres={} hdres['digi-track perp vs z']=TH2D('hdigiTr_perp_vs_z','Digi to Track Residual Perp',75,0,75,50,-1,1) hdres['digi-track perp sign vs z']=TH2D('hdigiTr_perpS_vs_z','Digi to Track Residual Perp Signed',75,0,75,50,-1,1) hdres['digi-track x vs z']=TH2D('hdigiTr_x_vs_z','Digi to Track Residual X',75,0,75,50,-1,1) hdres['digi-track y vs z']=TH2D('hdigiTr_y_vs_z','Digi to Track Residual Y',75,0,75,50,-1,1) hdres['digi-track z vs z']=TH2D('hdigiTr_z_vs_z','Digi to Track Residual Z',75,0,75,50,-1,1) hdres['digi variance']=TH1D('hdigiVariance','Perp variance of digis (not normalized)',75,0,75) hdres['ndigis']=TH1D('hndigis','Number of digis in z-bin',75,0,75) hdres['digilenVsZres']=TH2D('hdigilenVsResZ','Digi Length vs Resiudal Z',30,0,30,100,-1,1) hdres['digilenVsZ']=TH2D('hdigilengthsVsZ','Digi Length vs Z',75,0,75,30,0,30) histsdict['digi residuals']=hdres #----------------------------------------------------------------------------------------------------------- herr={} herr['cluster err X vs z'] = TH2D("herr_cl_errXvsZ","Cluster Error X vs Z",75,0.,75.,600,0,1500) herr['cluster err Y vs z'] = TH2D("herr_cl_errYvsZ","Cluster Error Y vs Z",75,0.,75.,600,0,1500) herr['cluster err Z vs z'] = TH2D("herr_cl_errZvsZ","Cluster Error Z vs Z",75,0.,75.,600,0,1500) herr['cluster err A0 vs z'] = TH2D("herr_cl_errA0vsZ","Cluster Error A0 vs Z",75,0.,75.,600,0,15000) herr['cluster err A1 vs z'] = TH2D("herr_cl_errA1vsZ","Cluster Error A1 vs Z",75,0.,75.,600,0,1500) herr['cluster err A2 vs z'] = TH2D("herr_cl_errA2vsZ","Cluster Error A2 vs Z",75,0.,75.,600,0,1500) herr['cluster err RP vs z'] = TH2D("herr_cl_errRPvsZ","Cluster Error RP vs Z",75,0.,75.,400,0,2000) herr['track err X vs z'] = TH2D("herr_tr_errXvsZ","Track Error X vs Z",75,0.,75.,200,0,200) herr['track err Y vs z'] = TH2D("herr_tr_errYvsZ","Track Error Y vs Z",75,0.,75.,200,0,200) herr['track err Z vs z'] = TH2D("herr_tr_errZvsZ","Track Error Z vs Z",75,0.,75.,200,0,200) herr['cov res cut MC'] = TH2D('herr_covResCutMC','error from cov in direction of MCresidual',75,0,75,125,0,1000) herr['cov res cut'] = TH2D('herr_covResCut','error from cov in direction of residual',75,0,75,125,0,1000) histsdict['error']=herr #----------------------------------------------------------------------------------------------------------- hpulls={} hpulls['cluster x vs z'] = TH2D("hpull_cl_xVSz","(clusterposX-trackpos)/clustererrX;Z (cm);Unit",75,0.,75.,200,-5,5) hpulls['cluster y vs z'] = TH2D("hpull_cl_yVSz","(clusterposY-trackpos)/clustererrY;Z (cm);Unit",75,0.,75.,200,-5,5) hpulls['cluster z vs z'] = TH2D("hpull_cl_zVSz","(clusterposZ-trackpos)/clustererrZ;Z (cm);Unit",75,0.,75.,200,-5,5) hpulls['cluster a0 vs z'] = TH2D("hpull_cl_a0VSz","(clusterposA0-trackpos)/clustererrA0;Z (cm);Unit",75,0.,75.,200,-5,5) hpulls['cluster a1 vs z'] = TH2D("hpull_cl_a1VSz","(clusterposA1-trackpos)/clustererrA1;Z (cm);Unit",75,0.,75.,200,-5,5) hpulls['cluster a2 vs z'] = TH2D("hpull_cl_a2VSz","(clusterposA2-trackpos)/clustererrA2;Z (cm);Unit",75,0.,75.,200,-5,5) hpulls['clustert x vs z'] = TH2D("hpull_clt_xVSz","(clusterposX-trackpos)/trackrerr;Z (cm);Unit",75,0.,75.,200,-10,10) hpulls['clustert y vs z'] = TH2D("hpull_clt_yVSz","(clusterposY-trackpos)/trackrerr;Z (cm);Unit",75,0.,75.,200,-10,10) hpulls['clustert z vs z'] = TH2D("hpull_clt_zVSz","(clusterposZ-trackpos)/trackrerr;Z (cm);Unit",75,0.,75.,200,-10,10) hpulls['cluster MCx vs z'] =TH2D("hpull_clMC_xVSz","(clusterposX-MCposX)/clustererrX;Z (cm);Unit",75,0.,75.,200,-20,20) hpulls['cluster MCy vs z'] =TH2D("hpull_clMC_yVSz","(clusterposY-MCposY)/clustererrY;Z (cm);Unit",75,0.,75.,200,-20,20) hpulls['cluster MCz vs z'] =TH2D("hpull_clMC_zVSz","(clusterposZ-MCposZ)/clustererrZ;Z (cm);Unit",75,0.,75.,200,-20,20) hpulls['cluster MCa0 vs z']=TH2D("hpull_clMC_a0VSz","(clusterposA0-MCposA0)/clustererrA0;Z (cm);Unit",75,0.,75.,200,-5,5) hpulls['cluster MCa1 vs z'] =TH2D("hpull_clMC_a1VSz","(clusterposA1-MCposA1)/clustererrA1;Z (cm);Unit",75,0.,75.,200,-5,5) hpulls['cluster MCa2 vs z'] =TH2D("hpull_clMC_a2VSz","(clusterposA2-MCposA2)/clustererrA2;Z (cm);Unit",75,0.,75.,200,-5,5) hpulls['cluster MCa0 vs z fg']=TH2D("hpull_clMC_a0VSz_fg","(clusterposA0-MCposA0)/clustererrA0 (fit good,not geom);Z (cm);Unit",75,0.,75.,200,-5,5) hpulls['cluster MCa1 vs z fg'] =TH2D("hpull_clMC_a1VSz_fg","(clusterposA1-MCposA1)/clustererrA1 (fit good,not geom);Z (cm);Unit",75,0.,75.,200,-5,5) hpulls['cluster MCa2 vs z fg'] =TH2D("hpull_clMC_a2VSz_fg","(clusterposA2-MCposA2)/clustererrA2 (fit good,not geom);Z (cm);Unit",75,0.,75.,200,-5,5) hpulls['trackp x vs z'] = TH2D("hpull_trp_xVSz","(trackposX-MCpos)/Trackrerr;Z (cm);Unit",75,0.,75.,200,-20,20) hpulls['trackp y vs z'] = TH2D("hpull_trp_yVSz","(trackposY-MCpos)/Trackrerr;Z (cm);Unit",75,0.,75.,200,-20,20) hpulls['trackp z vs z'] = TH2D("hpull_trp_zVSz","(trackposZ-MCpos)/Trackrerr;Z (cm);Unit",75,0.,75.,200,-20,20) hpulls['track phi vs z'] = TH2D("hpull_tr_phiVSz","(trackPhi-MCPhi)/Trackrerr;Z (cm);Unit",75,0.,75.,100,-20,20) hpulls['track theta vs z'] =TH2D("hpull_tr_thetaVSz","(tracktheta-MCtheta)/Trackrerr;Z (cm);Unit",75,0.,75.,100,-20,20) hpulls['track moml vs z'] = TH2D("hpull_tr_momVSzL","(trackmomL-MCmom)/TrackMomrerr;Z (cm);Unit",75,0.,75.,100,-20,20) hpulls['track momt vs z'] = TH2D("hpull_tr_momVSzT","(trackmomT-MCmom)/TrackMomrerr;Z (cm);Unit",75,0.,75.,100,-20,20) hpulls['track pos vs z'] = TH2D("hpull_tr_posVSz","(trackpos-MCpos)/Trackrerr;Z (cm);Unit",75,0.,75.,100,-2,2) hpulls['phierr'] =ROOT.TH1D("hphierr","error in track phi",200,-10,10) hpulls['MCphi']=ROOT.TH1D("hMCPhi","MC track phi",360,-180,180) hpulls['cov cut MC']=TH2D('hpull_covCutPullMC','(Cluster-MC) Residual/Cluster error (covCut) ',75,0,75,125,0,5) hpulls['cov cut']=TH2D('hpull_covCutPull','(Cluster-Track) Residual/Cluster error (covCut) ',75,0,75,125,0,5) hpulls['cluster MCU vs z']=TH2D('hpull_clMC_uVsz','(clusterposU-MCposU)/clustererrU;Z (cm);Unit',75,0,75,100,-5,5) hpulls['cluster MCV vs z']=TH2D('hpull_clMC_vVsz','(clusterposV-MCposV)/clustererrV;Z (cm);Unit',75,0,75,100,-5,5) hpulls['cluster U vs z']=TH2D('hpull_cl_uVsz','(clusterposU-posU)/clustererrU;Z (cm);Unit',75,0,75,100,-5,5) hpulls['cluster V vs z']=TH2D('hpull_cl_vVsz','(clusterposV-posV)/clustererrV;Z (cm);Unit',75,0,75,100,-5,5) histsdict['pulls']=hpulls #----------------------------------------------------------------------------------------------------------- hresvsZ={} hresvsZ['cluster track X'] =TH2D("hClusterResXvsZ","Cluster-track Res X vs Z;Z (cm); Res (#mu m)" ,75,0.,75.,400,-2000,2000) hresvsZ['cluster track Y'] =TH2D("hClusterResYvsZ","Cluster-track Res Y vs Z;Z (cm); Res (#mu m)" ,75,0.,75.,400,-2000,2000) hresvsZ['cluster track Z'] =TH2D("hClusterResZvsZ","Cluster-track Res Z vs Z;Z (cm); Res (#mu m)" ,75,0.,75.,400,-2000,2000) hresvsZ['cluster track X Cut20']=TH2D("hClusterResXvsZcut20","Cluster-track Res X vs Z (R-Cut,Phi-Cut 20);Z (cm); Res (#mu m)" ,75,0.,75.,400,-2000,2000) hresvsZ['cluster track Y Cut20']=TH2D("hClusterResYvsZcut20","Cluster-track Res Y vs Z (R-Cut,Phi-Cut 20);Z (cm); Res (#mu m)" ,75,0.,75.,400,-2000,2000) hresvsZ['cluster track Z Cut20']=TH2D("hClusterResZvsZcut20","Cluster-track Res Z vs Z (R-Cut,Theta-Cut 20);Z (cm); Res (#mu m)" ,75,0.,75.,400,-2000,2000) hresvsZ['cluster track X Cut10']=TH2D("hClusterResXvsZcut10","Cluster-track Res X vs Z (R-Cut,Phi-Cut10);Z (cm); Res (#mu m)" ,75,0.,75.,400,-2000,2000) hresvsZ['cluster track Y Cut10']=TH2D("hClusterResYvsZcut10","Cluster-track Res Y vs Z (R-Cut,Phi-Cut10);Z (cm); Res (#mu m)" ,75,0.,75.,400,-2000,2000) hresvsZ['cluster track Z Cut10']=TH2D("hClusterResZvsZcut10","Cluster-track Res Z vs Z (R-Cut,Theta-Cut10);Z (cm); Res (#mu m)" ,75,0.,75.,400,-2000,2000) hresvsZ['cluster MC X'] =TH2D("hClusterMCResXvsZ","Cluster-MC Res X vs Z;Z (cm); Res (#mu m)" ,75,0.,75.,200,-1000,1000) hresvsZ['cluster MC Y'] =TH2D("hClusterMCResYvsZ","Cluster-MC Res Y vs Z;Z (cm); Res (#mu m)" ,75,0.,75.,200,-1000,1000) hresvsZ['cluster MC Z'] =TH2D("hClusterMCResZvsZ","Cluster-MC Res Z vs Z;Z (cm); Res (#mu m)" ,75,0.,75.,400,-2000,2000) hresvsZ['track MC X'] =TH2D("hTrackMCResXvsZ","Track-MC Res X vs Z;Z (cm); Res (#mu m)" ,75,0.,75.,200,-1000,1000) hresvsZ['track MC Y'] =TH2D("hTrackMCResYvsZ","Track-MC Res Y vs Z;Z (cm); Res (#mu m)" ,75,0.,75.,200,-1000,1000) hresvsZ['track MC Z'] =TH2D("hTrackMCResZvsZ","Track-MC Res Z vs Z;Z (cm); Res (#mu m)" ,75,0.,75.,200,-1000,1000) hresvsZ['cluster track A0'] =TH2D("hClusterResA0vsZ","Cluster-track Res A0 vs Z;Z (cm); Res (#mu m)" ,75,0.,75.,200,-10,10) hresvsZ['cluster track A1'] =TH2D("hClusterResA1vsZ","Cluster-track Res A1 vs Z;Z (cm); Res (#mu m)" ,75,0.,75.,200,-1000,1000) hresvsZ['cluster track A2'] =TH2D("hClusterResA2vsZ","Cluster-track Res A2 vs Z;Z (cm); Res (#mu m)" ,75,0.,75.,200,-1000,1000) hresvsZ['cluster MC A0'] =TH2D("hClusterMCResA0vsZ","Cluster-MC Res A0 vs Z;Z (cm); Res (#mu m)" ,75,0.,75.,200,-1000,1000) hresvsZ['cluster MC A1'] =TH2D("hClusterMCResA1vsZ","Cluster-MC Res A1 vs Z;Z (cm); Res (#mu m)" ,75,0.,75.,200,-1000,1000) hresvsZ['cluster MC A2'] =TH2D("hClusterMCResA2vsZ","Cluster-MC Res A2 vs Z;Z (cm); Res (#mu m)" ,75,0.,75.,400,-2000,2000) hresvsZ['track MC A0'] =TH2D("hTrackMCResA0vsZ","Track-MC Res A0 vs Z;Z (cm);Res (#mu m)" ,75,0,75,200,-1000,1000) hresvsZ['track MC A1'] =TH2D("hTrackMCResA1vsZ","Track-MC Res A1 vs Z;Z (cm);Res (#mu m)" ,75,0,75,200,-1000,1000) hresvsZ['track MC A2'] =TH2D("hTrackMCResA2vsZ","Track-MC Res A2 vs Z;Z (cm);Res (#mu m)" ,75,0,75,200,-1000,1000) hresvsZ['cluster track A0 fg'] =TH2D("hClusterResA0vsZ_fg","Cluster-track Res A0 vs Z (fit good,not geom);Z (cm); Res (#mu m)",75,0.,75.,200,-1000,1000) hresvsZ['cluster track A1 fg'] =TH2D("hClusterResA1vsZ_fg","Cluster-track Res A1 vs Z (fit good,not geom);Z (cm); Res (#mu m)",75,0.,75.,200,-1000,1000) hresvsZ['cluster track A2 fg'] =TH2D("hClusterResA2vsZ_fg","Cluster-track Res A2 vs Z (fit good,not geom);Z (cm); Res (#mu m)",75,0.,75.,200,-1000,1000) hresvsZ['cluster MC A0 fg'] =TH2D("hClusterMCResA0vsZ_fg","Cluster-MC Res A0 vs Z (fit good,not geom);Z (cm); Res (#mu m)",75,0.,75.,200,-1000,1000) hresvsZ['cluster MC A1 fg'] =TH2D("hClusterMCResA1vsZ_fg","Cluster-MC Res A1 vs Z (fit good,not geom);Z (cm); Res (#mu m)",75,0.,75.,200,-1000,1000) hresvsZ['cluster MC A2 fg'] =TH2D("hClusterMCResA2vsZ_fg","Cluster-MC Res A2 vs Z (fit good,not geom);Z (cm); Res (#mu m)",75,0.,75.,400,-2000,2000) hresvsZ['cluster track U'] =TH2D("hClusterResUvsZ","Cluster-track Res U vs Z;Z (cm); Res (#mu m)" ,75,0.,75.,400,-2000,2000) hresvsZ['cluster track V'] =TH2D("hClusterResVvsZ","Cluster-track Res V vs Z;Z (cm); Res (#mu m)" ,75,0.,75.,400,-2000,2000) hresvsZ['cluster track U Cut']=TH2D("hClusterResUvsZcut","Cluster-track Res U vs Z (R-Cut);Z (cm); Res (#mu m)" ,75,0.,75.,400,-2000,2000) hresvsZ['cluster track V Cut']=TH2D("hClusterResVvsZcut","Cluster-track Res V vs Z (R-Cut);Z (cm); Res (#mu m)" ,75,0.,75.,400,-2000,2000) hresvsZ['cluster MC U'] =TH2D("hClusterMCResUvsZ","Cluster-MC Res U vs Z;Z (cm); Res (#mu m)",75,0.,75.,200,-1000,1000) hresvsZ['cluster MC V'] =TH2D("hClusterMCResVvsZ","Cluster-MC Res V vs Z;Z (cm); Res (#mu m)",75,0.,75.,200,-1000,1000) hresvsZ['track MC U'] =TH2D("hTrackMCResUvsZ","Track-MC Res U vs Z;Z (cm); Res (#mu m)",75,0.,75.,200,-1000,1000) hresvsZ['track MC V'] =TH2D("hTrackMCResVvsZ","Track-MC Res V vs Z;Z (cm); Res (#mu m)",75,0.,75.,200,-1000,1000) hresvsZ['cluster MC rp'] =TH2D("hClusterMCResRPvsZ","Cluster MC Res RP vs Z;Z (cm); Res (#mu m)",75,0.,75.,200,-10000,10000) hresvsZ['residualMagMC'] =TH2D('hResMagVsZMC','MC Res Mag',75,0,75,125,0,3000) hresvsZ['residualMag'] =TH2D('hResMagVsZ','Res Mag',75,0,75,125,0,3000) histsdict['res vs Z']=hresvsZ #----------------------------------------------------------------------------------------------------------- hresvsth={} hresvsth['cluster MC X'] = TH2D("hClusterMCResvsThetaX","Cluster MC Res X vs Theta",180,0,180,200,-2000,2000) hresvsth['cluster MC Y'] = TH2D("hClusterMCResvsThetaY","Cluster MC Res Y vs Theta",180,0,180,200,-2000,2000) hresvsth['cluster MC Z'] = TH2D("hClusterMCResvsThetaZ","Cluster MC Res Z vs Theta",180,0,180,200,-2000,2000) hresvsth['cluster MC rp'] = TH2D("hClusterMCResvsThetaRP","Cluster MC Res RP vs Theta",180,0,180,200,-10000,10000) hresvsth['cluster MC rp tan'] = TH2D("hClusterMCResRPvsTanTheta","Cluster MC Res RP vs tan(Theta)",100,-1000,1000,400,-40000,40000) histsdict['res vs theta']=hresvsth #----------------------------------------------------------------------------------------------------------- #histsdict['hDigiWidth'] = ROOT.TH1D("hDigiWidth","sigma of digi",100,0.,10.*(1/args.sampling)*1000) histsdict['hDigiRMS'] = ROOT.TH1D("hDigiRMS","RMS of digi",100,0.,10.) histsdict['hDigiMaxS'] = ROOT.TH1D("hDigiMaxS","Maximal sample amplitude",1024,0.,1024.) histsdict['hintsampleamp'] = ROOT.TH1D("hintsampleamp","integrated sample amp",2500,0.,10000.) histsdict['hnsamperpad'] = ROOT.TH1D("hnsamperpad","number of samples per pad",20,0.,20.) histsdict['hnsamperpadpsa'] = ROOT.TH1D("hnsamperpadpsa","number of samples per pad psa",20,0.,20.) histsdict['hnpadsndigi'] = ROOT.TH1D("hnpadsvsndigi","number of pads - number of digis",20,-10.,10.) histsdict['hdigiperpad'] = ROOT.TH1D("hdigiperpad","digis per pad",10,0.,10.) histsdict['hsamperdigi'] = ROOT.TH1D("hsamperdigi","samples per digi",20,0.,20.) histsdict['hslicehist'] = ROOT.TH1D("hslicehist","clusterpos",80,-60.,20.) histsdict['hclsizeradius2D'] = ROOT.TH1D("hclsizeradius2D","clustersizesum vs radius",150,0.,15.) histsdict['hclsizevsradius2D'] = TH2D("hclsizevsradius2D","radius vs clustersize",150,0.,15.,100,0.,100.) return histsdict def cosmic_histopt(): histsopt={} histsopt['hyz le90']="colz" histsopt['hxy gt90']="colz" histsopt['hyz gt90']="colz" histsopt['hits per track vs res']="colz" histsopt['theta vs fitf']="colz" histsopt['theta vs clp']="colz" histsopt['theta vs mom']="colz" histsopt['theta vs clsumamp']="colz" histsopt['theta vs clmeanamp f']="colz" histsopt['theta vs clmeanamp']="colz" histsopt['theta vs digsum']="colz" histsopt['theta vs median']="colz" histsopt['theta vs median cut']="colz" histsopt['phi vs clsumamp']="colz" histsopt['phi vs clmeanamp']="colz" histsopt['phi vs digsum']="colz" histsopt['phi vs mom']="colz" histsopt['phi vs clp']="colz" histsopt['mom vs clsumamp']="colz" histsopt['mom vs clmeanamp']="colz" histsopt['mom vs digsum']="colz" histsopt['theta vs phi']="colz" histsopt['theta vs phi cut']="colz" histsopt['cut reduction']="colz,text" histsopt['hclsizevsradius']="colz" histsopt['hcl size vs amp']="colz" histsopt['hcl medians meana']="colz" histsopt['hresvsclsize']="colz" histsopt['hresvsz']="colz" histsopt['hxy']="colz" histsopt['hxy amp']="colz" histsopt['hxy amp cut']="colz" histsopt['hxy res']="colz" histsopt['hxy resR']="colz" histsopt['hxy resY']="colz" histsopt['hyz']="colz" histsopt['hyz res']="colz" histsopt['hxy last']="colz" histsopt['hxy first']="colz" histsopt['hxyc']="colz" histsopt['hyzc']="colz" histsopt['hxysnr']="colz" histsopt['hyzsnr']="colz" histsopt['resxy']="colz" histsopt['tcuts']="colz" histsopt['z vs theta']="colz" histsopt['z vs theta c']="colz" histsopt['z vs phi']="colz" histsopt['z vs phi c']="colz" histsopt['hxy le90']="colz" return histsopt def cosmic_canvasopt(): canvasopt={} canvasopt['hclsizevsradius']="logz" return canvasopt def cosmic_axlabel(): axlabel=[] axlabel.append({}) axlabel.append({}) axlabel[0]['hsnr']="SNR" axlabel[0]['csnr']="Cluster SNR" axlabel[0]['hmom']="Momentum" axlabel[0]['cut reduction']="Type" axlabel[1]['cut reduction']="Cut" return axlabel def cosmic_hslices(zSlices,rangefile): resbins=1000 rebin1=30 rebin2=40 rebin3=50 cSlices = (3,6,9,12,15,18,21,24,50) rSlices = (6.6,8.2,9.8,11.4,13,15) xySlices = (-10,-5,0,5,10,20) cpSlices = (7,14,21,28,35,42) thSlices = (90,95,100,105,110,120) phiSlices = (30,60,90,120,150,180) hslices={} hslices['residualsX'] = dict([(i, ROOT.TH1D("StatsResX Z:"+str(zSlices[i]), "Residuals X", resbins,-10000,10000)) for i in range(len(zSlices))]) hslices['residualsY'] = dict([(i, ROOT.TH1D("StatsResY Z:"+str(zSlices[i]), "Residuals Y", resbins,-10000,10000)) for i in range(len(zSlices))]) hslices['residualsZ'] = dict([(i, ROOT.TH1D("StatsResZ Z:"+str(zSlices[i]), "Residuals Z", resbins,-10000,10000)) for i in range(len(zSlices))]) hslices['MCresidualsX'] = dict([(i, ROOT.TH1D("MCStatsResX Z:"+str(zSlices[i]), "MC Residuals X", resbins,-10000,10000)) for i in range(len(zSlices))]) hslices['MCresidualsY'] = dict([(i, ROOT.TH1D("MCStatsResY Z:"+str(zSlices[i]), "MC Residuals Y", resbins,-10000,10000)) for i in range(len(zSlices))]) hslices['MCresidualsZ'] = dict([(i, ROOT.TH1D("MCStatsResZ Z:"+str(zSlices[i]), "MC Residuals Z", resbins,-10000,10000)) for i in range(len(zSlices))]) hslices['MCTrackresidualsX'] = dict([(i, ROOT.TH1D("MCTrackStatsResX Z:"+str(zSlices[i]), "MC-Track Residuals X", resbins,-10000,10000)) for i in range(len(zSlices))]) hslices['MCTrackresidualsY'] = dict([(i, ROOT.TH1D("MCTrackStatsResY Z:"+str(zSlices[i]), "MC-Track Residuals Y", resbins,-10000,10000)) for i in range(len(zSlices))]) hslices['MCTrackresidualsZ'] = dict([(i, ROOT.TH1D("MCTrackStatsResZ Z:"+str(zSlices[i]), "MC-Track Residuals Z", resbins,-10000,10000)) for i in range(len(zSlices))]) hslices['nRresidualsX'] = dict([(i, ROOT.TH1D("StatsResX R:"+str(rSlices[i]), "R Residuals X", resbins,-10000,10000)) for i in range(len(rSlices))]) hslices['nRresidualsZ'] = dict([(i, ROOT.TH1D("StatsResZ R:"+str(rSlices[i]), "R Residuals Z", resbins,-10000,10000)) for i in range(len(rSlices))]) hslices['nresperclsize'] = dict([(i, ROOT.TH1D("resperclsize"+str(cSlices[i]), "residuals for clustersize "+str(cSlices[i]), resbins,-10000,10000)) for i in range(len(cSlices))]) hslices['clustersize'] = dict([(i, ROOT.TH1D("clustersize3D"+str(zSlices[i]), "Clustersize 3D",100,0.,100.)) for i in range(len(zSlices))]) hslices['clustersizeU'] = dict([(i, ROOT.TH1D("clustersize3DU"+str(zSlices[i]), "Clustersize 3D Unshared",1000,0.,100.)) for i in range(len(zSlices))]) hslices['clustersize2D'] = dict([(i, ROOT.TH1D("clustersize2D"+str(zSlices[i]),"Clustersize 2D",100,0.,100.)) for i in range(len(zSlices))]) hslices['nsnr'] = dict([(i, ROOT.TH1D("nsnr"+str(zSlices[i]),"signal to noise",200,0.,1000.)) for i in range(len(zSlices))]) hslices['csnr'] = dict([(i, ROOT.TH1D("csnr"+str(zSlices[i]),"signal to noise (cluster)",500,0.,5000.)) for i in range(len(zSlices))]) hslices['nsamperpad'] = dict([(i, ROOT.TH1D("nsampperpad"+str(zSlices[i]),"samples per pad",20,0.,20.)) for i in range(len(zSlices))]) hslices['ndigiperpad'] = dict([(i, ROOT.TH1D("digiperpad"+str(zSlices[i]),"digis per pad",10,0.,10.)) for i in range(len(zSlices))]) hslices['nsamperclust'] = dict([(i, ROOT.TH1D("samperclust"+str(zSlices[i]),"samples per cluster",100,0.,100.)) for i in range(len(zSlices))]) hslices['clustermax'] = dict([(i, ROOT.TH1D("clustermax"+str(zSlices[i]),"max amp in cluster",250,0.,1000.)) for i in range(len(zSlices))]) hslices['clusteramp'] = dict([(i, ROOT.TH1D("clusteramp"+str(zSlices[i]),"cluster amp",250,0.,2000.)) for i in range(len(zSlices))]) hslices['XResidualsX'] = dict([(i, ROOT.TH1D("StatsResX X:"+str(xySlices[i]),"XResiduals X", resbins,-10000,10000)) for i in range(len(xySlices))]) hslices['YResidualsX'] = dict([(i, ROOT.TH1D("StatsResX Y:"+str(xySlices[i]),"YResiduals X", resbins,-10000,10000)) for i in range(len(xySlices))]) hslices['cpResidualsX'] = dict([(i, ROOT.TH1D("StatsResX cp:"+str(cpSlices[i]),"cpResiduals X", resbins,-10000,10000)) for i in range(len(cpSlices))]) hslices['thetaResidualsX']= dict([(i, ROOT.TH1D("StatsResX th:"+str(thSlices[i]),"thResiduals X", resbins,-10000,10000)) for i in range(len(thSlices))]) #X-Res hslices['hxy slice']=dict([(i,ROOT.TH2D("hxy"+str(zSlices[i]),"xy "+str(zSlices[i]),64,-16.,16.,64,-16.,16.)) for i in range(len(zSlices))]) hslices['hxy res slice']=dict([(i,ROOT.TH2D("hxyres"+str(zSlices[i]),"xy res "+str(zSlices[i]),64,-16.,16.,64,-16.,16.)) for i in range(len(zSlices))]) hslices['hxy MC res slice']=dict([(i,ROOT.TH2D("hxyMCres"+str(zSlices[i]),"xy MC res "+str(zSlices[i]),64,-16.,16.,64,-16.,16.)) for i in range(len(zSlices))]) #Y-Res hslices['hxy Y slice']=dict([(i,ROOT.TH2D("hxyY"+str(zSlices[i]),"xy Y"+str(zSlices[i]),64,-16.,16.,64,-16.,16.)) for i in range(len(zSlices))]) hslices['hxy resY slice']=dict([(i,ROOT.TH2D("hxyresY"+str(zSlices[i]),"xy resY "+str(zSlices[i]),64,-16.,16.,64,-16.,16.)) for i in range(len(zSlices))]) hslices['hxy MC resY slice']=dict([(i,ROOT.TH2D("hxyMCresY"+str(zSlices[i]),"xy MC resY "+str(zSlices[i]),64,-16.,16.,64,-16.,16.)) for i in range(len(zSlices))]) #Z-Res hslices['hxy Z slice']=dict([(i,ROOT.TH2D("hxyZ"+str(zSlices[i]),"xy Z"+str(zSlices[i]),64,-16.,16.,64,-16.,16.)) for i in range(len(zSlices))]) hslices['hxy resZ slice']=dict([(i,ROOT.TH2D("hxyresZ"+str(zSlices[i]),"xy resZ "+str(zSlices[i]),64,-16.,16.,64,-16.,16.)) for i in range(len(zSlices))]) hslices['hxy MC resZ slice']=dict([(i,ROOT.TH2D("hxyMCresZ"+str(zSlices[i]),"xy MC resZ "+str(zSlices[i]),64,-16.,16.,64,-16.,16.)) for i in range(len(zSlices))]) hslices['hxy all slice']=dict([(i,ROOT.TH2D("hxya"+str(zSlices[i]),"xy "+str(zSlices[i]),64,-16.,16.,64,-16.,16.)) for i in range(len(zSlices))]) hslices['hxy resR slice']=dict([(i,ROOT.TH2D("hxyresR"+str(zSlices[i]),"xy resR "+str(zSlices[i]),64,-16.,16.,64,-16.,16.)) for i in range(len(zSlices))]) hslices['hxy resP slice']=dict([(i,ROOT.TH2D("hxyresP"+str(zSlices[i]),"xy resP"+str(zSlices[i]),64,-16.,16.,64,-16.,16.)) for i in range(len(zSlices))]) hslices['hxy MC resR slice']=dict([(i,ROOT.TH2D("hxyMCresR"+str(zSlices[i]),"xy MC resR "+str(zSlices[i]),64,-16.,16.,64,-16.,16.)) for i in range(len(zSlices))]) hslices['hxy MC resP slice']=dict([(i,ROOT.TH2D("hxyMCresP"+str(zSlices[i]),"xy MC resP "+str(zSlices[i]),64,-16.,16.,64,-16.,16.)) for i in range(len(zSlices))]) hslices['hxy resU slice']=dict([(i,ROOT.TH2D("hxyresU"+str(zSlices[i]),"xy resU "+str(zSlices[i]),64,-16.,16.,64,-16.,16.)) for i in range(len(zSlices))]) hslices['hxy resV slice']=dict([(i,ROOT.TH2D("hxyresV"+str(zSlices[i]),"xy resV"+str(zSlices[i]),64,-16.,16.,64,-16.,16.)) for i in range(len(zSlices))]) hslices['hxy MC resU slice']=dict([(i,ROOT.TH2D("hxyMCresU"+str(zSlices[i]),"xy MC resU "+str(zSlices[i]),64,-16.,16.,64,-16.,16.)) for i in range(len(zSlices))]) hslices['hxy MC resV slice']=dict([(i,ROOT.TH2D("hxyMCresV"+str(zSlices[i]),"xy MC resV "+str(zSlices[i]),64,-16.,16.,64,-16.,16.)) for i in range(len(zSlices))]) hslices['htracklength']=dict([(i,ROOT.TH1D("htracklength"+str(zSlices[i]),"Tracklength"+str(zSlices[i]),400,0.,40.)) for i in range(len(zSlices))]) hslices['hcluster per cm']=dict([(i,ROOT.TH1D("hclusterpercm"+str(zSlices[i]),"Cluster per cm"+str(zSlices[i]) ,50,0.,5.)) for i in range(len(zSlices))]) hslices['hdigi per cm']=dict([(i,ROOT.TH1D("hdigipercm"+str(zSlices[i]),"Digi per cm"+str(zSlices[i]) ,500,0.,50.)) for i in range(len(zSlices))]) hslices['hchi2ndf']=dict([(i,ROOT.TH1D("hchi2ndf"+str(zSlices[i]),"chi2ndf"+str(zSlices[i]) ,500,0.,50.)) for i in range(len(zSlices))]) hslices['hcluster per track']=dict([(i,ROOT.TH1D("hclusterpertrack"+str(zSlices[i]),"Cluster per track"+str(zSlices[i]),50,0,50)) for i in range(len(zSlices))]) hslices['hdigi per track']=dict([(i,ROOT.TH1D("hdigipertrack"+str(zSlices[i]),"Digis per track"+str(zSlices[i]),50,0,500)) for i in range(len(zSlices))]) hslices['hxy slice phi']=dict([(i,ROOT.TH2D("hxy_phi"+str(phiSlices[i]),"xy phi"+str(phiSlices[i]),80,-16.,16.,80,-16.,16.)) for i in range(len(phiSlices))]) hslices['hxy resX phi slice']=dict([(i,ROOT.TH2D("hxyresX_phi"+str(phiSlices[i]),"xy resX phi"+str(phiSlices[i]),80,-16.,16.,80,-16.,16.)) for i in range(len(phiSlices))]) hslices['hxy MC resX phi slice']=dict([(i,ROOT.TH2D("hxyMCresX_phi"+str(phiSlices[i]),"xy MC resX phi"+str(phiSlices[i]),80,-16.,16.,80,-16.,16.)) for i in range(len(phiSlices))]) return hslices def getRanges(rangefile): ranges={} if rangefile!='' and os.path.isfile(rangefile): print 'found rangefile ('+rangefile+')' for line in open(rangefile,'read'): line=line.replace('\n','') line=line.replace(' ','') if line[0]=='#': continue words=line.split(',') print 'setting ranges for {0} to {1} {2}'.format(words[0],words[1],words[2]) ranges[words[0]]=[float(words[1]),float(words[2])] return ranges #def makeTH3D(name,title,xb,xmin,xmax,yb,ymin,ymax,zb,zmin,zmax,ranges): def makeTH2D(name,title,xb,xmin,xmax,yb,ymin,ymax,ranges): yranges=ranges.get(name,[ymin,ymax]) h=ROOT.TH2D(name,title,xb,xmin,xmax,yb,yranges[0],yranges[1]) return h def makeTH1D(name,title,bins,low,high,ranges): lowhigh=ranges.get(name,[low,high]) h=ROOT.TH1D(name,title,bins,lowhigh[0],lowhigh[1]) return h