def getShowerRecoAlgModular():
    # This function returns the default shower reco module
    # If you want to extend, customize, or otherwise alter the default
    # reco (which you should!) it's recommended that you do one of two
    # things:
    #   1) Copy this function, and change the lines you need
    #   2) Use this function as is and replace the modules with the built-in functions
    #       to ShowerRecoAlgModular
    # Then, use the return value (alg) in place of ShowerRecoAlg in your python script

    # It should be noted, however, that this "default" set of modules is not yet developed
    # and if you are developing you ought to be updating it here!

    alg = showerreco.ShowerRecoAlgModular()
    alg.SetDebug(False)

    # 3D Axis Module:
    axis3D = showerreco.Axis3DModule()
    axis3D.setMaxIterations(100)
    axis3D.setNStepsInitial(25)
    axis3D.setTargetError(0.001)
    axis3D.setNormalErrorRange(0.01)
    axis3D.setThetaRangeStart(0.1)
    axis3D.setThetaRangeMin(0.0005)
    axis3D.setNStepsStart(4)
    axis3D.setConvergeRate(0.85)
    axis3D.setVerbosity(True)
    axis3D.setSeedVectorErrorCutoff(0.1)

    angle3D = showerreco.Angle3DFormula()
    angle3D.setMaxAngleError(0.1)
    angle3D.setVerbosity(False)

    energy = showerreco.LinearEnergy()
    energy.SetUseModBox(True)
    energy.setVerbosity(False)

    dqdx = showerreco.dQdxModule()

    dedx = showerreco.dEdxFromdQdx()
    dedx.SetUsePitch(False)
    dedx.setVerbosity(False)

    #alg.AddShowerRecoModule(axis3D)
    alg.AddShowerRecoModule(angle3D)
    alg.AddShowerRecoModule(showerreco.StartPoint3DModule())
    alg.AddShowerRecoModule(energy)
    alg.AddShowerRecoModule(dqdx)
    alg.AddShowerRecoModule(dedx)
    # alg.AddShowerRecoModule(showerreco.StartPoint2DModule()  )
    #alg.AddShowerRecoModule(showerreco.OtherStartPoint3D()  )
    # alg.AddShowerRecoModule(showerreco.ShowerChargeModule()  )

    alg.AddShowerRecoModule(showerreco.GeoModule())

    alg.PrintModuleList()

    return alg
def getShowerRecoAlgModular():
  # This function returns the default shower reco module
  # If you want to extend, customize, or otherwise alter the default
  # reco (which you should!) it's recommended that you do one of two
  # things:
  #   1) Copy this function, and change the lines you need
  #   2) Use this function as is and replace the modules with the built-in functions
  #       to ShowerRecoAlgModular
  # Then, use the return value (alg) in place of ShowerRecoAlg in your python script

  # It should be noted, however, that this "default" set of modules is not yet developed
  # and if you are developing you ought to be updating it here!

  alg = showerreco.ShowerRecoAlgModular()
  alg.SetDebug(False)

  # 3D Axis Module:
  axis3D = showerreco.Axis3DModule()
  axis3D.setMaxIterations(100)
  axis3D.setNStepsInitial(25)
  axis3D.setTargetError(0.001)
  axis3D.setNormalErrorRange(0.01)
  axis3D.setThetaRangeStart(0.1)
  axis3D.setThetaRangeMin(0.0005)
  axis3D.setNStepsStart(4)
  axis3D.setConvergeRate(0.85)
  axis3D.setVerbosity(True)
  axis3D.setSeedVectorErrorCutoff(0.1)

  angle3D = showerreco.Angle3DFormula()
  angle3D.setMaxAngleError(0.1)
  angle3D.setVerbosity(False)

  energy = showerreco.LinearEnergy()
  energy.SetUseModBox(True)
  energy.setVerbosity(False)

  dqdx = showerreco.dQdxModule()

  dedx = showerreco.dEdxFromdQdx()
  dedx.SetUsePitch(False)
  dedx.setVerbosity(False)

  #alg.AddShowerRecoModule(axis3D)
  alg.AddShowerRecoModule(angle3D)
  alg.AddShowerRecoModule(showerreco.StartPoint3DModule()  )
  alg.AddShowerRecoModule(energy)
  alg.AddShowerRecoModule(dqdx)
  alg.AddShowerRecoModule(dedx)
  # alg.AddShowerRecoModule(showerreco.StartPoint2DModule()  )
  #alg.AddShowerRecoModule(showerreco.OtherStartPoint3D()  )
  # alg.AddShowerRecoModule(showerreco.ShowerChargeModule()  )

  alg.AddShowerRecoModule(showerreco.GeoModule())

  alg.PrintModuleList()

  return alg
def getShowerRecoAlgModular():
    # This function returns the default shower reco module
    # If you want to extend, customize, or otherwise alter the default
    # reco (which you should!) it's recommended that you do one of two
    # things:
    #   1) Copy this function, and change the lines you need
    #   2) Use this function as is and replace the modules with the built-in functions
    #       to ShowerRecoAlgModular
    # Then, use the return value (alg) in place of ShowerRecoAlg in your python script
    
    # It should be noted, however, that this "default" set of modules is not yet developed
    # and if you are developing you ought to be updating it here!
    
    alg = showerreco.ShowerRecoAlgModular()
    alg.SetDebug(True)
    alg.SetVerbose(False)
    
    angle3D = showerreco.Angle3DFormula()
    angle3D.setMaxAngleError(0.1)
    angle3D.setValidateDirection(True)
    angle3D.setVerbosity(False)

    angle3D = showerreco.Angle3DFromVtxQweighted()
    
    energy = showerreco.LinearEnergy()
    energy.SetElectronLifetime(8000.) # in us MCC7 value
    #energy.SetElectronLifetime(1e6  ) # in us DATA value
    energy.SetRecombFactor(0.62)
    #energy.SetElecGain(198) # e- / ADC DATA value
    energy.SetElecGain(189) # MCC7 value
    energy.setVerbosity(False)
    energy.SetFillTree(True)

    dqdx = showerreco.dQdxModule()
    
    dedx = showerreco.dEdxFromdQdx()
    dedx.SetUsePitch(False)
    dedx.setVerbosity(True)

    geoModule = showerreco.GeoModule()
    geoModule.setFlipShowerDirection(False)
    
    alg.AddShowerRecoModule( showerreco.StartPoint3DModule() )
    alg.AddShowerRecoModule(angle3D)
    alg.AddShowerRecoModule(energy)
    #alg.AddShowerRecoModule(dqdx)
    #alg.AddShowerRecoModule(dedx)
    alg.AddShowerRecoModule( geoModule )
    
    alg.PrintModuleList()
    
    return alg
Beispiel #4
0
def ShowerReco():
  
  ana_unit = fmwk.ShowerReco3D()

  alg = showerreco.ShowerRecoAlgModular()
  alg.SetDebug(False)

  axis3D = showerreco.Axis3DModule()
  axis3D.setMaxIterations(100)
  axis3D.setNStepsInitial(25)
  axis3D.setTargetError(0.001)
  axis3D.setNormalErrorRange(0.01)
  axis3D.setThetaRangeStart(0.1)
  axis3D.setThetaRangeMin(0.0005)
  axis3D.setNStepsStart(4)
  axis3D.setConvergeRate(0.85)
  axis3D.setVerbosity(False)
  axis3D.setSeedVectorErrorCutoff(0.1)

  angle3D = showerreco.Angle3DFormula()
  angle3D.setMaxAngleError(0.1)
  angle3D.setVerbosity(False)
  
  energy = showerreco.LinearEnergy()
  energy.SetUseModBox(True)
  energy.setVerbosity(False)
  
  dqdx = showerreco.dQdxModule()
  
  dedx = showerreco.dEdxFromdQdx()
  dedx.SetUsePitch(False)
  dedx.setVerbosity(False)
  
  #alg.AddShowerRecoModule(showerreco.StartPoint2DModule()  )
  #alg.AddShowerRecoModule(showerreco.SanityCheckInitial() )
  alg.AddShowerRecoModule(axis3D)
  alg.AddShowerRecoModule(showerreco.StartPoint3DModule() )
  #alg.AddShowerRecoModule(angle3D)
  #alg.AddShowerRecoModule(showerreco.StartPoint3DModule()  )
  alg.AddShowerRecoModule(energy)
  alg.AddShowerRecoModule(dqdx)
  alg.AddShowerRecoModule(dedx)
  #alg.AddShowerRecoModule(showerreco.OtherStartPoint3D()  )
  #alg.AddShowerRecoModule(showerreco.ShowerChargeModule()  )
  #alg.AddShowerRecoModule(showerreco.GeoModule())
  #alg.AddShowerRecoModule(showerreco.SanityCheckFinal() )
  
  alg.PrintModuleList()
  
  ana_unit.AddShowerAlgo(alg)
  return ana_unit
def getShowerRecoAlgModular():
  # This function returns the default shower reco module
  # If you want to extend, customize, or otherwise alter the default
  # reco (which you should!) it's recommended that you do one of two
  # things:
  #   1) Copy this function, and change the lines you need
  #   2) Use this function as is and replace the modules with the built-in functions
  #       to ShowerRecoAlgModular
  # Then, use the return value (alg) in place of ShowerRecoAlg in your python script

  # It should be noted, however, that this "default" set of modules is not yet developed
  # and if you are developing you ought to be updating it here!

  alg = showerreco.ShowerRecoAlgModular()
  alg.SetDebug(False)

  startPoint = showerreco.StartPointPandora()

  axis = showerreco.PCA3DAxis()

  energy = showerreco.LinearEnergy()
  #energy.SetHitRecoCorrection(1.289, 0)
  #energy.SetHitRecoCorrection(1.323, 1)
  #energy.SetHitRecoCorrection(1.336, 2)
  energy.SetUseModBox(True)
  energy.setVerbosity(False)

  dqdx = showerreco.dQdxModule()

  dedx = showerreco.dEdxFromdQdx()
  dedx.SetUsePitch(False)
  dedx.setVerbosity(False)

  alg.AddShowerRecoModule(showerreco.ToyGeoModule())
  alg.AddShowerRecoModule(axis)
  alg.AddShowerRecoModule(startPoint)
  alg.AddShowerRecoModule(energy)
  alg.AddShowerRecoModule(dqdx)
  alg.AddShowerRecoModule(dedx)
  # alg.AddShowerRecoModule(showerreco.StartPoint2DModule()  )
  #alg.AddShowerRecoModule(showerreco.OtherStartPoint3D()  )
  # alg.AddShowerRecoModule(showerreco.ShowerChargeModule()  )

  # alg.AddShowerRecoModule(showerreco.GeoModule())
  alg.PrintModuleList()

  return alg
Beispiel #6
0
def getShowerRecoAlgModular():
    # This function returns the default shower reco module
    # If you want to extend, customize, or otherwise alter the default
    # reco (which you should!) it's recommended that you do one of two
    # things:
    #   1) Copy this function, and change the lines you need
    #   2) Use this function as is and replace the modules with the built-in functions
    #       to ShowerRecoAlgModular
    # Then, use the return value (alg) in place of ShowerRecoAlg in your python script

    # It should be noted, however, that this "default" set of modules is not yet developed
    # and if you are developing you ought to be updating it here!

    alg = showerreco.ShowerRecoAlgModular()
    alg.SetDebug(False)

    startPoint = showerreco.StartPointPandora()

    axis = showerreco.PCA3DAxis()

    energy = showerreco.LinearEnergy()
    #energy.SetHitRecoCorrection(1.289, 0)
    #energy.SetHitRecoCorrection(1.323, 1)
    #energy.SetHitRecoCorrection(1.336, 2)
    energy.SetUseModBox(True)
    energy.setVerbosity(False)

    dqdx = showerreco.dQdxModule()

    dedx = showerreco.dEdxFromdQdx()
    dedx.SetUsePitch(False)
    dedx.setVerbosity(False)

    alg.AddShowerRecoModule(showerreco.ToyGeoModule())
    alg.AddShowerRecoModule(axis)
    alg.AddShowerRecoModule(startPoint)
    alg.AddShowerRecoModule(energy)
    alg.AddShowerRecoModule(dqdx)
    alg.AddShowerRecoModule(dedx)
    # alg.AddShowerRecoModule(showerreco.StartPoint2DModule()  )
    #alg.AddShowerRecoModule(showerreco.OtherStartPoint3D()  )
    # alg.AddShowerRecoModule(showerreco.ShowerChargeModule()  )

    # alg.AddShowerRecoModule(showerreco.GeoModule())
    alg.PrintModuleList()

    return alg
def getShowerRecoAlgModular():
  # This function returns the default shower reco module
  # If you want to extend, customize, or otherwise alter the default
  # reco (which you should!) it's recommended that you do one of two
  # things:
  #   1) Copy this function, and change the lines you need
  #   2) Use this function as is and replace the modules with the built-in functions
  #       to ShowerRecoAlgModular
  # Then, use the return value (alg) in place of ShowerRecoAlg in your python script

  # It should be noted, however, that this "default" set of modules is not yet developed
  # and if you are developing you ought to be updating it here!

  alg = showerreco.ShowerRecoAlgModular()
  alg.SetDebug(False)

  angle3D = showerreco.Angle3DFromVtxQweighted()

  energy = showerreco.LinearEnergy()
  energy.SetUseModBox(True)
  energy.SetUseArea(True)
  energy.setVerbosity(False)
  energy.SetFillTree(True)
  energy.SetMinNumHits(20)

  dqdx = showerreco.dQdxModule()
  dqdx.setVerbosity(False)

  dedx = showerreco.dEdxFromdQdx()
  dedx.setVerbosity(False)
  
  alg.AddShowerRecoModule(showerreco.StartPoint3DModule()  )
  alg.AddShowerRecoModule(angle3D)
  filter = showerreco.Filter3DDir()
  filter.SetDotProdCut(0.5)
  alg.AddShowerRecoModule(filter)
  alg.AddShowerRecoModule(energy)
  alg.AddShowerRecoModule(dqdx)
  alg.AddShowerRecoModule(dedx)

  alg.AddShowerRecoModule(showerreco.GeoModule())

  alg.PrintModuleList()

  return alg
Beispiel #8
0
def getShowerRecoAlgModular():
    
    alg = showerreco.ShowerRecoAlgModular()
    alg.SetDebug(False)
    alg.SetVerbose(False)
    
    angle3D = showerreco.Angle3DFormula()
    angle3D.setMaxAngleError(0.1)
    angle3D.setValidateDirection(True)
    angle3D.setVerbosity(False)

    angle3D = showerreco.Angle3DFromVtxQweighted()

    gain = 196.97874008458268
    
    energy = showerreco.LinearEnergy()
    energy.SetElectronLifetime(1e20) #1e6) #8000.) # in us MCC7 value
    energy.SetRecombFactor(0.572) 
    energy.SetElecGain(gain) # e- / ADC DATA value, MCC8
    #energy.SetElecGain(189) # MCC7 value
    energy.setVerbosity(False)
    energy.SetFillTree(True)

    dqdx = showerreco.dQdxModule()
    
    dedx = showerreco.dEdxFromdQdx()
    dedx.SetUsePitch(False)
    dedx.setVerbosity(True)

    geoModule = showerreco.GeoModule()
    geoModule.setFlipShowerDirection(False)
    
    alg.AddShowerRecoModule( showerreco.StartPoint3DModule() )
    alg.AddShowerRecoModule(angle3D)
    alg.AddShowerRecoModule(energy)
    alg.AddShowerRecoModule( geoModule )
    
    alg.PrintModuleList()
    
    return alg
def getShowerRecoAlgModular():
    # This function returns the default shower reco module
    # If you want to extend, customize, or otherwise alter the default
    # reco (which you should!) it's recommended that you do one of two
    # things:
    #   1) Copy this function, and change the lines you need
    #   2) Use this function as is and replace the modules with the built-in functions
    #       to ShowerRecoAlgModular
    # Then, use the return value (alg) in place of ShowerRecoAlg in your python script
    
    # It should be noted, however, that this "default" set of modules is not yet developed
    # and if you are developing you ought to be updating it here!
    
    alg = showerreco.ShowerRecoAlgModular()
    alg.SetDebug(True)
    alg.SetVerbose(False)

    filteralgo = showerreco.FilterPFPart()
    filteralgo.setMinNHitsAbsolute(5)
    filteralgo.setMinNHitsLargest(10)
    
    angle3D = showerreco.Angle3DFormula()
    angle3D.setMaxAngleError(0.1)
    angle3D.setValidateDirection(True)
    angle3D.setVerbosity(False)

    angle3D = showerreco.Angle3DFromVtxQweighted()

    startPt = showerreco.YPlaneStartPoint3D()
    startPt.setVerbosity(False)

    energy = showerreco.LinearEnergy()
    energy.SetElectronLifetime(1e6  ) # in us DATA value
    energy.SetRecombFactor(0.62)
    energy.SetElecGain(243.) # MCC8.0 data
    #energy.SetElecGain(200.) # MCC8.0 value
    energy.setVerbosity(False)
    energy.SetFillTree(True)

    dqdx = showerreco.dQdxModule()
    
    dedx = showerreco.dEdxFromdQdx()
    dedx.SetUsePitch(False)
    dedx.setVerbosity(True)

    shrFilter = showerreco.FilterShowers()
    shrFilter.setAngleCut(15.)
    shrFilter.setVerbosity(True)

    alg.AddShowerRecoModule( filteralgo )
    alg.AddShowerRecoModule(angle3D)
    #alg.AddShowerRecoModule( showerreco.StartPoint3DModule() )
    #alg.AddShowerRecoModule( showerreco.NearestStartPoint3D() )
    alg.AddShowerRecoModule( startPt )#showerreco.YPlaneStartPoint3D() )
    alg.AddShowerRecoModule(energy)
    alg.AddShowerRecoModule( showerreco.FillLength() )
    alg.AddShowerRecoModule( shrFilter )
    
    alg.PrintModuleList()
    
    return alg
def getShowerRecoAlgModular():
    # This function returns the default shower reco module
    # If you want to extend, customize, or otherwise alter the default
    # reco (which you should!) it's recommended that you do one of two
    # things:
    #   1) Copy this function, and change the lines you need
    #   2) Use this function as is and replace the modules with the built-in functions
    #       to ShowerRecoAlgModular
    # Then, use the return value (alg) in place of ShowerRecoAlg in your python script
    
    # It should be noted, however, that this "default" set of modules is not yet developed
    # and if you are developing you ought to be updating it here!
    
    alg = showerreco.ShowerRecoAlgModular()
    alg.SetDebug(True)
    alg.SetVerbose(False)

    filteralgo = showerreco.FilterPFPart()
    filteralgo.setMinNHitsAbsolute(5)
    filteralgo.setMinNHitsLargest(10)
    
    angle3D = showerreco.Angle3DFormula()
    angle3D.setMaxAngleError(0.1)
    angle3D.setValidateDirection(True)
    angle3D.setVerbosity(False)

    angle3D = showerreco.Angle3DFromVtxQweighted()

    startPt = showerreco.YPlaneStartPoint3D()
    startPt.setVerbosity(False)

    energy = showerreco.LinearEnergy()

    # implement position-dependent calibration
    energy.CreateResponseMap(15)
    dQdsAVG = 0.
    ctr = 0.
    fin = open('/home/david/Dropbox/Neutrinos/Calorimetry/3DCorrection/MCC82_0903/dqds_0903_data_xyz.txt','r')
    for line in fin:
        words = line.split()
        q = float(words[3])
        dQdsAVG += q
        ctr += 1
    dQdsAVG /= ctr
    print 'dQdsAVG = %.02f'%dQdsAVG
    fin.seek(0)
    for line in fin:
        words = line.split()
        x = float(words[0])
        y = float(words[1])
        z = float(words[2])
        q = float(words[3])
        energy.SetResponse(x,y,z,dQdsAVG/q)

    energy.SetElectronLifetime(1e6) # in us DATA value
    energy.SetRecombFactor(0.572)
    energy.SetElecGain(243.) # MCC8.0 data
    #energy.SetElecGain(200.) # MCC8.0 value
    energy.setVerbosity(False)
    energy.SetFillTree(True)

    dqdx = showerreco.dQdxModule()
    dqdx.setTrunkLength(2.)
    #dqdx.SetFillTree(True)
    
    shrFilter = showerreco.FilterShowers()
    shrFilter.setAngleCut(25.)
    shrFilter.setVerbosity(False)

    alg.AddShowerRecoModule( filteralgo )
    alg.AddShowerRecoModule(angle3D)
    #alg.AddShowerRecoModule( showerreco.StartPoint3DModule() )
    #alg.AddShowerRecoModule( showerreco.NearestStartPoint3D() )
    alg.AddShowerRecoModule( startPt )#showerreco.YPlaneStartPoint3D() )
    alg.AddShowerRecoModule( dqdx )
    alg.AddShowerRecoModule(energy)
    alg.AddShowerRecoModule( showerreco.FillLength() )
    alg.AddShowerRecoModule( shrFilter )
    
    alg.PrintModuleList()
    
    return alg