Fork me on GitHub

Changeset 100 in svn


Ignore:
Timestamp:
Dec 18, 2008, 2:39:26 PM (16 years ago)
Author:
severine ovyn
Message:

Remove datacard bug + CaloTowers OK

Location:
trunk
Files:
20 edited

Legend:

Unmodified
Added
Removed
  • trunk/Delphes.cpp

    r98 r100  
    105105 
    106106  //Propagation of tracks in the B field
    107   TrackPropagation *TRACP = new TrackPropagation();
     107  TrackPropagation *TRACP = new TrackPropagation(DetDatacard);
    108108 
    109109  //Jet information
    110   JetsUtil *JETRUN = new JetsUtil();
     110  JetsUtil *JETRUN = new JetsUtil(DetDatacard);
    111111 
    112112  //VFD information
    113   VeryForward * VFD = new VeryForward();
     113  VeryForward * VFD = new VeryForward(DetDatacard);
    114114 
    115115  //todo(LogName.c_str());
     
    189189 
    190190 
    191  
     191  float iPhi=0,iEta=0;
     192
    192193  // Loop over all events
    193194  Long64_t entry, allEntries = treeReader->GetEntries();
     
    266267             
    267268              // all final particles but muons and neutrinos   
    268               // for calorimetric towers and mission PT
     269              // for calorimetric towers and missing PT
    269270              int charge=Charge(pid);
    270271              if(genMomentum.E() !=0 && pid != pMU) {
    271272                if(charge == 0 || (charge !=0 && genMomentum.Pt() >= DET->TRACK_ptmin)){
    272                   PhysicsTower CaloTower = PhysicsTower(LorentzVector(genMomentum.Px(),genMomentum.Py(),genMomentum.Pz(), genMomentum.E()));
    273                   towers.push_back(CaloTower);
    274                   // create a fastjet::PseudoJet with these components and put it onto
    275                   // back of the input_particles vector
    276                   input_particles.push_back(fastjet::PseudoJet(genMomentum.Px(),genMomentum.Py(),genMomentum.Pz(), genMomentum.E()));
    277                  
    278                   genMomentumCalo.SetPxPyPzE(CaloTower.fourVector.px,CaloTower.fourVector.py,CaloTower.fourVector.pz,CaloTower.fourVector.E);
    279                  
    280                   elementCalo = (TRootCalo*) branchCalo->NewEntry();
    281                   elementCalo->Set(genMomentumCalo);
    282                   DET->BinEtaPhi(genMomentumCalo.Phi(), genMomentumCalo.Eta(), elementCalo->Phi, elementCalo->Eta);
     273                  DET->BinEtaPhi(genMomentum.Phi(), genMomentum.Eta(), iPhi, iEta);
     274                  if(iEta != -100 && iPhi != -100)
     275                    {
     276                      genMomentumCalo.SetPtEtaPhiE(genMomentum.Pt(),iEta,iPhi,genMomentum.E());
     277                      elementCalo = (TRootCalo*) branchCalo->NewEntry();
     278                      elementCalo->Set(genMomentumCalo);
     279
     280//                    CalTower     myCaloTower(genMomentumCalo.Et,genMomentumCalo.Eta,genMomentumCalo.Phi,iEta,iPhi);
     281//                    PhysicsTower Tower(LorentzVector(genMomentumCalo.Px(),genMomentumCalo.Py(),genMomentumCalo.Pz(), genMomentumCalo.E()),myCaloTower);
     282                      PhysicsTower Tower(LorentzVector(genMomentumCalo.Px(),genMomentumCalo.Py(),genMomentumCalo.Pz(), genMomentumCalo.E()));
     283                      towers.push_back(Tower);
     284                    }
    283285                }
    284286              }
     
    302304          if(DET->FLAG_vfd==1)
    303305            { 
    304               VFD->ZDC(treeWriter,branchZDC,particle);
    305               VFD->RomanPots(treeWriter,branchRP220,branchFP420,particle);
     306             VFD->ZDC(treeWriter,branchZDC,particle);
     307             VFD->RomanPots(treeWriter,branchRP220,branchFP420,particle);
    306308            }
    307309         
     
    332334      for(unsigned int i=0; i < towers.size(); i++)
    333335        {
    334           Att.SetPxPyPzE(towers[i].fourVector.px,towers[i].fourVector.py,towers[i].fourVector.pz,towers[i].fourVector.E);
     336Att.SetPxPyPzE(towers[i].fourVector.px, towers[i].fourVector.py, towers[i].fourVector.pz, towers[i].fourVector.E);
     337if(fabs(Att.Eta())<DET->CEN_max_calo_fwd)
     338{
    335339          PTmis = PTmis + Att;
     340          // create a fastjet::PseudoJet with these components and put it onto
     341          // back of the input_particles vector
     342          input_particles.push_back(fastjet::PseudoJet(towers[i].fourVector.px,towers[i].fourVector.py,towers[i].fourVector.pz,towers[i].fourVector.E));
     343}
    336344        }
    337345      elementEtmis = (TRootETmis*) branchETmis->NewEntry();
  • trunk/Makefile

    r94 r100  
    2828
    2929
     30Delphes$(ExeSuf): \
     31        tmp/Delphes.$(ObjSuf)
     32
     33tmp/Delphes.$(ObjSuf): \
     34        Delphes.cpp \
     35        Utilities/ExRootAnalysis/interface/ExRootTreeReader.h \
     36        Utilities/ExRootAnalysis/interface/ExRootTreeWriter.h \
     37        Utilities/ExRootAnalysis/interface/ExRootTreeBranch.h \
     38        interface/DataConverter.h \
     39        interface/HEPEVTConverter.h \
     40        interface/LHEFConverter.h \
     41        interface/STDHEPConverter.h \
     42        interface/SmearUtil.h \
     43        interface/BFieldProp.h \
     44        interface/TriggerUtil.h \
     45        interface/VeryForward.h \
     46        interface/JetUtils.h \
     47        interface/FrogUtil.h
    3048Resolutions$(ExeSuf): \
    3149        tmp/Resolutions.$(ObjSuf)
     
    4664        Utilities/Fastjet/include/fastjet/ClusterSequence.hh \
    4765        interface/TreeClasses.h
    48 Delphes$(ExeSuf): \
    49         tmp/Delphes.$(ObjSuf)
    50 
    51 tmp/Delphes.$(ObjSuf): \
    52         Delphes.cpp \
    53         Utilities/ExRootAnalysis/interface/ExRootTreeReader.h \
    54         Utilities/ExRootAnalysis/interface/ExRootTreeWriter.h \
    55         Utilities/ExRootAnalysis/interface/ExRootTreeBranch.h \
    56         interface/DataConverter.h \
    57         interface/HEPEVTConverter.h \
    58         interface/LHEFConverter.h \
    59         interface/STDHEPConverter.h \
    60         interface/SmearUtil.h \
    61         interface/BFieldProp.h \
    62         interface/TriggerUtil.h \
    63         interface/VeryForward.h \
    64         interface/JetUtils.h
    6566Analysis_Ex$(ExeSuf): \
    6667        tmp/Examples/Analysis_Ex.$(ObjSuf)
     
    8586        Utilities/ExRootAnalysis/interface/BlockClasses.h
    8687EXECUTABLE =  \
     88        Delphes$(ExeSuf) \
    8789        Resolutions$(ExeSuf) \
    88         Delphes$(ExeSuf) \
    8990        Analysis_Ex$(ExeSuf) \
    9091        Trigger_Only$(ExeSuf)
    9192
    9293EXECUTABLE_OBJ =  \
     94        tmp/Delphes.$(ObjSuf) \
    9395        tmp/Resolutions.$(ObjSuf) \
    94         tmp/Delphes.$(ObjSuf) \
    9596        tmp/Examples/Analysis_Ex.$(ObjSuf) \
    9697        tmp/Examples/Trigger_Only.$(ObjSuf)
     
    118119        src/BFieldProp.$(SrcSuf) \
    119120        interface/BFieldProp.h
     121tmp/src/FrogUtil.$(ObjSuf): \
     122        src/FrogUtil.$(SrcSuf) \
     123        interface/FrogUtil.h \
     124        Utilities/FROG/Includes/FROG/FROG_DetId.h \
     125        Utilities/FROG/Includes/FROG/FROG_Geometry.h \
     126        Utilities/FROG/Includes/FROG/FROG_Events.h \
     127        Utilities/FROG/Includes/FROG/FROG_Element_Tools.h \
     128        Utilities/FROG/Includes/FROG/FROG_Net_Tools.h \
     129        Utilities/FROG/Includes/FROG/FROG_Path.h \
     130        Utilities/FROG/Includes/FROG/FROG_Coord.h \
     131        Utilities/FROG/Includes/FROG/FROG_ReadCards.h \
     132        Utilities/FROG/Includes/FROG/FROG_ZLib.h
     133tmp/src/HEPEVTConverter.$(ObjSuf): \
     134        src/HEPEVTConverter.$(SrcSuf) \
     135        Utilities/ExRootAnalysis/interface/BlockClasses.h \
     136        Utilities/ExRootAnalysis/interface/ExRootTreeReader.h \
     137        Utilities/ExRootAnalysis/interface/ExRootTreeWriter.h \
     138        Utilities/ExRootAnalysis/interface/ExRootTreeBranch.h \
     139        interface/HEPEVTConverter.h
     140tmp/src/JetUtils.$(ObjSuf): \
     141        src/JetUtils.$(SrcSuf) \
     142        interface/JetUtils.h
     143tmp/src/LHEFConverter.$(ObjSuf): \
     144        src/LHEFConverter.$(SrcSuf) \
     145        Utilities/ExRootAnalysis/interface/ExRootTreeWriter.h \
     146        Utilities/ExRootAnalysis/interface/ExRootTreeBranch.h \
     147        Utilities/ExRootAnalysis/interface/BlockClasses.h \
     148        interface/LHEFConverter.h \
     149        Utilities/ExRootAnalysis/interface/LHEF.h
    120150tmp/src/STDHEPConverter.$(ObjSuf): \
    121151        src/STDHEPConverter.$(SrcSuf) \
     
    128158        Utilities/stdhep/stdhep_declarations.h \
    129159        interface/STDHEPConverter.h
    130 tmp/src/JetUtils.$(ObjSuf): \
    131         src/JetUtils.$(SrcSuf) \
    132         interface/JetUtils.h
     160tmp/src/SmearUtil.$(ObjSuf): \
     161        src/SmearUtil.$(SrcSuf) \
     162        interface/SmearUtil.h
     163tmp/src/TreeClasses.$(ObjSuf): \
     164        src/TreeClasses.$(SrcSuf) \
     165        interface/TreeClasses.h
     166tmp/src/TriggerUtil.$(ObjSuf): \
     167        src/TriggerUtil.$(SrcSuf) \
     168        interface/TriggerUtil.h
    133169tmp/src/VeryForward.$(ObjSuf): \
    134170        src/VeryForward.$(SrcSuf) \
    135171        interface/VeryForward.h \
    136172        interface/SmearUtil.h
    137 tmp/src/TriggerUtil.$(ObjSuf): \
    138         src/TriggerUtil.$(SrcSuf) \
    139         interface/TriggerUtil.h
    140 tmp/src/HEPEVTConverter.$(ObjSuf): \
    141         src/HEPEVTConverter.$(SrcSuf) \
    142         Utilities/ExRootAnalysis/interface/BlockClasses.h \
    143         Utilities/ExRootAnalysis/interface/ExRootTreeReader.h \
    144         Utilities/ExRootAnalysis/interface/ExRootTreeWriter.h \
    145         Utilities/ExRootAnalysis/interface/ExRootTreeBranch.h \
    146         interface/HEPEVTConverter.h
    147 tmp/src/SmearUtil.$(ObjSuf): \
    148         src/SmearUtil.$(SrcSuf) \
    149         interface/SmearUtil.h
    150 tmp/src/FrogUtil.$(ObjSuf): \
    151         src/FrogUtil.$(SrcSuf)
    152 tmp/src/TreeClasses.$(ObjSuf): \
    153         src/TreeClasses.$(SrcSuf) \
    154         interface/TreeClasses.h
    155 tmp/src/LHEFConverter.$(ObjSuf): \
    156         src/LHEFConverter.$(SrcSuf) \
    157         Utilities/ExRootAnalysis/interface/ExRootTreeWriter.h \
    158         Utilities/ExRootAnalysis/interface/ExRootTreeBranch.h \
    159         Utilities/ExRootAnalysis/interface/BlockClasses.h \
    160         interface/LHEFConverter.h \
    161         Utilities/ExRootAnalysis/interface/LHEF.h
     173tmp/Utilities/ExRootAnalysis/src/BlockClasses.$(ObjSuf): \
     174        Utilities/ExRootAnalysis/src/BlockClasses.$(SrcSuf) \
     175        Utilities/ExRootAnalysis/interface/BlockClasses.h \
     176        Utilities/ExRootAnalysis/interface/BlockCompare.h
     177tmp/Utilities/ExRootAnalysis/src/ExRootProgressBar.$(ObjSuf): \
     178        Utilities/ExRootAnalysis/src/ExRootProgressBar.$(SrcSuf) \
     179        Utilities/ExRootAnalysis/interface/ExRootProgressBar.h
     180tmp/Utilities/ExRootAnalysis/src/ExRootTreeBranch.$(ObjSuf): \
     181        Utilities/ExRootAnalysis/src/ExRootTreeBranch.$(SrcSuf) \
     182        Utilities/ExRootAnalysis/interface/ExRootTreeBranch.h
    162183tmp/Utilities/ExRootAnalysis/src/ExRootTreeReader.$(ObjSuf): \
    163184        Utilities/ExRootAnalysis/src/ExRootTreeReader.$(SrcSuf) \
    164185        Utilities/ExRootAnalysis/interface/ExRootTreeReader.h
    165 tmp/Utilities/ExRootAnalysis/src/ExRootTreeBranch.$(ObjSuf): \
    166         Utilities/ExRootAnalysis/src/ExRootTreeBranch.$(SrcSuf) \
    167         Utilities/ExRootAnalysis/interface/ExRootTreeBranch.h
    168 tmp/Utilities/ExRootAnalysis/src/ExRootProgressBar.$(ObjSuf): \
    169         Utilities/ExRootAnalysis/src/ExRootProgressBar.$(SrcSuf) \
    170         Utilities/ExRootAnalysis/interface/ExRootProgressBar.h
    171186tmp/Utilities/ExRootAnalysis/src/ExRootTreeWriter.$(ObjSuf): \
    172187        Utilities/ExRootAnalysis/src/ExRootTreeWriter.$(SrcSuf) \
    173188        Utilities/ExRootAnalysis/interface/ExRootTreeWriter.h \
    174189        Utilities/ExRootAnalysis/interface/ExRootTreeBranch.h
    175 tmp/Utilities/ExRootAnalysis/src/BlockClasses.$(ObjSuf): \
    176         Utilities/ExRootAnalysis/src/BlockClasses.$(SrcSuf) \
    177         Utilities/ExRootAnalysis/interface/BlockClasses.h \
    178         Utilities/ExRootAnalysis/interface/BlockCompare.h
    179 tmp/Utilities/Hector/src/H_Parameters.$(ObjSuf): \
    180         Utilities/Hector/src/H_Parameters.$(SrcSuf)
     190tmp/Utilities/Hector/src/H_AbstractBeamLine.$(ObjSuf): \
     191        Utilities/Hector/src/H_AbstractBeamLine.$(SrcSuf)
     192tmp/Utilities/Hector/src/H_Aperture.$(ObjSuf): \
     193        Utilities/Hector/src/H_Aperture.$(SrcSuf)
     194tmp/Utilities/Hector/src/H_Beam.$(ObjSuf): \
     195        Utilities/Hector/src/H_Beam.$(SrcSuf)
     196tmp/Utilities/Hector/src/H_BeamLine.$(ObjSuf): \
     197        Utilities/Hector/src/H_BeamLine.$(SrcSuf)
     198tmp/Utilities/Hector/src/H_BeamLineParser.$(ObjSuf): \
     199        Utilities/Hector/src/H_BeamLineParser.$(SrcSuf)
     200tmp/Utilities/Hector/src/H_BeamParticle.$(ObjSuf): \
     201        Utilities/Hector/src/H_BeamParticle.$(SrcSuf)
     202tmp/Utilities/Hector/src/H_CircularAperture.$(ObjSuf): \
     203        Utilities/Hector/src/H_CircularAperture.$(SrcSuf)
     204tmp/Utilities/Hector/src/H_Dipole.$(ObjSuf): \
     205        Utilities/Hector/src/H_Dipole.$(SrcSuf)
     206tmp/Utilities/Hector/src/H_Drift.$(ObjSuf): \
     207        Utilities/Hector/src/H_Drift.$(SrcSuf)
     208tmp/Utilities/Hector/src/H_EllipticAperture.$(ObjSuf): \
     209        Utilities/Hector/src/H_EllipticAperture.$(SrcSuf)
    181210tmp/Utilities/Hector/src/H_HorizontalKicker.$(ObjSuf): \
    182211        Utilities/Hector/src/H_HorizontalKicker.$(SrcSuf)
    183212tmp/Utilities/Hector/src/H_HorizontalQuadrupole.$(ObjSuf): \
    184213        Utilities/Hector/src/H_HorizontalQuadrupole.$(SrcSuf)
    185 tmp/Utilities/Hector/src/H_SectorDipole.$(ObjSuf): \
    186         Utilities/Hector/src/H_SectorDipole.$(SrcSuf)
     214tmp/Utilities/Hector/src/H_Kicker.$(ObjSuf): \
     215        Utilities/Hector/src/H_Kicker.$(SrcSuf)
     216tmp/Utilities/Hector/src/H_Marker.$(ObjSuf): \
     217        Utilities/Hector/src/H_Marker.$(SrcSuf)
     218tmp/Utilities/Hector/src/H_OpticalElement.$(ObjSuf): \
     219        Utilities/Hector/src/H_OpticalElement.$(SrcSuf)
     220tmp/Utilities/Hector/src/H_Parameters.$(ObjSuf): \
     221        Utilities/Hector/src/H_Parameters.$(SrcSuf)
     222tmp/Utilities/Hector/src/H_Quadrupole.$(ObjSuf): \
     223        Utilities/Hector/src/H_Quadrupole.$(SrcSuf)
    187224tmp/Utilities/Hector/src/H_RecRPObject.$(ObjSuf): \
    188225        Utilities/Hector/src/H_RecRPObject.$(SrcSuf)
    189 tmp/Utilities/Hector/src/H_CircularAperture.$(ObjSuf): \
    190         Utilities/Hector/src/H_CircularAperture.$(SrcSuf)
    191226tmp/Utilities/Hector/src/H_RectEllipticAperture.$(ObjSuf): \
    192227        Utilities/Hector/src/H_RectEllipticAperture.$(SrcSuf)
    193 tmp/Utilities/Hector/src/H_AbstractBeamLine.$(ObjSuf): \
    194         Utilities/Hector/src/H_AbstractBeamLine.$(SrcSuf)
    195 tmp/Utilities/Hector/src/H_TransportMatrices.$(ObjSuf): \
    196         Utilities/Hector/src/H_TransportMatrices.$(SrcSuf)
    197 tmp/Utilities/Hector/src/H_Aperture.$(ObjSuf): \
    198         Utilities/Hector/src/H_Aperture.$(SrcSuf)
    199 tmp/Utilities/Hector/src/H_OpticalElement.$(ObjSuf): \
    200         Utilities/Hector/src/H_OpticalElement.$(SrcSuf)
    201 tmp/Utilities/Hector/src/H_BeamLine.$(ObjSuf): \
    202         Utilities/Hector/src/H_BeamLine.$(SrcSuf)
    203 tmp/Utilities/Hector/src/H_BeamParticle.$(ObjSuf): \
    204         Utilities/Hector/src/H_BeamParticle.$(SrcSuf)
     228tmp/Utilities/Hector/src/H_RectangularAperture.$(ObjSuf): \
     229        Utilities/Hector/src/H_RectangularAperture.$(SrcSuf)
    205230tmp/Utilities/Hector/src/H_RectangularCollimator.$(ObjSuf): \
    206231        Utilities/Hector/src/H_RectangularCollimator.$(SrcSuf)
    207232tmp/Utilities/Hector/src/H_RectangularDipole.$(ObjSuf): \
    208233        Utilities/Hector/src/H_RectangularDipole.$(SrcSuf)
    209 tmp/Utilities/Hector/src/H_BeamLineParser.$(ObjSuf): \
    210         Utilities/Hector/src/H_BeamLineParser.$(SrcSuf)
    211 tmp/Utilities/Hector/src/H_Beam.$(ObjSuf): \
    212         Utilities/Hector/src/H_Beam.$(SrcSuf)
    213 tmp/Utilities/Hector/src/H_Marker.$(ObjSuf): \
    214         Utilities/Hector/src/H_Marker.$(SrcSuf)
    215 tmp/Utilities/Hector/src/H_Kicker.$(ObjSuf): \
    216         Utilities/Hector/src/H_Kicker.$(SrcSuf)
    217234tmp/Utilities/Hector/src/H_RomanPot.$(ObjSuf): \
    218235        Utilities/Hector/src/H_RomanPot.$(SrcSuf)
    219 tmp/Utilities/Hector/src/H_Drift.$(ObjSuf): \
    220         Utilities/Hector/src/H_Drift.$(SrcSuf)
    221 tmp/Utilities/Hector/src/H_EllipticAperture.$(ObjSuf): \
    222         Utilities/Hector/src/H_EllipticAperture.$(SrcSuf)
    223 tmp/Utilities/Hector/src/H_RectangularAperture.$(ObjSuf): \
    224         Utilities/Hector/src/H_RectangularAperture.$(SrcSuf)
     236tmp/Utilities/Hector/src/H_SectorDipole.$(ObjSuf): \
     237        Utilities/Hector/src/H_SectorDipole.$(SrcSuf)
     238tmp/Utilities/Hector/src/H_TransportMatrices.$(ObjSuf): \
     239        Utilities/Hector/src/H_TransportMatrices.$(SrcSuf)
     240tmp/Utilities/Hector/src/H_VerticalKicker.$(ObjSuf): \
     241        Utilities/Hector/src/H_VerticalKicker.$(SrcSuf)
    225242tmp/Utilities/Hector/src/H_VerticalQuadrupole.$(ObjSuf): \
    226243        Utilities/Hector/src/H_VerticalQuadrupole.$(SrcSuf)
    227 tmp/Utilities/Hector/src/H_Dipole.$(ObjSuf): \
    228         Utilities/Hector/src/H_Dipole.$(SrcSuf)
    229 tmp/Utilities/Hector/src/H_VerticalKicker.$(ObjSuf): \
    230         Utilities/Hector/src/H_VerticalKicker.$(SrcSuf)
    231 tmp/Utilities/Hector/src/H_Quadrupole.$(ObjSuf): \
    232         Utilities/Hector/src/H_Quadrupole.$(SrcSuf)
     244tmp/Utilities/Fastjet/src/AreaDefinition.$(ObjSuf): \
     245        Utilities/Fastjet/src/AreaDefinition.$(SrcSuf)
     246tmp/Utilities/Fastjet/src/BasicRandom.$(ObjSuf): \
     247        Utilities/Fastjet/src/BasicRandom.$(SrcSuf)
    233248tmp/Utilities/Fastjet/src/ClosestPair2D.$(ObjSuf): \
    234249        Utilities/Fastjet/src/ClosestPair2D.$(SrcSuf)
     250tmp/Utilities/Fastjet/src/ClusterSequence.$(ObjSuf): \
     251        Utilities/Fastjet/src/ClusterSequence.$(SrcSuf)
     252tmp/Utilities/Fastjet/src/ClusterSequence1GhostPassiveArea.$(ObjSuf): \
     253        Utilities/Fastjet/src/ClusterSequence1GhostPassiveArea.$(SrcSuf)
     254tmp/Utilities/Fastjet/src/ClusterSequenceActiveArea.$(ObjSuf): \
     255        Utilities/Fastjet/src/ClusterSequenceActiveArea.$(SrcSuf)
     256tmp/Utilities/Fastjet/src/ClusterSequenceActiveAreaExplicitGhosts.$(ObjSuf): \
     257        Utilities/Fastjet/src/ClusterSequenceActiveAreaExplicitGhosts.$(SrcSuf)
     258tmp/Utilities/Fastjet/src/ClusterSequenceArea.$(ObjSuf): \
     259        Utilities/Fastjet/src/ClusterSequenceArea.$(SrcSuf)
     260tmp/Utilities/Fastjet/src/ClusterSequenceAreaBase.$(ObjSuf): \
     261        Utilities/Fastjet/src/ClusterSequenceAreaBase.$(SrcSuf)
     262tmp/Utilities/Fastjet/src/ClusterSequencePassiveArea.$(ObjSuf): \
     263        Utilities/Fastjet/src/ClusterSequencePassiveArea.$(SrcSuf)
     264tmp/Utilities/Fastjet/src/ClusterSequenceVoronoiArea.$(ObjSuf): \
     265        Utilities/Fastjet/src/ClusterSequenceVoronoiArea.$(SrcSuf)
     266tmp/Utilities/Fastjet/src/ClusterSequence_CP2DChan.$(ObjSuf): \
     267        Utilities/Fastjet/src/ClusterSequence_CP2DChan.$(SrcSuf)
     268tmp/Utilities/Fastjet/src/ClusterSequence_Delaunay.$(ObjSuf): \
     269        Utilities/Fastjet/src/ClusterSequence_Delaunay.$(SrcSuf)
     270tmp/Utilities/Fastjet/src/ClusterSequence_DumbN3.$(ObjSuf): \
     271        Utilities/Fastjet/src/ClusterSequence_DumbN3.$(SrcSuf)
     272tmp/Utilities/Fastjet/src/ClusterSequence_N2.$(ObjSuf): \
     273        Utilities/Fastjet/src/ClusterSequence_N2.$(SrcSuf)
     274tmp/Utilities/Fastjet/src/ClusterSequence_TiledN2.$(ObjSuf): \
     275        Utilities/Fastjet/src/ClusterSequence_TiledN2.$(SrcSuf)
    235276tmp/Utilities/Fastjet/src/Dnn2piCylinder.$(ObjSuf): \
    236277        Utilities/Fastjet/src/Dnn2piCylinder.$(SrcSuf)
    237 tmp/Utilities/Fastjet/src/ClusterSequenceActiveArea.$(ObjSuf): \
    238         Utilities/Fastjet/src/ClusterSequenceActiveArea.$(SrcSuf)
    239 tmp/Utilities/Fastjet/src/ClusterSequence_TiledN2.$(ObjSuf): \
    240         Utilities/Fastjet/src/ClusterSequence_TiledN2.$(SrcSuf)
    241 tmp/Utilities/Fastjet/src/ClusterSequence_CP2DChan.$(ObjSuf): \
    242         Utilities/Fastjet/src/ClusterSequence_CP2DChan.$(SrcSuf)
    243 tmp/Utilities/Fastjet/src/ClusterSequence_N2.$(ObjSuf): \
    244         Utilities/Fastjet/src/ClusterSequence_N2.$(SrcSuf)
    245 tmp/Utilities/Fastjet/src/ClusterSequencePassiveArea.$(ObjSuf): \
    246         Utilities/Fastjet/src/ClusterSequencePassiveArea.$(SrcSuf)
     278tmp/Utilities/Fastjet/src/Dnn3piCylinder.$(ObjSuf): \
     279        Utilities/Fastjet/src/Dnn3piCylinder.$(SrcSuf)
     280tmp/Utilities/Fastjet/src/Dnn4piCylinder.$(ObjSuf): \
     281        Utilities/Fastjet/src/Dnn4piCylinder.$(SrcSuf)
     282tmp/Utilities/Fastjet/src/DnnPlane.$(ObjSuf): \
     283        Utilities/Fastjet/src/DnnPlane.$(SrcSuf)
     284tmp/Utilities/Fastjet/src/Error.$(ObjSuf): \
     285        Utilities/Fastjet/src/Error.$(SrcSuf)
    247286tmp/Utilities/Fastjet/src/GhostedAreaSpec.$(ObjSuf): \
    248287        Utilities/Fastjet/src/GhostedAreaSpec.$(SrcSuf)
    249 tmp/Utilities/Fastjet/src/ClusterSequence.$(ObjSuf): \
    250         Utilities/Fastjet/src/ClusterSequence.$(SrcSuf)
     288tmp/Utilities/Fastjet/src/JetDefinition.$(ObjSuf): \
     289        Utilities/Fastjet/src/JetDefinition.$(SrcSuf)
     290tmp/Utilities/Fastjet/src/MinHeap.$(ObjSuf): \
     291        Utilities/Fastjet/src/MinHeap.$(SrcSuf)
     292tmp/Utilities/Fastjet/src/PseudoJet.$(ObjSuf): \
     293        Utilities/Fastjet/src/PseudoJet.$(SrcSuf)
    251294tmp/Utilities/Fastjet/src/RangeDefinition.$(ObjSuf): \
    252295        Utilities/Fastjet/src/RangeDefinition.$(SrcSuf)
    253 tmp/Utilities/Fastjet/src/BasicRandom.$(ObjSuf): \
    254         Utilities/Fastjet/src/BasicRandom.$(SrcSuf)
    255 tmp/Utilities/Fastjet/src/ClusterSequenceArea.$(ObjSuf): \
    256         Utilities/Fastjet/src/ClusterSequenceArea.$(SrcSuf)
    257 tmp/Utilities/Fastjet/src/ClusterSequenceActiveAreaExplicitGhosts.$(ObjSuf): \
    258         Utilities/Fastjet/src/ClusterSequenceActiveAreaExplicitGhosts.$(SrcSuf)
    259 tmp/Utilities/Fastjet/src/PseudoJet.$(ObjSuf): \
    260         Utilities/Fastjet/src/PseudoJet.$(SrcSuf)
    261 tmp/Utilities/Fastjet/src/AreaDefinition.$(ObjSuf): \
    262         Utilities/Fastjet/src/AreaDefinition.$(SrcSuf)
    263 tmp/Utilities/Fastjet/src/ClusterSequence_DumbN3.$(ObjSuf): \
    264         Utilities/Fastjet/src/ClusterSequence_DumbN3.$(SrcSuf)
    265 tmp/Utilities/Fastjet/src/ClusterSequenceVoronoiArea.$(ObjSuf): \
    266         Utilities/Fastjet/src/ClusterSequenceVoronoiArea.$(SrcSuf)
    267 tmp/Utilities/Fastjet/src/Dnn3piCylinder.$(ObjSuf): \
    268         Utilities/Fastjet/src/Dnn3piCylinder.$(SrcSuf)
    269 tmp/Utilities/Fastjet/src/Error.$(ObjSuf): \
    270         Utilities/Fastjet/src/Error.$(SrcSuf)
    271 tmp/Utilities/Fastjet/src/ClusterSequenceAreaBase.$(ObjSuf): \
    272         Utilities/Fastjet/src/ClusterSequenceAreaBase.$(SrcSuf)
    273 tmp/Utilities/Fastjet/src/Dnn4piCylinder.$(ObjSuf): \
    274         Utilities/Fastjet/src/Dnn4piCylinder.$(SrcSuf)
    275 tmp/Utilities/Fastjet/src/ClusterSequence1GhostPassiveArea.$(ObjSuf): \
    276         Utilities/Fastjet/src/ClusterSequence1GhostPassiveArea.$(SrcSuf)
    277 tmp/Utilities/Fastjet/src/JetDefinition.$(ObjSuf): \
    278         Utilities/Fastjet/src/JetDefinition.$(SrcSuf)
    279 tmp/Utilities/Fastjet/src/DnnPlane.$(ObjSuf): \
    280         Utilities/Fastjet/src/DnnPlane.$(SrcSuf)
    281 tmp/Utilities/Fastjet/src/ClusterSequence_Delaunay.$(ObjSuf): \
    282         Utilities/Fastjet/src/ClusterSequence_Delaunay.$(SrcSuf)
    283 tmp/Utilities/Fastjet/src/MinHeap.$(ObjSuf): \
    284         Utilities/Fastjet/src/MinHeap.$(SrcSuf)
    285296tmp/Utilities/Fastjet/src/Voronoi.$(ObjSuf): \
    286297        Utilities/Fastjet/src/Voronoi.$(SrcSuf)
     
    292303        Utilities/Fastjet/include/fastjet/ClusterSequence.hh \
    293304        Utilities/Fastjet/include/fastjet/Error.hh
     305tmp/Utilities/Fastjet/plugins/CDFCones/src/CalTower.$(ObjSuf): \
     306        Utilities/Fastjet/plugins/CDFCones/src/CalTower.$(SrcSuf)
     307tmp/Utilities/Fastjet/plugins/CDFCones/src/Centroid.$(ObjSuf): \
     308        Utilities/Fastjet/plugins/CDFCones/src/Centroid.$(SrcSuf)
    294309tmp/Utilities/Fastjet/plugins/CDFCones/src/Cluster.$(ObjSuf): \
    295310        Utilities/Fastjet/plugins/CDFCones/src/Cluster.$(SrcSuf)
     311tmp/Utilities/Fastjet/plugins/CDFCones/src/ClusterComparisons.$(ObjSuf): \
     312        Utilities/Fastjet/plugins/CDFCones/src/ClusterComparisons.$(SrcSuf)
    296313tmp/Utilities/Fastjet/plugins/CDFCones/src/JetCluAlgorithm.$(ObjSuf): \
    297314        Utilities/Fastjet/plugins/CDFCones/src/JetCluAlgorithm.$(SrcSuf)
    298 tmp/Utilities/Fastjet/plugins/CDFCones/src/ClusterComparisons.$(ObjSuf): \
    299         Utilities/Fastjet/plugins/CDFCones/src/ClusterComparisons.$(SrcSuf)
     315tmp/Utilities/Fastjet/plugins/CDFCones/src/LorentzVector.$(ObjSuf): \
     316        Utilities/Fastjet/plugins/CDFCones/src/LorentzVector.$(SrcSuf)
     317tmp/Utilities/Fastjet/plugins/CDFCones/src/MidPointAlgorithm.$(ObjSuf): \
     318        Utilities/Fastjet/plugins/CDFCones/src/MidPointAlgorithm.$(SrcSuf)
    300319tmp/Utilities/Fastjet/plugins/CDFCones/src/PhysicsTower.$(ObjSuf): \
    301320        Utilities/Fastjet/plugins/CDFCones/src/PhysicsTower.$(SrcSuf)
    302 tmp/Utilities/Fastjet/plugins/CDFCones/src/CalTower.$(ObjSuf): \
    303         Utilities/Fastjet/plugins/CDFCones/src/CalTower.$(SrcSuf)
    304 tmp/Utilities/Fastjet/plugins/CDFCones/src/LorentzVector.$(ObjSuf): \
    305         Utilities/Fastjet/plugins/CDFCones/src/LorentzVector.$(SrcSuf)
    306 tmp/Utilities/Fastjet/plugins/CDFCones/src/Centroid.$(ObjSuf): \
    307         Utilities/Fastjet/plugins/CDFCones/src/Centroid.$(SrcSuf)
    308 tmp/Utilities/Fastjet/plugins/CDFCones/src/MidPointAlgorithm.$(ObjSuf): \
    309         Utilities/Fastjet/plugins/CDFCones/src/MidPointAlgorithm.$(SrcSuf)
    310321tmp/Utilities/Fastjet/plugins/SISCone/SISConePlugin.$(ObjSuf): \
    311322        Utilities/Fastjet/plugins/SISCone/SISConePlugin.$(SrcSuf) \
    312323        Utilities/Fastjet/include/fastjet/ClusterSequence.hh
     324tmp/Utilities/Fastjet/plugins/SISCone/src/geom_2d.$(ObjSuf): \
     325        Utilities/Fastjet/plugins/SISCone/src/geom_2d.$(SrcSuf)
     326tmp/Utilities/Fastjet/plugins/SISCone/src/area.$(ObjSuf): \
     327        Utilities/Fastjet/plugins/SISCone/src/area.$(SrcSuf)
     328tmp/Utilities/Fastjet/plugins/SISCone/src/momentum.$(ObjSuf): \
     329        Utilities/Fastjet/plugins/SISCone/src/momentum.$(SrcSuf)
     330tmp/Utilities/Fastjet/plugins/SISCone/src/hash.$(ObjSuf): \
     331        Utilities/Fastjet/plugins/SISCone/src/hash.$(SrcSuf)
     332tmp/Utilities/Fastjet/plugins/SISCone/src/protocones.$(ObjSuf): \
     333        Utilities/Fastjet/plugins/SISCone/src/protocones.$(SrcSuf)
     334tmp/Utilities/Fastjet/plugins/SISCone/src/quadtree.$(ObjSuf): \
     335        Utilities/Fastjet/plugins/SISCone/src/quadtree.$(SrcSuf)
    313336tmp/Utilities/Fastjet/plugins/SISCone/src/ranlux.$(ObjSuf): \
    314337        Utilities/Fastjet/plugins/SISCone/src/ranlux.$(SrcSuf)
    315 tmp/Utilities/Fastjet/plugins/SISCone/src/protocones.$(ObjSuf): \
    316         Utilities/Fastjet/plugins/SISCone/src/protocones.$(SrcSuf)
     338tmp/Utilities/Fastjet/plugins/SISCone/src/reference.$(ObjSuf): \
     339        Utilities/Fastjet/plugins/SISCone/src/reference.$(SrcSuf)
     340tmp/Utilities/Fastjet/plugins/SISCone/src/siscone.$(ObjSuf): \
     341        Utilities/Fastjet/plugins/SISCone/src/siscone.$(SrcSuf)
     342tmp/Utilities/Fastjet/plugins/SISCone/src/siscone_error.$(ObjSuf): \
     343        Utilities/Fastjet/plugins/SISCone/src/siscone_error.$(SrcSuf)
     344tmp/Utilities/Fastjet/plugins/SISCone/src/split_merge.$(ObjSuf): \
     345        Utilities/Fastjet/plugins/SISCone/src/split_merge.$(SrcSuf)
    317346tmp/Utilities/Fastjet/plugins/SISCone/src/vicinity.$(ObjSuf): \
    318347        Utilities/Fastjet/plugins/SISCone/src/vicinity.$(SrcSuf)
    319 tmp/Utilities/Fastjet/plugins/SISCone/src/siscone_error.$(ObjSuf): \
    320         Utilities/Fastjet/plugins/SISCone/src/siscone_error.$(SrcSuf)
    321 tmp/Utilities/Fastjet/plugins/SISCone/src/siscone.$(ObjSuf): \
    322         Utilities/Fastjet/plugins/SISCone/src/siscone.$(SrcSuf)
    323 tmp/Utilities/Fastjet/plugins/SISCone/src/area.$(ObjSuf): \
    324         Utilities/Fastjet/plugins/SISCone/src/area.$(SrcSuf)
    325 tmp/Utilities/Fastjet/plugins/SISCone/src/hash.$(ObjSuf): \
    326         Utilities/Fastjet/plugins/SISCone/src/hash.$(SrcSuf)
    327 tmp/Utilities/Fastjet/plugins/SISCone/src/reference.$(ObjSuf): \
    328         Utilities/Fastjet/plugins/SISCone/src/reference.$(SrcSuf)
    329 tmp/Utilities/Fastjet/plugins/SISCone/src/momentum.$(ObjSuf): \
    330         Utilities/Fastjet/plugins/SISCone/src/momentum.$(SrcSuf)
    331 tmp/Utilities/Fastjet/plugins/SISCone/src/geom_2d.$(ObjSuf): \
    332         Utilities/Fastjet/plugins/SISCone/src/geom_2d.$(SrcSuf)
    333 tmp/Utilities/Fastjet/plugins/SISCone/src/split_merge.$(ObjSuf): \
    334         Utilities/Fastjet/plugins/SISCone/src/split_merge.$(SrcSuf)
    335 tmp/Utilities/Fastjet/plugins/SISCone/src/quadtree.$(ObjSuf): \
    336         Utilities/Fastjet/plugins/SISCone/src/quadtree.$(SrcSuf)
    337348tmp/Examples/src/Analysis_Ex.$(ObjSuf): \
    338349        Examples/src/Analysis_Ex.$(SrcSuf) \
     
    340351SOURCE_OBJ =  \
    341352        tmp/src/BFieldProp.$(ObjSuf) \
     353        tmp/src/FrogUtil.$(ObjSuf) \
     354        tmp/src/HEPEVTConverter.$(ObjSuf) \
     355        tmp/src/JetUtils.$(ObjSuf) \
     356        tmp/src/LHEFConverter.$(ObjSuf) \
    342357        tmp/src/STDHEPConverter.$(ObjSuf) \
    343         tmp/src/JetUtils.$(ObjSuf) \
     358        tmp/src/SmearUtil.$(ObjSuf) \
     359        tmp/src/TreeClasses.$(ObjSuf) \
     360        tmp/src/TriggerUtil.$(ObjSuf) \
    344361        tmp/src/VeryForward.$(ObjSuf) \
    345         tmp/src/TriggerUtil.$(ObjSuf) \
    346         tmp/src/HEPEVTConverter.$(ObjSuf) \
    347         tmp/src/SmearUtil.$(ObjSuf) \
    348         tmp/src/FrogUtil.$(ObjSuf) \
    349         tmp/src/TreeClasses.$(ObjSuf) \
    350         tmp/src/LHEFConverter.$(ObjSuf) \
     362        tmp/Utilities/ExRootAnalysis/src/BlockClasses.$(ObjSuf) \
     363        tmp/Utilities/ExRootAnalysis/src/ExRootProgressBar.$(ObjSuf) \
     364        tmp/Utilities/ExRootAnalysis/src/ExRootTreeBranch.$(ObjSuf) \
    351365        tmp/Utilities/ExRootAnalysis/src/ExRootTreeReader.$(ObjSuf) \
    352         tmp/Utilities/ExRootAnalysis/src/ExRootTreeBranch.$(ObjSuf) \
    353         tmp/Utilities/ExRootAnalysis/src/ExRootProgressBar.$(ObjSuf) \
    354366        tmp/Utilities/ExRootAnalysis/src/ExRootTreeWriter.$(ObjSuf) \
    355         tmp/Utilities/ExRootAnalysis/src/BlockClasses.$(ObjSuf) \
    356         tmp/Utilities/Hector/src/H_Parameters.$(ObjSuf) \
     367        tmp/Utilities/Hector/src/H_AbstractBeamLine.$(ObjSuf) \
     368        tmp/Utilities/Hector/src/H_Aperture.$(ObjSuf) \
     369        tmp/Utilities/Hector/src/H_Beam.$(ObjSuf) \
     370        tmp/Utilities/Hector/src/H_BeamLine.$(ObjSuf) \
     371        tmp/Utilities/Hector/src/H_BeamLineParser.$(ObjSuf) \
     372        tmp/Utilities/Hector/src/H_BeamParticle.$(ObjSuf) \
     373        tmp/Utilities/Hector/src/H_CircularAperture.$(ObjSuf) \
     374        tmp/Utilities/Hector/src/H_Dipole.$(ObjSuf) \
     375        tmp/Utilities/Hector/src/H_Drift.$(ObjSuf) \
     376        tmp/Utilities/Hector/src/H_EllipticAperture.$(ObjSuf) \
    357377        tmp/Utilities/Hector/src/H_HorizontalKicker.$(ObjSuf) \
    358378        tmp/Utilities/Hector/src/H_HorizontalQuadrupole.$(ObjSuf) \
    359         tmp/Utilities/Hector/src/H_SectorDipole.$(ObjSuf) \
     379        tmp/Utilities/Hector/src/H_Kicker.$(ObjSuf) \
     380        tmp/Utilities/Hector/src/H_Marker.$(ObjSuf) \
     381        tmp/Utilities/Hector/src/H_OpticalElement.$(ObjSuf) \
     382        tmp/Utilities/Hector/src/H_Parameters.$(ObjSuf) \
     383        tmp/Utilities/Hector/src/H_Quadrupole.$(ObjSuf) \
    360384        tmp/Utilities/Hector/src/H_RecRPObject.$(ObjSuf) \
    361         tmp/Utilities/Hector/src/H_CircularAperture.$(ObjSuf) \
    362385        tmp/Utilities/Hector/src/H_RectEllipticAperture.$(ObjSuf) \
    363         tmp/Utilities/Hector/src/H_AbstractBeamLine.$(ObjSuf) \
    364         tmp/Utilities/Hector/src/H_TransportMatrices.$(ObjSuf) \
    365         tmp/Utilities/Hector/src/H_Aperture.$(ObjSuf) \
    366         tmp/Utilities/Hector/src/H_OpticalElement.$(ObjSuf) \
    367         tmp/Utilities/Hector/src/H_BeamLine.$(ObjSuf) \
    368         tmp/Utilities/Hector/src/H_BeamParticle.$(ObjSuf) \
     386        tmp/Utilities/Hector/src/H_RectangularAperture.$(ObjSuf) \
    369387        tmp/Utilities/Hector/src/H_RectangularCollimator.$(ObjSuf) \
    370388        tmp/Utilities/Hector/src/H_RectangularDipole.$(ObjSuf) \
    371         tmp/Utilities/Hector/src/H_BeamLineParser.$(ObjSuf) \
    372         tmp/Utilities/Hector/src/H_Beam.$(ObjSuf) \
    373         tmp/Utilities/Hector/src/H_Marker.$(ObjSuf) \
    374         tmp/Utilities/Hector/src/H_Kicker.$(ObjSuf) \
    375389        tmp/Utilities/Hector/src/H_RomanPot.$(ObjSuf) \
    376         tmp/Utilities/Hector/src/H_Drift.$(ObjSuf) \
    377         tmp/Utilities/Hector/src/H_EllipticAperture.$(ObjSuf) \
    378         tmp/Utilities/Hector/src/H_RectangularAperture.$(ObjSuf) \
     390        tmp/Utilities/Hector/src/H_SectorDipole.$(ObjSuf) \
     391        tmp/Utilities/Hector/src/H_TransportMatrices.$(ObjSuf) \
     392        tmp/Utilities/Hector/src/H_VerticalKicker.$(ObjSuf) \
    379393        tmp/Utilities/Hector/src/H_VerticalQuadrupole.$(ObjSuf) \
    380         tmp/Utilities/Hector/src/H_Dipole.$(ObjSuf) \
    381         tmp/Utilities/Hector/src/H_VerticalKicker.$(ObjSuf) \
    382         tmp/Utilities/Hector/src/H_Quadrupole.$(ObjSuf) \
     394        tmp/Utilities/Fastjet/src/AreaDefinition.$(ObjSuf) \
     395        tmp/Utilities/Fastjet/src/BasicRandom.$(ObjSuf) \
    383396        tmp/Utilities/Fastjet/src/ClosestPair2D.$(ObjSuf) \
     397        tmp/Utilities/Fastjet/src/ClusterSequence.$(ObjSuf) \
     398        tmp/Utilities/Fastjet/src/ClusterSequence1GhostPassiveArea.$(ObjSuf) \
     399        tmp/Utilities/Fastjet/src/ClusterSequenceActiveArea.$(ObjSuf) \
     400        tmp/Utilities/Fastjet/src/ClusterSequenceActiveAreaExplicitGhosts.$(ObjSuf) \
     401        tmp/Utilities/Fastjet/src/ClusterSequenceArea.$(ObjSuf) \
     402        tmp/Utilities/Fastjet/src/ClusterSequenceAreaBase.$(ObjSuf) \
     403        tmp/Utilities/Fastjet/src/ClusterSequencePassiveArea.$(ObjSuf) \
     404        tmp/Utilities/Fastjet/src/ClusterSequenceVoronoiArea.$(ObjSuf) \
     405        tmp/Utilities/Fastjet/src/ClusterSequence_CP2DChan.$(ObjSuf) \
     406        tmp/Utilities/Fastjet/src/ClusterSequence_Delaunay.$(ObjSuf) \
     407        tmp/Utilities/Fastjet/src/ClusterSequence_DumbN3.$(ObjSuf) \
     408        tmp/Utilities/Fastjet/src/ClusterSequence_N2.$(ObjSuf) \
     409        tmp/Utilities/Fastjet/src/ClusterSequence_TiledN2.$(ObjSuf) \
    384410        tmp/Utilities/Fastjet/src/Dnn2piCylinder.$(ObjSuf) \
    385         tmp/Utilities/Fastjet/src/ClusterSequenceActiveArea.$(ObjSuf) \
    386         tmp/Utilities/Fastjet/src/ClusterSequence_TiledN2.$(ObjSuf) \
    387         tmp/Utilities/Fastjet/src/ClusterSequence_CP2DChan.$(ObjSuf) \
    388         tmp/Utilities/Fastjet/src/ClusterSequence_N2.$(ObjSuf) \
    389         tmp/Utilities/Fastjet/src/ClusterSequencePassiveArea.$(ObjSuf) \
     411        tmp/Utilities/Fastjet/src/Dnn3piCylinder.$(ObjSuf) \
     412        tmp/Utilities/Fastjet/src/Dnn4piCylinder.$(ObjSuf) \
     413        tmp/Utilities/Fastjet/src/DnnPlane.$(ObjSuf) \
     414        tmp/Utilities/Fastjet/src/Error.$(ObjSuf) \
    390415        tmp/Utilities/Fastjet/src/GhostedAreaSpec.$(ObjSuf) \
    391         tmp/Utilities/Fastjet/src/ClusterSequence.$(ObjSuf) \
     416        tmp/Utilities/Fastjet/src/JetDefinition.$(ObjSuf) \
     417        tmp/Utilities/Fastjet/src/MinHeap.$(ObjSuf) \
     418        tmp/Utilities/Fastjet/src/PseudoJet.$(ObjSuf) \
    392419        tmp/Utilities/Fastjet/src/RangeDefinition.$(ObjSuf) \
    393         tmp/Utilities/Fastjet/src/BasicRandom.$(ObjSuf) \
    394         tmp/Utilities/Fastjet/src/ClusterSequenceArea.$(ObjSuf) \
    395         tmp/Utilities/Fastjet/src/ClusterSequenceActiveAreaExplicitGhosts.$(ObjSuf) \
    396         tmp/Utilities/Fastjet/src/PseudoJet.$(ObjSuf) \
    397         tmp/Utilities/Fastjet/src/AreaDefinition.$(ObjSuf) \
    398         tmp/Utilities/Fastjet/src/ClusterSequence_DumbN3.$(ObjSuf) \
    399         tmp/Utilities/Fastjet/src/ClusterSequenceVoronoiArea.$(ObjSuf) \
    400         tmp/Utilities/Fastjet/src/Dnn3piCylinder.$(ObjSuf) \
    401         tmp/Utilities/Fastjet/src/Error.$(ObjSuf) \
    402         tmp/Utilities/Fastjet/src/ClusterSequenceAreaBase.$(ObjSuf) \
    403         tmp/Utilities/Fastjet/src/Dnn4piCylinder.$(ObjSuf) \
    404         tmp/Utilities/Fastjet/src/ClusterSequence1GhostPassiveArea.$(ObjSuf) \
    405         tmp/Utilities/Fastjet/src/JetDefinition.$(ObjSuf) \
    406         tmp/Utilities/Fastjet/src/DnnPlane.$(ObjSuf) \
    407         tmp/Utilities/Fastjet/src/ClusterSequence_Delaunay.$(ObjSuf) \
    408         tmp/Utilities/Fastjet/src/MinHeap.$(ObjSuf) \
    409420        tmp/Utilities/Fastjet/src/Voronoi.$(ObjSuf) \
    410421        tmp/Utilities/Fastjet/plugins/CDFCones/CDFJetCluPlugin.$(ObjSuf) \
    411422        tmp/Utilities/Fastjet/plugins/CDFCones/CDFMidPointPlugin.$(ObjSuf) \
     423        tmp/Utilities/Fastjet/plugins/CDFCones/src/CalTower.$(ObjSuf) \
     424        tmp/Utilities/Fastjet/plugins/CDFCones/src/Centroid.$(ObjSuf) \
    412425        tmp/Utilities/Fastjet/plugins/CDFCones/src/Cluster.$(ObjSuf) \
     426        tmp/Utilities/Fastjet/plugins/CDFCones/src/ClusterComparisons.$(ObjSuf) \
    413427        tmp/Utilities/Fastjet/plugins/CDFCones/src/JetCluAlgorithm.$(ObjSuf) \
    414         tmp/Utilities/Fastjet/plugins/CDFCones/src/ClusterComparisons.$(ObjSuf) \
     428        tmp/Utilities/Fastjet/plugins/CDFCones/src/LorentzVector.$(ObjSuf) \
     429        tmp/Utilities/Fastjet/plugins/CDFCones/src/MidPointAlgorithm.$(ObjSuf) \
    415430        tmp/Utilities/Fastjet/plugins/CDFCones/src/PhysicsTower.$(ObjSuf) \
    416         tmp/Utilities/Fastjet/plugins/CDFCones/src/CalTower.$(ObjSuf) \
    417         tmp/Utilities/Fastjet/plugins/CDFCones/src/LorentzVector.$(ObjSuf) \
    418         tmp/Utilities/Fastjet/plugins/CDFCones/src/Centroid.$(ObjSuf) \
    419         tmp/Utilities/Fastjet/plugins/CDFCones/src/MidPointAlgorithm.$(ObjSuf) \
    420431        tmp/Utilities/Fastjet/plugins/SISCone/SISConePlugin.$(ObjSuf) \
     432        tmp/Utilities/Fastjet/plugins/SISCone/src/geom_2d.$(ObjSuf) \
     433        tmp/Utilities/Fastjet/plugins/SISCone/src/area.$(ObjSuf) \
     434        tmp/Utilities/Fastjet/plugins/SISCone/src/momentum.$(ObjSuf) \
     435        tmp/Utilities/Fastjet/plugins/SISCone/src/hash.$(ObjSuf) \
     436        tmp/Utilities/Fastjet/plugins/SISCone/src/protocones.$(ObjSuf) \
     437        tmp/Utilities/Fastjet/plugins/SISCone/src/quadtree.$(ObjSuf) \
    421438        tmp/Utilities/Fastjet/plugins/SISCone/src/ranlux.$(ObjSuf) \
    422         tmp/Utilities/Fastjet/plugins/SISCone/src/protocones.$(ObjSuf) \
     439        tmp/Utilities/Fastjet/plugins/SISCone/src/reference.$(ObjSuf) \
     440        tmp/Utilities/Fastjet/plugins/SISCone/src/siscone.$(ObjSuf) \
     441        tmp/Utilities/Fastjet/plugins/SISCone/src/siscone_error.$(ObjSuf) \
     442        tmp/Utilities/Fastjet/plugins/SISCone/src/split_merge.$(ObjSuf) \
    423443        tmp/Utilities/Fastjet/plugins/SISCone/src/vicinity.$(ObjSuf) \
    424         tmp/Utilities/Fastjet/plugins/SISCone/src/siscone_error.$(ObjSuf) \
    425         tmp/Utilities/Fastjet/plugins/SISCone/src/siscone.$(ObjSuf) \
    426         tmp/Utilities/Fastjet/plugins/SISCone/src/area.$(ObjSuf) \
    427         tmp/Utilities/Fastjet/plugins/SISCone/src/hash.$(ObjSuf) \
    428         tmp/Utilities/Fastjet/plugins/SISCone/src/reference.$(ObjSuf) \
    429         tmp/Utilities/Fastjet/plugins/SISCone/src/momentum.$(ObjSuf) \
    430         tmp/Utilities/Fastjet/plugins/SISCone/src/geom_2d.$(ObjSuf) \
    431         tmp/Utilities/Fastjet/plugins/SISCone/src/split_merge.$(ObjSuf) \
    432         tmp/Utilities/Fastjet/plugins/SISCone/src/quadtree.$(ObjSuf) \
    433444        tmp/Examples/src/Analysis_Ex.$(ObjSuf)
    434445
     446tmp/Utilities/mcfio/mcf_NTuIOFiles.$(ObjSuf): \
     447        Utilities/mcfio/mcf_NTuIOFiles.c
     448tmp/Utilities/mcfio/mcf_NTuIOUtils.$(ObjSuf): \
     449        Utilities/mcfio/mcf_NTuIOUtils.c
     450tmp/Utilities/mcfio/mcf_evt_xdr.$(ObjSuf): \
     451        Utilities/mcfio/mcf_evt_xdr.c
     452tmp/Utilities/mcfio/mcf_ntuBldDbinc.$(ObjSuf): \
     453        Utilities/mcfio/mcf_ntuBldDbinc.c
     454tmp/Utilities/mcfio/mcf_ntubldInit.$(ObjSuf): \
     455        Utilities/mcfio/mcf_ntubldInit.c
     456tmp/Utilities/mcfio/mcfio_Block.$(ObjSuf): \
     457        Utilities/mcfio/mcfio_Block.c
    435458tmp/Utilities/mcfio/mcfio_Direct.$(ObjSuf): \
    436459        Utilities/mcfio/mcfio_Direct.c
    437 tmp/Utilities/mcfio/mcfio_Block.$(ObjSuf): \
    438         Utilities/mcfio/mcfio_Block.c
    439 tmp/Utilities/mcfio/mcf_evt_xdr.$(ObjSuf): \
    440         Utilities/mcfio/mcf_evt_xdr.c
    441 tmp/Utilities/mcfio/mcf_NTuIOUtils.$(ObjSuf): \
    442         Utilities/mcfio/mcf_NTuIOUtils.c
    443 tmp/Utilities/mcfio/mcf_NTuIOFiles.$(ObjSuf): \
    444         Utilities/mcfio/mcf_NTuIOFiles.c
     460tmp/Utilities/mcfio/mcfio_SeqDummy.$(ObjSuf): \
     461        Utilities/mcfio/mcfio_SeqDummy.c
     462tmp/Utilities/mcfio/mcfio_UserDictionary.$(ObjSuf): \
     463        Utilities/mcfio/mcfio_UserDictionary.c
    445464tmp/Utilities/mcfio/mcfio_Util1.$(ObjSuf): \
    446465        Utilities/mcfio/mcfio_Util1.c
    447 tmp/Utilities/mcfio/mcf_ntubldInit.$(ObjSuf): \
    448         Utilities/mcfio/mcf_ntubldInit.c
    449 tmp/Utilities/mcfio/mcfio_UserDictionary.$(ObjSuf): \
    450         Utilities/mcfio/mcfio_UserDictionary.c
    451 tmp/Utilities/mcfio/mcf_ntuBldDbinc.$(ObjSuf): \
    452         Utilities/mcfio/mcf_ntuBldDbinc.c
    453 tmp/Utilities/mcfio/mcfio_SeqDummy.$(ObjSuf): \
    454         Utilities/mcfio/mcfio_SeqDummy.c
    455 tmp/Utilities/stdhep/mcf_hepup_xdr.$(ObjSuf): \
    456         Utilities/stdhep/mcf_hepup_xdr.c \
     466tmp/Utilities/stdhep/mcf_Stdhep_xdr.$(ObjSuf): \
     467        Utilities/stdhep/mcf_Stdhep_xdr.c \
    457468        Utilities/mcfio/mcfio_Dict.h \
    458469        Utilities/mcfio/mcf_xdr.h \
    459         Utilities/stdhep/hepeup.h \
    460         Utilities/stdhep/heprup.h \
     470        Utilities/stdhep/stdhep.h \
     471        Utilities/stdhep/stdtmp.h \
    461472        Utilities/stdhep/stdver.h
    462473tmp/Utilities/stdhep/mcf_hepev4_xdr.$(ObjSuf): \
     
    467478        Utilities/stdhep/hepev4.h \
    468479        Utilities/stdhep/stdtmp.h \
     480        Utilities/stdhep/stdver.h
     481tmp/Utilities/stdhep/mcf_hepup_xdr.$(ObjSuf): \
     482        Utilities/stdhep/mcf_hepup_xdr.c \
     483        Utilities/mcfio/mcfio_Dict.h \
     484        Utilities/mcfio/mcf_xdr.h \
     485        Utilities/stdhep/hepeup.h \
     486        Utilities/stdhep/heprup.h \
    469487        Utilities/stdhep/stdver.h
    470488tmp/Utilities/stdhep/mcf_stdcm1_xdr.$(ObjSuf): \
     
    495513        Utilities/stdhep/stdcnt.h \
    496514        Utilities/stdhep/stdhep_mcfio.h
    497 tmp/Utilities/stdhep/mcf_Stdhep_xdr.$(ObjSuf): \
    498         Utilities/stdhep/mcf_Stdhep_xdr.c \
    499         Utilities/mcfio/mcfio_Dict.h \
    500         Utilities/mcfio/mcf_xdr.h \
    501         Utilities/stdhep/stdhep.h \
    502         Utilities/stdhep/stdtmp.h \
    503         Utilities/stdhep/stdver.h
    504515STDHEP_OBJ =  \
     516        tmp/Utilities/mcfio/mcf_NTuIOFiles.$(ObjSuf) \
     517        tmp/Utilities/mcfio/mcf_NTuIOUtils.$(ObjSuf) \
     518        tmp/Utilities/mcfio/mcf_evt_xdr.$(ObjSuf) \
     519        tmp/Utilities/mcfio/mcf_ntuBldDbinc.$(ObjSuf) \
     520        tmp/Utilities/mcfio/mcf_ntubldInit.$(ObjSuf) \
     521        tmp/Utilities/mcfio/mcfio_Block.$(ObjSuf) \
    505522        tmp/Utilities/mcfio/mcfio_Direct.$(ObjSuf) \
    506         tmp/Utilities/mcfio/mcfio_Block.$(ObjSuf) \
    507         tmp/Utilities/mcfio/mcf_evt_xdr.$(ObjSuf) \
    508         tmp/Utilities/mcfio/mcf_NTuIOUtils.$(ObjSuf) \
    509         tmp/Utilities/mcfio/mcf_NTuIOFiles.$(ObjSuf) \
     523        tmp/Utilities/mcfio/mcfio_SeqDummy.$(ObjSuf) \
     524        tmp/Utilities/mcfio/mcfio_UserDictionary.$(ObjSuf) \
    510525        tmp/Utilities/mcfio/mcfio_Util1.$(ObjSuf) \
    511         tmp/Utilities/mcfio/mcf_ntubldInit.$(ObjSuf) \
    512         tmp/Utilities/mcfio/mcfio_UserDictionary.$(ObjSuf) \
    513         tmp/Utilities/mcfio/mcf_ntuBldDbinc.$(ObjSuf) \
    514         tmp/Utilities/mcfio/mcfio_SeqDummy.$(ObjSuf) \
     526        tmp/Utilities/stdhep/mcf_Stdhep_xdr.$(ObjSuf) \
     527        tmp/Utilities/stdhep/mcf_hepev4_xdr.$(ObjSuf) \
    515528        tmp/Utilities/stdhep/mcf_hepup_xdr.$(ObjSuf) \
    516         tmp/Utilities/stdhep/mcf_hepev4_xdr.$(ObjSuf) \
    517529        tmp/Utilities/stdhep/mcf_stdcm1_xdr.$(ObjSuf) \
    518530        tmp/Utilities/stdhep/stdhep_internal_utils.$(ObjSuf) \
    519         tmp/Utilities/stdhep/stdhep_mcfio.$(ObjSuf) \
    520         tmp/Utilities/stdhep/mcf_Stdhep_xdr.$(ObjSuf)
     531        tmp/Utilities/stdhep/stdhep_mcfio.$(ObjSuf)
    521532
    522533interface/TriggerUtil.h: \
     
    531542        @touch $@
    532543
     544Utilities/Fastjet/include/fastjet/Error.hh: \
     545        Utilities/Fastjet/include/fastjet/internal/base.hh
     546        @touch $@
     547
     548interface/STDHEPConverter.h: \
     549        Utilities/ExRootAnalysis/interface/BlockClasses.h \
     550        Utilities/ExRootAnalysis/interface/TSimpleArray.h \
     551        Utilities/ExRootAnalysis/interface/LHEF.h \
     552        interface/DataConverter.h
     553        @touch $@
     554
     555Utilities/ExRootAnalysis/interface/BlockClasses.h: \
     556        Utilities/ExRootAnalysis/interface/BlockCompare.h
     557        @touch $@
     558
     559Utilities/Fastjet/include/fastjet/PseudoJet.hh: \
     560        Utilities/Fastjet/include/fastjet/internal/numconsts.hh
     561        @touch $@
     562
    533563interface/HEPEVTConverter.h: \
    534564        Utilities/ExRootAnalysis/interface/BlockClasses.h \
    535565        Utilities/ExRootAnalysis/interface/TSimpleArray.h \
     566        interface/DataConverter.h
     567        @touch $@
     568
     569interface/FrogUtil.h: \
     570        interface/SmearUtil.h \
     571        Utilities/ExRootAnalysis/interface/BlockClasses.h \
     572        Utilities/ExRootAnalysis/interface/ExRootTreeReader.h \
     573        Utilities/ExRootAnalysis/interface/ExRootTreeWriter.h \
     574        Utilities/ExRootAnalysis/interface/ExRootTreeBranch.h \
     575        Utilities/FROG/Includes/FROG/FROG_Events.h
     576        @touch $@
     577
     578interface/TreeClasses.h: \
     579        Utilities/ExRootAnalysis/interface/BlockCompare.h \
     580        Utilities/ExRootAnalysis/interface/BlockClasses.h
     581        @touch $@
     582
     583interface/LHEFConverter.h: \
     584        Utilities/ExRootAnalysis/interface/ExRootTreeBranch.h \
     585        Utilities/ExRootAnalysis/interface/LHEF.h \
    536586        interface/DataConverter.h
    537587        @touch $@
     
    550600        @touch $@
    551601
     602interface/SmearUtil.h: \
     603        Utilities/ExRootAnalysis/interface/BlockClasses.h \
     604        Utilities/ExRootAnalysis/interface/TSimpleArray.h \
     605        Utilities/Fastjet/plugins/CDFCones/interface/PhysicsTower.hh
     606        @touch $@
     607
    552608Examples/interface/Analysis_Ex.h: \
    553609        Utilities/ExRootAnalysis/interface/ExRootTreeReader.h \
     
    558614        @touch $@
    559615
    560 interface/TreeClasses.h: \
    561         Utilities/ExRootAnalysis/interface/BlockCompare.h \
    562         Utilities/ExRootAnalysis/interface/BlockClasses.h
    563         @touch $@
    564 
    565 interface/SmearUtil.h: \
    566         Utilities/ExRootAnalysis/interface/BlockClasses.h \
    567         Utilities/ExRootAnalysis/interface/TSimpleArray.h \
    568         Utilities/Fastjet/plugins/CDFCones/interface/PhysicsTower.hh
    569         @touch $@
    570 
    571 interface/LHEFConverter.h: \
    572         Utilities/ExRootAnalysis/interface/ExRootTreeBranch.h \
    573         Utilities/ExRootAnalysis/interface/LHEF.h \
    574         interface/DataConverter.h
    575         @touch $@
    576 
    577616interface/BFieldProp.h: \
    578617        interface/SmearUtil.h \
    579618        Utilities/ExRootAnalysis/interface/BlockClasses.h \
    580619        Utilities/ExRootAnalysis/interface/TSimpleArray.h
    581         @touch $@
    582 
    583 Utilities/Fastjet/include/fastjet/Error.hh: \
    584         Utilities/Fastjet/include/fastjet/internal/base.hh
    585         @touch $@
    586 
    587 Utilities/Fastjet/include/fastjet/ClusterSequence.hh: \
    588         Utilities/Fastjet/include/fastjet/internal/DynamicNearestNeighbours.hh \
    589         Utilities/Fastjet/include/fastjet/PseudoJet.hh \
    590         Utilities/Fastjet/include/fastjet/Error.hh \
    591         Utilities/Fastjet/include/fastjet/JetDefinition.hh
    592620        @touch $@
    593621
     
    613641        @touch $@
    614642
    615 Utilities/ExRootAnalysis/interface/BlockClasses.h: \
    616         Utilities/ExRootAnalysis/interface/BlockCompare.h
    617         @touch $@
    618 
    619 interface/STDHEPConverter.h: \
    620         Utilities/ExRootAnalysis/interface/BlockClasses.h \
    621         Utilities/ExRootAnalysis/interface/TSimpleArray.h \
    622         Utilities/ExRootAnalysis/interface/LHEF.h \
    623         interface/DataConverter.h
    624         @touch $@
    625 
    626 Utilities/Fastjet/include/fastjet/PseudoJet.hh: \
    627         Utilities/Fastjet/include/fastjet/internal/numconsts.hh
     643Utilities/Fastjet/include/fastjet/ClusterSequence.hh: \
     644        Utilities/Fastjet/include/fastjet/internal/DynamicNearestNeighbours.hh \
     645        Utilities/Fastjet/include/fastjet/PseudoJet.hh \
     646        Utilities/Fastjet/include/fastjet/Error.hh \
     647        Utilities/Fastjet/include/fastjet/JetDefinition.hh
    628648        @touch $@
    629649
  • trunk/Resolutions.cpp

    r94 r100  
    189189
    190190  //Jet information
    191   JetsUtil *JETRUN = new JetsUtil();
     191  JetsUtil *JETRUN = new JetsUtil(DetDatacard);
    192192
    193193  //Propagation of tracks in the B field
    194   TrackPropagation *TRACP = new TrackPropagation();
     194  TrackPropagation *TRACP = new TrackPropagation(DetDatacard);
    195195   
    196196  TLorentzVector genMomentum(0,0,0,0);//TLorentzVector containing generator level information
  • trunk/Utilities/FROG/Includes/FROG/FROG_Chunk.h

    r95 r100  
    114114#define C_PRIMITIVE_PARTIALSPHERE       41031   // Contains a sphere
    115115#define C_PRIMITIVE_CYLINDER            41040   // Contains a cylinder
     116#define C_PRIMITIVE_CONE                41080   // Contains a cylinder
    116117
    117118#define C_PRIMITIVE_SURFACE                     42000   // Contains Chunks related to Surface Primtive (Plane, Disc, ...)
  • trunk/Utilities/FROG/Includes/FROG/FROG_Element_Tools.cpp

    r95 r100  
    139139                                }                               
    140140                        break;
     141
     142                       case C_PRIMITIVE_CONE :
     143                                NObjs = (chunk_size-chunk_read)/(FROG_Element_Primitive_Cone::sizeOf()-6);
     144                                for(int i=0;i<NObjs;i++){
     145                                        mother->addDaughter(new FROG_Element_Primitive_Cone(pFile));
     146                                        chunk_read += FROG_Element_Primitive_Cone::sizeOf()-6;
     147                                }
     148                        break;
     149
    141150
    142151                        case C_PRIMITIVE_CUSTOM_SURFACE :
  • trunk/Utilities/FROG/Includes/FROG/FROG_Element_Tools.h

    r95 r100  
    2525#include "FROG_Element_Primitive_PartialSphere.h"
    2626#include "FROG_Element_Primitive_Cylinder.h"
     27#include "FROG_Element_Primitive_Cone.h"
    2728
    2829#include "FROG_Element_Primitive_CustomSurface.h"
  • trunk/Utilities/FROG/main.cpp

    r95 r100  
    55void Loading()
    66{
     7        char Buffer[1024];
     8
    79        switch(mLoading_I)
    810        {       
     
    4345                        ViewScreen = new FROG_View_Screen("Screen");
    4446                        ViewScreen->Reshape(WINDOW_WIDTH,WINDOW_HEIGHT);
    45                         ViewScreen->LoadingInProgress(0.0f,"Reading config.txt",Fonts,LogoTexture);
     47                        sprintf(Buffer,"Reading %s",inputConfig.c_str());
     48                        ViewScreen->LoadingInProgress(0.0f,Buffer,Fonts,LogoTexture);
    4649               
    4750
    48                         LoadCard("config.txt");
     51                        LoadCard(inputConfig.c_str());
    4952                        if(!Card->IsTagPresent("InputGeom") && !Card->IsTagPresent("InputVisFile")){
    5053                           printf("There is no .geom file neither than .vis file in the Config card\n");
    51                            printf("FROG will stop.  Please update the Config card (config.txt)\n");
     54                           printf("FROG will stop.  Please update the Config card (%s)\n",inputConfig.c_str());
    5255                           exit(0);
    5356                        }                       
     
    6164                           inputGeom = Card->GetStringVector("InputGeom");         
    6265                           for(unsigned int g=0;g<inputGeom.size();g++){
    63                                    inputGeom[g] = string((char*)DownLoadFile( (char*)inputGeom[g].c_str() ) );
     66                                   inputGeom[g] = string((char*)DownLoadFile( (char*)inputGeom[g].c_str(), AbsolutePath.c_str() ) );
    6467                           }
    6568                        }                                               
     
    6770
    6871                case 2:
     72                        /*
    6973                        ViewScreen->LoadingInProgress(10.0f,"Downloading Events\n(if necessary)",Fonts,LogoTexture);                   
    7074
     
    7276                                inputVisFileFromCard = Card->GetString("InputVisFile");                         
    7377                        }
    74                         inputVisFile = string((char*)DownLoadFile( (char*)inputVisFileFromCard.c_str() ) );
     78                        inputVisFile = string((char*)DownLoadFile( (char*)inputVisFileFromCard.c_str(), AbsolutePath.c_str() ) );
     79                        */
    7580                        break;
    7681
     
    8792                        }                       
    8893                        frogObjects_ = new FROG_Objects_Extended(geom,NULL,Card, Fonts);
     94
    8995                       
    9096                        }break;
    9197
    9298                case 4:{
    93                         if(strcmp(inputVisFile.c_str(),"")==0){
    94                                 ViewScreen->LoadingInProgress(80.0f,"No Event Files has been Given",Fonts,LogoTexture);
    95                         }else{
    96                                 ViewScreen->LoadingInProgress(80.0f,(char*)inputVisFile.c_str(),Fonts,LogoTexture);
    97                         }
     99                        ViewScreen->LoadingInProgress(80.0f,"Loading .vis Files",Fonts,LogoTexture);
    98100
    99101                        if(events)delete events;
    100                         events = new FROG_Events();                             
    101                         events->Load(inputVisFile.c_str());
    102                         events->frogObjects_ = frogObjects_;
    103                         events->Init(frogObjects_);
     102                        events = new FROG_Events(frogObjects_);                                         
     103                        events->Load(inputVisFileFromCommand);                         
    104104                        events->readEventToDisplay(Card);
    105                         if(SCREENSAVER)eventNumber = rand()%((int)events->NumberOfEvents());
     105                        if(SCREENSAVER)eventNumber = rand()%((int)events->NumberOfEvents());                   
    106106                        event = events->GoToEvent(eventNumber);
    107 
    108107                        }break;
    109108
    110                 case 5:{
     109                case 5:{                       
    111110                        ViewScreen->LoadingInProgress(95.0f,"Views Initialisation",Fonts,LogoTexture);
    112111
    113112                        ViewScreen->displayFunc_ = displaytext;
    114113                        std::vector<string> ViewsName = Card->GetStringVector("ActiveViews");
    115                         ViewMain = ViewScreen;                 
    116                         for(unsigned int i=0;i<ViewsName.size();i++){                           
     114                        ViewMain = ViewScreen;                                         
     115                        for(unsigned int i=0;i<ViewsName.size();i++){                                                          
    117116                                char* tmp = new char[ViewsName[i].size()+1];                           
    118117                                strcpy(tmp,ViewsName[i].c_str());                               
    119                                 ActiveViews.push_back(FROG_VIEW::Create(tmp,frogObjects_));                                                             
    120                         }                                               
     118                                ActiveViews.push_back(FROG_VIEW::Create(tmp,frogObjects_));                                                                                            
     119                        }                                                      
    121120                        ViewScreen->Reshape(WINDOW_WIDTH,WINDOW_HEIGHT);
     121                       
    122122                        for(unsigned int j=0;j<ActiveViews.size();j++){
    123123                                if(ViewMain==ViewScreen && ActiveViews[j]->IsSwapPossible()){ViewMain = ActiveViews[j];}
     
    125125                                ActiveViews[j]->displayFunc_ = &display2;
    126126                        }                               
    127                         ViewMain->IsActive = true;
     127                        ViewMain->IsActive = true;                     
    128128                        geom->updateGeomToDisplay((void*)frogObjects_);
    129129
    130130                        ViewMenu = new FROG_View_Menu("ViewMenu2",frogObjects_);
    131                         ViewMenu->Reshape(WINDOW_WIDTH,WINDOW_HEIGHT);                 
     131                        ViewMenu->Reshape(WINDOW_WIDTH,WINDOW_HEIGHT);                                         
    132132                        }break;
    133133
     
    155155                        glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) ;             
    156156
     157
    157158                        mLoading   = false;
    158159                        end = time ( NULL );
     
    161162                        glutDisplayFunc (display);
    162163                        glutIdleFunc    (display);
     164
     165                        glutKeyboardFunc (processNormalKeys);
     166                        glutSpecialFunc  (processSpecialKeys);
     167                 
     168                        glutMouseFunc(processMouse);
     169                        glutMotionFunc(processMotion);
     170                        if(SCREENSAVER){
     171                                eventTime = 20;
     172                                glutPassiveMotionFunc(processPassiveMotion);           
     173                                glutFullScreen();
     174                        }
     175
    163176
    164177                        if(SHOOTER){
     
    207220        Fonts->Font_Fixed_9_by_15->glPrint(WINDOW_WIDTH-126,WINDOW_HEIGHT - 30,"% 10i FPS", ViewScreen->FPS);
    208221        if(mHelpScreen){               
    209                 Fonts->Font_Fixed_9_by_15->glPrint(WINDOW_WIDTH/3,WINDOW_HEIGHT - 45    ,"F1     = Open this Screen for Help");
    210                 Fonts->Font_Fixed_9_by_15->glPrint(WINDOW_WIDTH/3,WINDOW_HEIGHT - 60    ,"F2     = Open the Display Menu");
    211                 Fonts->Font_Fixed_9_by_15->glPrint(WINDOW_WIDTH/3,WINDOW_HEIGHT - 75    ,"F3     = use only for debug");
    212                 Fonts->Font_Fixed_9_by_15->glPrint(WINDOW_WIDTH/3,WINDOW_HEIGHT - 90    ,"F4     = Automatic ScreenShooter (Warning)");
    213 
    214                 Fonts->Font_Fixed_9_by_15->glPrint(WINDOW_WIDTH/3,WINDOW_HEIGHT - 125   ,"F5     = SimTrack       : ON/OFF");
    215                 Fonts->Font_Fixed_9_by_15->glPrint(WINDOW_WIDTH/3,WINDOW_HEIGHT - 140   ,"F6     = SimVertex      : ON/OFF");
    216                 Fonts->Font_Fixed_9_by_15->glPrint(WINDOW_WIDTH/3,WINDOW_HEIGHT - 155   ,"F7     = PSimHits       : ON/OFF");
    217                 Fonts->Font_Fixed_9_by_15->glPrint(WINDOW_WIDTH/3,WINDOW_HEIGHT - 170   ,"F8     = RecoTrack      : ON/OFF");
    218 
    219                 Fonts->Font_Fixed_9_by_15->glPrint(WINDOW_WIDTH/3,WINDOW_HEIGHT - 205   ,"F9     = SiStripCluster : ON/OFF");
    220                 Fonts->Font_Fixed_9_by_15->glPrint(WINDOW_WIDTH/3,WINDOW_HEIGHT - 220   ,"F10    = EcalHits       : ON/OFF");
    221                 Fonts->Font_Fixed_9_by_15->glPrint(WINDOW_WIDTH/3,WINDOW_HEIGHT - 235   ,"F11    = HcalHits       : ON/OFF");           
    222                 Fonts->Font_Fixed_9_by_15->glPrint(WINDOW_WIDTH/3,WINDOW_HEIGHT - 250   ,"F12    = MuonHit/Seg    : ON/OFF");
    223 
    224                 Fonts->Font_Fixed_9_by_15->glPrint(WINDOW_WIDTH/3,WINDOW_HEIGHT - 285   ,"0      = Geometry to Display : NONE");
    225                 Fonts->Font_Fixed_9_by_15->glPrint(WINDOW_WIDTH/3,WINDOW_HEIGHT - 300   ,"9      = Geometry to Display : FULL");
    226 
    227                 Fonts->Font_Fixed_9_by_15->glPrint(WINDOW_WIDTH/3,WINDOW_HEIGHT - 335   ,"LEFT   = Previous Event");
    228                 Fonts->Font_Fixed_9_by_15->glPrint(WINDOW_WIDTH/3,WINDOW_HEIGHT - 350   ,"RIGHT  = Next     Event");
    229                 Fonts->Font_Fixed_9_by_15->glPrint(WINDOW_WIDTH/3,WINDOW_HEIGHT - 375   ,"UP     = Increase Rotation");
    230                 Fonts->Font_Fixed_9_by_15->glPrint(WINDOW_WIDTH/3,WINDOW_HEIGHT - 390   ,"DOWN   = Decrease Rotation");
    231 
    232                 Fonts->Font_Fixed_9_by_15->glPrint(WINDOW_WIDTH/3,WINDOW_HEIGHT - 425   ,"p      = Zoom In");
    233                 Fonts->Font_Fixed_9_by_15->glPrint(WINDOW_WIDTH/3,WINDOW_HEIGHT - 440   ,"m      = Zoom Out");
    234                 Fonts->Font_Fixed_9_by_15->glPrint(WINDOW_WIDTH/3,WINDOW_HEIGHT - 455   ,"f      = Maximize the active view");
    235                 Fonts->Font_Fixed_9_by_15->glPrint(WINDOW_WIDTH/3,WINDOW_HEIGHT - 470   ,"s      = SlideShow      : ON/OFF");
    236                 Fonts->Font_Fixed_9_by_15->glPrint(WINDOW_WIDTH/3,WINDOW_HEIGHT - 485   ,"t      = TreeMenu       : ON/OFF");
    237 
    238                 Fonts->Font_Fixed_9_by_15->glPrint(WINDOW_WIDTH/3,WINDOW_HEIGHT - 515   ,"ENTER  = Screenshot");
    239                 Fonts->Font_Fixed_9_by_15->glPrint(WINDOW_WIDTH/3,WINDOW_HEIGHT - 530   ,"SPACE  = Rotation       : ON/OFF");
    240                 Fonts->Font_Fixed_9_by_15->glPrint(WINDOW_WIDTH/3,WINDOW_HEIGHT - 545   ,"ESCAPE = Exit");
    241                 Fonts->Font_Fixed_9_by_15->glPrint(WINDOW_WIDTH/3,WINDOW_HEIGHT - 560   ,"q      = Exit");
    242                 Fonts->Font_Fixed_9_by_15->glPrint(WINDOW_WIDTH/3,WINDOW_HEIGHT - 575   ,"a      = Full Screen");
     222                if(events) Fonts->Font_Fixed_9_by_15->glPrint(0,WINDOW_HEIGHT - 14,"CurrentFile = ...%s",events->CurrentFile());
     223
     224                Fonts->Font_Fixed_9_by_15->glPrint(150,WINDOW_HEIGHT - 45       ,"F1     = Open this Screen for Help");
     225                Fonts->Font_Fixed_9_by_15->glPrint(150,WINDOW_HEIGHT - 60       ,"F2     = Open the Display Menu");
     226                Fonts->Font_Fixed_9_by_15->glPrint(150,WINDOW_HEIGHT - 75       ,"F3     = use only for debug");
     227                Fonts->Font_Fixed_9_by_15->glPrint(150,WINDOW_HEIGHT - 90       ,"F4     = Automatic ScreenShooter (Warning)");
     228
     229                Fonts->Font_Fixed_9_by_15->glPrint(150,WINDOW_HEIGHT - 125      ,"F5     = SimTrack       : ON/OFF");
     230                Fonts->Font_Fixed_9_by_15->glPrint(150,WINDOW_HEIGHT - 140      ,"F6     = SimVertex      : ON/OFF");
     231                Fonts->Font_Fixed_9_by_15->glPrint(150,WINDOW_HEIGHT - 155      ,"F7     = PSimHits       : ON/OFF");
     232                Fonts->Font_Fixed_9_by_15->glPrint(150,WINDOW_HEIGHT - 170      ,"F8     = RecoTrack      : ON/OFF");
     233
     234                Fonts->Font_Fixed_9_by_15->glPrint(150,WINDOW_HEIGHT - 205      ,"F9     = SiStripCluster : ON/OFF");
     235                Fonts->Font_Fixed_9_by_15->glPrint(150,WINDOW_HEIGHT - 220      ,"F10    = EcalHits       : ON/OFF");
     236                Fonts->Font_Fixed_9_by_15->glPrint(150,WINDOW_HEIGHT - 235      ,"F11    = HcalHits       : ON/OFF");           
     237                Fonts->Font_Fixed_9_by_15->glPrint(150,WINDOW_HEIGHT - 250      ,"F12    = MuonHit/Seg    : ON/OFF");
     238
     239                Fonts->Font_Fixed_9_by_15->glPrint(150,WINDOW_HEIGHT - 285      ,"0      = Geometry to Display : NONE");
     240                Fonts->Font_Fixed_9_by_15->glPrint(150,WINDOW_HEIGHT - 300      ,"9      = Geometry to Display : FULL");
     241
     242                Fonts->Font_Fixed_9_by_15->glPrint(150,WINDOW_HEIGHT - 335      ,"LEFT   = Previous Event");
     243                Fonts->Font_Fixed_9_by_15->glPrint(150,WINDOW_HEIGHT - 350      ,"RIGHT  = Next     Event");
     244                Fonts->Font_Fixed_9_by_15->glPrint(150,WINDOW_HEIGHT - 375      ,"UP     = Increase Rotation");
     245                Fonts->Font_Fixed_9_by_15->glPrint(150,WINDOW_HEIGHT - 390      ,"DOWN   = Decrease Rotation");
     246
     247                Fonts->Font_Fixed_9_by_15->glPrint(500,WINDOW_HEIGHT - 375      ,"PAGE UP   = Previous VisFile");
     248                Fonts->Font_Fixed_9_by_15->glPrint(500,WINDOW_HEIGHT - 390      ,"PAGE DOWN = Next     VisFile");
     249
     250                Fonts->Font_Fixed_9_by_15->glPrint(150,WINDOW_HEIGHT - 425      ,"p      = Zoom In");
     251                Fonts->Font_Fixed_9_by_15->glPrint(150,WINDOW_HEIGHT - 440      ,"m      = Zoom Out");
     252                Fonts->Font_Fixed_9_by_15->glPrint(150,WINDOW_HEIGHT - 455      ,"f      = Maximize the active view");
     253                Fonts->Font_Fixed_9_by_15->glPrint(150,WINDOW_HEIGHT - 470      ,"s      = SlideShow      : ON/OFF");
     254                Fonts->Font_Fixed_9_by_15->glPrint(150,WINDOW_HEIGHT - 485      ,"t      = TreeMenu       : ON/OFF");
     255
     256                Fonts->Font_Fixed_9_by_15->glPrint(150,WINDOW_HEIGHT - 515   ,"ENTER  = Screenshot");
     257                Fonts->Font_Fixed_9_by_15->glPrint(150,WINDOW_HEIGHT - 530   ,"SPACE  = Rotation       : ON/OFF");
     258                Fonts->Font_Fixed_9_by_15->glPrint(150,WINDOW_HEIGHT - 545   ,"ESCAPE = Exit");
     259                Fonts->Font_Fixed_9_by_15->glPrint(150,WINDOW_HEIGHT - 560   ,"q      = Exit");
     260                Fonts->Font_Fixed_9_by_15->glPrint(150,WINDOW_HEIGHT - 575   ,"a      = Full Screen");
    243261               
    244262                Fonts->Font_Fixed_9_by_15->glPrint(120,3,"This program has been created by Loic Quertenmont, loic.quertenmont@cern.ch");               
     
    334352// if required by the variable updateVisFileTime
    335353
    336 #ifdef linux       
    337         if( updateVisFileTime>0 && !Thread_Run) {
    338                 char* argtosend = (char*)inputVisFileFromCard.c_str();
    339                 if (pthread_create (&Thread_H, NULL, DownLoadFile, (void*)argtosend) < 0) {
    340                    printf("pthread_create error for Thread_H\n");
    341                    exit (1);
    342                 }               
    343                 Thread_Run=true;
    344         }
    345 
    346         static time_t upstart = time (NULL );
    347         time_t upstop = time( NULL );
    348         if(upstop - upstart > updateVisFileTime && Thread_Run) {
    349                 (void)pthread_join (Thread_H, NULL);
    350 
    351                 Thread_Run=false;
    352                 glutDisplayFunc (Loading);
    353                 glutIdleFunc    (Loading);
    354 
    355                 mLoading_I = 30;
    356                 mLoading   = true;
    357                 start = time ( NULL );
    358         }
    359 #elif macos
    360         if( updateVisFileTime>0 && !Thread_Run) {
    361                 char* argtosend = (char*)inputVisFileFromCard.c_str();
    362                 if (pthread_create (&Thread_H, NULL, DownLoadFile, (void*)argtosend) < 0) {
    363                    printf("pthread_create error for Thread_H\n");
    364                    exit (1);
    365                 }               
    366                 Thread_Run=true;
    367         }
    368 
    369         static time_t upstart = time (NULL );
    370         time_t upstop = time( NULL );
    371         if(upstop - upstart > updateVisFileTime && Thread_Run) {
    372                 (void)pthread_join (Thread_H, NULL);
    373 
    374                 Thread_Run=false;
    375                 glutDisplayFunc (Loading);
    376                 glutIdleFunc    (Loading);
    377 
    378                 mLoading_I = 30;
    379                 mLoading   = true;
    380                 start = time ( NULL );
    381         }
    382 #else   
     354/*
     355#ifdef windows       
    383356        if( updateVisFileTime>0 && !Thread_Run) {
    384357                char* argtosend = (char*)inputVisFileFromCard.c_str();
     
    408381                upstart = time (NULL );
    409382        }
     383#else
     384        if( updateVisFileTime>0 && !Thread_Run) {
     385                char* argtosend = (char*)inputVisFileFromCard.c_str();
     386                if (pthread_create (&Thread_H, NULL, DownLoadFile, (void*)argtosend) < 0) {
     387                   printf("pthread_create error for Thread_H\n");
     388                   exit (1);
     389                }               
     390                Thread_Run=true;
     391        }
     392
     393        static time_t upstart = time (NULL );
     394        time_t upstop = time( NULL );
     395        if(upstop - upstart > updateVisFileTime && Thread_Run) {
     396                (void)pthread_join (Thread_H, NULL);
     397
     398                Thread_Run=false;
     399                glutDisplayFunc (Loading);
     400                glutIdleFunc    (Loading);
     401
     402                mLoading_I = 30;
     403                mLoading   = true;
     404                start = time ( NULL );
     405        }
     406
    410407#endif
    411 
     408*/
    412409
    413410}
     
    424421                        break;
    425422                case 13 :{                     
    426                         char temp[255]; sprintf(temp,"screenshot%02i.%s",SCREENSHOT,SCREENSHOT_FORMAT);                 
     423                        char temp[255]; sprintf(temp,"%s%02i.%s",ScreenShotName,SCREENSHOT,SCREENSHOT_FORMAT);                 
    427424                        SaveScreenshot(temp,WINDOW_WIDTH,WINDOW_HEIGHT, displayForScreenShot );                 
    428425                        SCREENSHOT++;
     
    439436                case 'r' :
    440437        case 'R' :
    441             LoadCard("config.txt");
     438            LoadCard(inputConfig.c_str());
    442439/*                      geom->updateGeomToDisplay(Card);
    443440                        events->prim->setDisplay(0);
     
    586583                        }
    587584                        break;
     585
     586                case GLUT_KEY_PAGE_UP :
     587                        events->NextFile();
     588                        event = events->GoToEvent(0);
     589                        break;
     590                case GLUT_KEY_PAGE_DOWN :
     591                        events->PreviousFile();
     592                        event = events->GoToEvent(0);
     593                        break;
     594
    588595                case GLUT_KEY_HOME :
    589596                        if(ViewMain->Type_==VIEW3D)     ViewMain->cam_->Reset();                       
     
    681688        ViewMain->Display_Begin();
    682689
    683         GLuint buff[256] = {0};
     690        GLuint buff[1024] = {0};
    684691        GLint hits, view[4];
    685692
    686         glSelectBuffer(256, buff);
     693        glSelectBuffer(1024, buff);
    687694        glGetIntegerv(GL_VIEWPORT, view);
    688695        glRenderMode(GL_SELECT);
     
    693700        glPushMatrix();
    694701                glLoadIdentity();
    695                 gluPickMatrix(x-2, y-2, 4.0, 4.0, view);                       
     702                gluPickMatrix(x-4, y-4, 8.0, 8.0, view);                       
    696703                ViewMain->ProjectionMatrix();
    697704                glMatrixMode(GL_MODELVIEW);
     
    723730        for (i = 0; (int)i < hits; i++) {
    724731                unsigned int tmp = names[i * 4 + 3];
    725                 //printf("--> %i > %i\n",i,tmp);               
     732                //printf("--> %i/%i > %i\n",i,hits,tmp);               
    726733                if(i == NearestHit && tmp!=0){                         
    727734                        if(tmp>1000000){
     
    734741 }
    735742
    736 void LoadCard(const char* inputCard ) {
     743void LoadCard(const char* inputCard ){
    737744        if(Card)delete Card;
    738         Card = new FROG_ReadCards(inputCard);
    739        
     745        Card = new FROG_ReadCards(AbsolutePath.c_str(),inputCard);
     746               
    740747        Card->GetInt  (&updateVisFileTime   , "updateVisFileTime");     
    741748
     
    745752
    746753        Card->GetChar (SCREENSHOT_FORMAT,256, "Screenshot_Format");
     754        Card->GetChar (ScreenShotName,1024  , "Screenshot_Name");
    747755
    748756        Card->GetColor(BackGround_Color     , "BackGround_Color");
     
    778786        }
    779787        if(!mAutomaticShooter){                         
    780                 if(eventTime>0)glutTimerFunc(1+eventTime*1000,AutomaticEventChanging, 0);       
     788                if(eventTime>=0)glutTimerFunc(1+eventTime*1000,AutomaticEventChanging, 0);     
    781789        }else{         
    782790                if(mAutomaticShooter_LastEvent == events->Current_Event){
     
    788796
    789797        EventI++;
    790         if(event && events)printf("%8u | Run %4i Event %4i | Event %4i in File Containing %4i Events\n",EventI,event->NRun_,event->NEvent_,events->Current_Event, (int)events->NumberOfEvents()-1);
     798        if(event && events)printf("%8u | Run %4i Event %4i | Event %4i in File Containing %4i Events\n",EventI,event->NRun_,event->NEvent_,events->Current_Event, (int)events->NumberOfEvents());
    791799}
    792800
     
    794802int main (int argc, char *argv[])
    795803{       
    796         #ifdef linux
    797         #elif macos
    798 
    799     #else
    800                 string ExePath = string(argv[0]);
    801                 unsigned int n = ExePath.rfind("frog");
    802                 ExePath = ExePath.substr(0,n);
    803 
    804                 USES_CONVERSION;
    805                 if(SetCurrentDirectory(A2W(ExePath.c_str()))==0){
    806                         printf("Was not able to change directory to %s\n",ExePath.c_str());
    807                 }
    808     #endif
     804        string ExePath = string(argv[0]);
     805        unsigned int n = ExePath.rfind("frog");
     806        AbsolutePath = ExePath.substr(0,n);
    809807
    810808       
     
    821819                if(      strcmp(LowCase,"-shooter"                               )==0){SHOOTER          = true;
    822820                }else if(strcmp(LowCase,"-s"                                     )==0){SCREENSAVER      = true;
    823                 }else if(len>=4 && strcmp(LowCase+len-4,".vis"   )==0){inputVisFileFromCard = string(argv[i]);
    824                 }else if(len>=7 && strcmp(LowCase+len-7,".vis.gz")==0){inputVisFileFromCard = string(argv[i]);
     821                }else if(strcmp(LowCase,"-v"                                     )==0){
     822                        printf("Fast and Realistic OpenGl Event Display : FROG\n");
     823                        printf("Version      : %6.3f of %s\n",FROG_VERSION,__DATE__);
     824                        printf("Authors List : \n");
     825                        printf("%s\n",FROG_AUTHORLIST);
     826                        exit(0);
     827                }else if(strcmp(LowCase,"-c"                                     )==0 && i+1<argc){
     828                        i++;    inputConfig = string(argv[i]);
     829                }else if(len>=4 && strcmp(LowCase+len-4,".vis"   )==0){inputVisFileFromCommand.push_back(string(argv[i]));
     830                }else if(len>=7 && strcmp(LowCase+len-7,".vis.gz")==0){inputVisFileFromCommand.push_back(string(argv[i]));
    825831                }else{
    826832                        printf("\n");
    827                         printf("######################################################################\n");
    828                         printf("#                 http://projects.hepforge.org/frog/                 #\n");
    829                         printf("#   Please have a look at the website for latest versions and news   #\n");
    830                         printf("# Also register to the Frog mailing list if you are not a member yet #\n");                     
    831                         printf("######################################################################\n");
    832                         printf("#                             HELP SCREEN                            #\n");
    833                         printf("######################################################################\n");
    834                         printf("#  Supported Commands are :                                          #\n");
    835                         printf("#  filename.vis        --> open the file : filename.vis              #\n");
    836                         printf("#  filename.vis.gz     --> open the file : filename.vis.gz           #\n");
    837                         printf("#  -help               --> Print this screen                         #\n");
    838                         printf("#  -s                  --> ScreenSaver Mode                          #\n");
    839                         printf("#  -shooter            --> Scan events, make a screenshot and exit   #\n");
    840                         printf("######################################################################\n");
    841                         printf("\n");
     833                        printf("#######################################################################\n");
     834                        printf("#                  http://projects.hepforge.org/frog/                 #\n");
     835                        printf("#   Please have a look at the website for latest versions and news    #\n");
     836                        printf("# Also register to the Frog mailing list if you are not a member yet  #\n");                   
     837                        printf("#######################################################################\n");
     838                        printf("#                             HELP SCREEN                             #\n");
     839                        printf("#######################################################################\n");
     840                        printf("#  Supported Commands are :                                           #\n");
     841                        printf("#  filename.vis        --> open the file : filename.vis               #\n");
     842                        printf("#  filename.vis.gz     --> open the file : filename.vis.gz            #\n");
     843                        printf("#  -help               --> Print this screen                          #\n");
     844                        printf("#  -v                  --> Print Version and Other Info               #\n");
     845                        printf("#  -s                  --> ScreenSaver Mode                           #\n");
     846                        printf("#  -c <config.txt>     --> Specify the Frog Configuration Card to use #\n");
     847                        printf("#  -shooter            --> Scan events, make a screenshot and exit    #\n");
     848                        printf("#######################################################################\n");
     849                        printf("\n");                   
    842850                        exit(0);
    843851                }
     
    854862
    855863        // Charge le logo en mémoire
    856         LoadTexture((unsigned int*)&LogoTexture     ,"Resources/Frog_Logo.png");
    857         LoadTexture((unsigned int*)&LogoTxtTexture  ,"Resources/Frog_LogoTxt.png");
     864        LoadTexture((unsigned int*)&LogoTexture     ,FROG_PATH::GetGlobalPath("Resources/Frog_Logo.png"   ,AbsolutePath.c_str()).c_str());
     865        LoadTexture((unsigned int*)&LogoTxtTexture  ,FROG_PATH::GetGlobalPath("Resources/Frog_LogoTxt.png",AbsolutePath.c_str()).c_str());
    858866
    859867        // initialisation des fonctions callback appelées par glut
     
    864872        glutIdleFunc    (Loading);
    865873
    866         // here are the new entries
    867         glutKeyboardFunc (processNormalKeys);
    868         glutSpecialFunc  (processSpecialKeys);
    869  
    870         glutMouseFunc(processMouse);
    871         glutMotionFunc(processMotion);
    872         if(SCREENSAVER){
    873                 eventTime = 20;
    874                 glutPassiveMotionFunc(processPassiveMotion);           
    875                 glutFullScreen();
    876         }
    877874       
    878875        // initialisation of GLEW (OpenGL Extension Wrangler Library)
  • trunk/Utilities/FROG/main.h

    r95 r100  
    77#define _MAIN_H__
    88
    9 #define FROG_VERSION 1.105
     9#define FROG_VERSION 1.106
    1010#define FROG_AUTHORLIST "Loic.Quertenmont@cern.ch\nVincent.Roberfroid@cern.ch"
    1111
     
    8989GLuint LogoTxtTexture;
    9090
     91char ScreenShotName[1024] = {"screenshot"};
     92std::string AbsolutePath;
     93std::string inputConfig = "config.txt";
    9194std::string inputVisFile;
    9295std::string inputVisFileFromCard;
     96std::vector<string> inputVisFileFromCommand;
    9397std::vector<std::string> inputGeom;
    9498
     
    151155void displayForScreenShot();
    152156void displaytext();
     157void processNormalKeys(unsigned char key, int x, int y);
     158void processSpecialKeys(int key, int x, int y) ;
     159void processMouse(int button, int state, int x, int y);
     160void processMotion(int x, int y);
     161void processPassiveMotion(int x, int y);
    153162
    154163void LoadCard(const char* inputCard );
     
    161170void updateEventsFile();
    162171
    163 
    164172#endif
    165173
  • trunk/Utilities/Fastjet/plugins/CDFCones/CDFJetCluPlugin.cc

    r11 r100  
    11//STARTHEADER
    2 // $Id: CDFJetCluPlugin.cc,v 1.1 2008-11-06 14:32:10 ovyn Exp $
     2// $Id: CDFJetCluPlugin.cc,v 1.2 2008-12-18 13:38:29 ovyn Exp $
    33//
    44// Copyright (c) 2005-2006, Matteo Cacciari and Gavin Salam
     
    7272    LorentzVector fourvect(particle.px(), particle.py(),
    7373                           particle.pz(), particle.E());
     74//std::cout<<"avant la reconstruction "<<particle.eta()<<std::endl;
     75    //PhysicsTower tower(fourvect);
    7476    PhysicsTower tower(fourvect);
     77
     78std::cout<<"apres la reconstruction "<<tower.eta()<<std::endl;
     79//std::cout<<"apres la reconstruction ieta "<<tower.iEta()<<std::endl;
     80
     81
    7582    // add tracking information for later
    7683    tower.fjindex = i;
  • trunk/Utilities/Fastjet/plugins/CDFCones/interface/CalTower.hh

    r42 r100  
    77
    88#include <cmath>
     9#include <iostream>
    910
    1011#ifndef M_PI
     
    1415const double pi = acos(-1);
    1516
    16 /*
    17  // CDF data : 22 towers. step=2.7° at the beginning, and after, it changes
    18 const unsigned int ntower = 22;
    19 const double TOWER_THETA[ntower+1] = {3.000,  5.700,  8.400, 11.100, 13.800, 16.500, 19.200, 21.900, 24.600, 27.300, 30.000,// step=2.7°
    20           33.524,  36.822, 40.261, 43.614, 47.436, 51.790, 56.735, 62.310, 68.516, 75.297, 82.526, 90.000 };
     17
     18/* // CDF data : 22 towers. step=2.7° at the beginning, and after, it changes
     19const unsigned int ntower = 0;
     20const double TOWER_THETA[ntower+1] = {0},// step=2.7°
     21//const double TOWER_THETA[ntower+1] = {3.000,  5.700,  8.400, 11.100, 13.800, 16.500, 19.200, 21.900, 24.600, 27.300, 30.000,// step=2.7°
     22//          33.524,  36.822, 40.261, 43.614, 47.436, 51.790, 56.735, 62.310, 68.516, 75.297, 82.526, 90.000 };
    2123const double tower_eta_edges[ntower+1] = {
    2224    0.0,   0.130817437415,   0.259479460739,   0.384075299436,   0.503273260393,   0.616250691646,   0.72264587494,   0.822472442947,   
     
    2931*/
    3032
     33
    3134// CMS data
    3235const unsigned int ntower = 40;
     36//const double tower_eta_edges[ntower+1] = {0}; // list of the edges of each tower, in eta, for eta>0, assuming a symmetric detector in eta<0
    3337const double tower_eta_edges[ntower+1] = { // list of the edges of each tower, in eta, for eta>0, assuming a symmetric detector in eta<0
    3438    0., // lower limit of the most central tower
     
    3943    5.000}; // higher limit of the most forward tower
    4044
     45//const double tower_dphi[ntower] = {}; // list of the tower size in phi (in degrees)
    4146const double tower_dphi[ntower] = { // list of the tower size in phi (in degrees)
    4247     5, 5, 5, 5, 5,  5, 5, 5, 5, 5,  5, 5, 5, 5, 5,  5, 5, 5, 5, 10,
  • trunk/Utilities/Fastjet/plugins/CDFCones/src/JetCluAlgorithm.cc

    r11 r100  
     1#include "../interface/CalTower.hh"
    12#include "../interface/JetCluAlgorithm.hh"
    23#include "../interface/ClusterComparisons.hh"
     
    45#include <algorithm>
    56#include <cmath>
    6 
    7 void JetCluAlgorithm::makeSeedTowers(std::vector<PhysicsTower>& towers, std::vector<Cluster>& seedTowers)
     7#include <iostream>
     8
     9using namespace std;
     10/*void JetCluAlgorithm::makeSeedTowers(std::vector<PhysicsTower>& towers, std::vector<Cluster>& seedTowers)
    811{
    912  for(int iEta = 4; iEta < 48; iEta++){
     
    2225  }
    2326  sort(seedTowers.begin(),seedTowers.end(),ClusterCentroidEtGreater());
    24 }
     27}*/
     28
     29void JetCluAlgorithm::makeSeedTowers(std::vector<PhysicsTower>& towers, std::vector<Cluster>& seedTowers)
     30{
     31  for(int iEta = 0; iEta < 2*ntower; iEta++){
     32
     33    int myphiindex = (iEta<ntower) ? iEta : iEta-ntower;
     34    int nphi =  (int) 360/tower_dphi[myphiindex]; // number of phi segments for this eta
     35    for(int iPhi = 0; iPhi < nphi; iPhi++){
     36      Cluster seed;
     37      for(std::vector<PhysicsTower>::iterator towerIter = towers.begin(); towerIter != towers.end(); towerIter++)
     38        if(towerIter->iEta() == iEta && towerIter->iPhi() == iPhi ) {
     39          seed.addTower(*towerIter);
     40        }
     41      if(seed.centroid.Et > _seedThreshold) {
     42        seedTowers.push_back(seed);
     43      }
     44    }
     45  }
     46  sort(seedTowers.begin(),seedTowers.end(),ClusterCentroidEtGreater());
     47}
     48
    2549
    2650void JetCluAlgorithm::buildPreClusters(std::vector<Cluster>& seedTowers, std::vector<PhysicsTower>& towers,
     
    4064        int iEtaSeedTower = seedTowerIter->towerList.begin()->iEta();
    4165        int iPhiSeedTower = seedTowerIter->towerList.begin()->iPhi();
    42         if(iEtaSeedTower >= 8 && iEtaSeedTower < 14 || iEtaSeedTower >= 38 && iEtaSeedTower < 44)
    43           iPhiSeedTower = iPhiSeedTower/2;
     66//      if(iEtaSeedTower >= 8 && iEtaSeedTower < 14 || iEtaSeedTower >= 38 && iEtaSeedTower < 44)
     67//        iPhiSeedTower = iPhiSeedTower/2;
    4468        for(std::vector<PhysicsTower>::iterator preClusterTowerIter = preClusterIter->towerList.begin();
    4569            preClusterTowerIter != preClusterIter->towerList.end() && !seedTowerAddedToPreCluster;
     
    4771          int iEtaPreClusterTower = preClusterTowerIter->iEta();
    4872          int iPhiPreClusterTower = preClusterTowerIter->iPhi();
    49           if(iEtaPreClusterTower >= 8 && iEtaPreClusterTower < 14 || iEtaPreClusterTower >= 38 && iEtaPreClusterTower < 44)
    50             iPhiPreClusterTower = iPhiPreClusterTower/2;
     73//        if(iEtaPreClusterTower >= 8 && iEtaPreClusterTower < 14 || iEtaPreClusterTower >= 38 && iEtaPreClusterTower < 44)
     74//          iPhiPreClusterTower = iPhiPreClusterTower/2;
    5175          int dIEta = abs(iEtaSeedTower - iEtaPreClusterTower);
    5276          int dIPhi = abs(iPhiSeedTower - iPhiPreClusterTower);
    53           if(dIPhi > 12)
    54             dIPhi = 24 - dIPhi;
     77//        if(dIPhi > 12)
     78//          dIPhi = 24 - dIPhi;
    5579          int adj = dIPhi*dIPhi + dIEta*dIEta;
    5680          if(adj <= _adjacencyCut){
  • trunk/interface/BFieldProp.h

    r62 r100  
    1616
    1717#include "interface/SmearUtil.h"
     18
    1819#include "Utilities/ExRootAnalysis/interface/BlockClasses.h"
    1920#include "Utilities/ExRootAnalysis/interface/TSimpleArray.h"
     
    2122using namespace std;
    2223
    23 class TrackPropagation : public RESOLution{
     24class TrackPropagation {
    2425
    2526 public:
    2627  // Constructor
    27     TrackPropagation();
     28    TrackPropagation(string DetDatacard);
    2829 
    2930    void Propagation(const TRootGenParticle *Part,TLorentzVector &genMomentum);
     
    3132    int MAXITERATION;
    3233    int MINSEGLENGTH;
    33  
     34
     35 private:
     36
     37   RESOLution *DET; 
    3438};
    3539 
  • trunk/interface/JetUtils.h

    r54 r100  
    5656using namespace std;
    5757
    58 class JetsUtil: public RESOLution
     58class JetsUtil
    5959{
    6060 public:
    6161  /// Constructor
    62   JetsUtil();
     62  JetsUtil(const string DetDatacard);
    6363
    6464
     
    6868  vector<fastjet::PseudoJet> inclusive_jets;
    6969  vector<fastjet::PseudoJet> sorted_jets;
    70   vector<fastjet::PseudoJet> RunJets(const vector<fastjet::PseudoJet> & input_particles);
     70  vector<fastjet::PseudoJet> RunJets(const vector<fastjet::PseudoJet>& input_particles);
    7171 
    7272  void RunJetBtagging(ExRootTreeWriter *treeWriter, ExRootTreeBranch *branchJet,const vector<fastjet::PseudoJet> & sorted_jets,const TSimpleArray<TRootGenParticle> & NFCentralQ);
     
    7474  void RunTauJets(ExRootTreeWriter *treeWriter, ExRootTreeBranch *branchTauJet,const vector<fastjet::PseudoJet> & sorted_jets,const vector<PhysicsTower> & towers, const vector<TLorentzVector> & TrackCentral);
    7575
     76 private:
     77
     78  RESOLution *DET;
    7679};
    7780
  • trunk/interface/VeryForward.h

    r54 r100  
    3535using namespace std;
    3636
    37 class VeryForward : public RESOLution{
     37class VeryForward {
    3838
    3939 public:
    4040  /// Constructor
    41   VeryForward();
     41  VeryForward(string DetDatacard);
    4242
    4343  void ZDC(ExRootTreeWriter *treeWriter,ExRootTreeBranch *branchZDC,TRootGenParticle *particle);
     
    5050 H_BeamLine* beamline2;
    5151
     52 private:
     53 
     54 RESOLution *DET;
     55
    5256};
    5357#endif
  • trunk/paper/notes.tex

    r99 r100  
    1 \documentclass[a4paper,11pt,oneside,twocolumn]{article}
     1\documentclass[a4paper,11pt,oneside,onecolumn]{article}
    22\usepackage[english]{babel}
    33\usepackage[ansinew]{inputenc}
     
    1111\usepackage{latexsym}
    1212\usepackage{array}
     13\usepackage{multicol}
    1314
    1415\usepackage{fancyhdr}
     
    1819\usepackage{ifpdf}
    1920\usepackage{cite}
     21
     22\newcommand{\dollar}{\$}
    2023
    2124\ifpdf
     
    3942\date{}
    4043
    41 
    42 % The \textsc{Delphes} software provides a framework for fast simulation of particle interactions in a generic high-energy physics collider detector containing a tracking system, electromagnetic and hadronic calorimeters, and a muon system. It is an object-oriented system writen using the C++ programming language. Using input files originating from a Monte-Carlo event generator such as \textsc{pythia} and \textsc{herwig}, \textsc{Delphes} creates ``high-level" analysis objects.\\
    43 %
    4444\begin{document}
    4545
    4646
    47 \twocolumn[
    4847\maketitle
    49 % \begin{@twocolumnfalse}
    50     \begin{onecolabstract}
     48
    5149Knowing whether theoretical predictions are visible and measurable in a high energy experiment is always delicate, due to the
    5250complexity of the related detectors, data acquisition chain and software. We introduce here a new framework, \textsc{Delphes}, for fast simulation of
     
    5755An overview of \textsc{Delphes} is given as well as a few use-cases for illustration.
    5856\vspace{1cm}
    59     \end{onecolabstract}
    60 % \end{@twocolumnfalse}
    61 ]
     57
    6258\saythanks
    63 
    6459
    6560\section{Introduction}
     
    9186\begin{tabular}[!h]{lll}
    9287\hline
    93 Sub-system   & Card flag & $|\eta|^{max}$\\\hline
    94 Tracking     & {\verb MAX_TRACKER } & 2.5\\
    95 Calorimeters & {\verb MAX_CALO_CEN } & 3.0\\
    96              & {\verb MAX_CALO_FWD } & 5.0\\
    97 Muon         & {\verb MAX_MU } & 2.4\\\hline
     88Tracking     & {\verb CEN_max_tracker } & 2.5\\
     89Calorimeters & {\verb CEN_max_calo_cen } & 3.0\\
     90             & {\verb CEN_max_calo_fwd } & 5.0\\
     91Muon         & {\verb CEN_max_mu } & 2.4\\\hline
    9892\end{tabular}
    9993\label{tab:defEta}
     
    187181\subsection{Tau identification}
    188182
    189 \begin{wrapfigure}{l}{0.5\columnwidth}
    190 \includegraphics[width=0.5\columnwidth]{Tau.eps}
     183\begin{wrapfigure}{l}{0.3\columnwidth}
     184\includegraphics[width=0.3\columnwidth]{Tau.eps}
    191185\caption{\small{detectorAng.eps}}
    192186\label{h_WW_ss_cut1}
     
    197191\subsubsection*{Electromagnetic collimation}
    198192
    199 To use the narrowness of the $\tau$-jet, the \textit{electromagnetic collimation} ($C_{\tau}^{em}$) is defined as the sum of the energy in a cone with $\Delta R = ${\verb TAU_CONE_ENERGIE } around the jet axis divided by the energy of the reconstructed jet. The energy in the small cone is calculated using the towers objects. To be taken into account a calorimeter tower should have a transverse energy above a given threshold {\verb M_SEEDTHRESHOLD}. A large fraction of the jet energy, denominated here with {\verb TAU_EM_COLLIMATION } is expected in this small cone. The quantity is represented in figure \ref{fig:tau1} for the default values (see table \ref{tab:tauRef})
     193To use the narrowness of the $\tau$-jet, the \textit{electromagnetic collimation} ($C_{\tau}^{em}$) is defined as the sum of the energy in a cone with $\Delta R = ${\verb TAU_energy_scone } around the jet axis divided by the energy of the reconstructed jet. The energy in the small cone is calculated using the towers objects. To be taken into account a calorimeter tower should have a transverse energy above a given threshold {\verb JET_M_seed }. A large fraction of the jet energy, denominated here with {\verb TAU_energy_frac } is expected in this small cone. The quantity is represented in figure \ref{fig:tau1} for the default values (see table \ref{tab:tauRef}).
    200194
    201195\begin{figure}[!h]
    202196\begin{center}
    203 \includegraphics[width=0.8\columnwidth]{figures/Taujets1.eps}
     197%\includegraphics[width=0.8\columnwidth]{figures/Taujets1.eps}
    204198\caption{\small{}}
    205199\label{fig:tau1}
     
    211205\begin{figure}[!h]
    212206\begin{center}
    213 \includegraphics[width=0.8\columnwidth]{figures/Taujets2.eps}
     207%\includegraphics[width=0.8\columnwidth]{figures/Taujets2.eps}
    214208\caption{\small{}}
    215209\label{h_WW_ss_cut1}
     
    217211\end{figure}
    218212
    219 The tracking isolation for the $\tau$ identification requires that the number of tracks associated to a particle with $p_T >$ {\verb PT_TRACK_TAU } is one and only one in a cone with $\Delta R =$ {\verb TAU_CONE_TRACKS }. This cone should be entirely included in the tracker to be taken into account. This procedure selects taus decaying hadronically with a typical efficiency of $60\%$. Moreover, the minimal $p_T$ of the $\tau$-jet is required to be {\verb TAUJET_pt }(default value: 10~GeV).\\
     213The tracking isolation for the $\tau$ identification requires that the number of tracks associated to a particle with $p_T >$ {\verb TAU_track_pt } is one and only one in a cone with $\Delta R =$ {\verb TAU_track_scone }. This cone should be entirely included in the tracker to be taken into account. This procedure selects taus decaying hadronically with a typical efficiency of $60\%$. Moreover, the minimal $p_T$ of the $\tau$-jet is required to be {\verb TAUJET_pt }(default value: 10~GeV).\\
    220214
    221215\begin{table}[!h]
     
    224218\hline
    225219Tau definition  & Card flag & Value\\\hline
    226 $\Delta R^{for~em}$     & {\verb TAU_CONE_ENERGIE } & 0.15\\
    227 min $E_{T}^{tower}$     & {\verb M_SEEDTHRESHOLD }  & 1.0~GeV\\
    228 $C_{\tau}^{em}$         & {\verb TAU_EM_COLLIMATION } & 0.95.\\
    229 $\Delta R^{for~tracks}$ & {\verb TAU_CONE_TRACKS } & 0.4\\
    230 min $p_T^{tracks}$      & {\verb PT_TRACK_TAU } & 2 GeV\\\hline
     220$\Delta R^{for~em}$     & {\verb TAU_energy_scone } & 0.15\\
     221min $E_{T}^{tower}$     & {\verb JET_M_seed }  & 1.0~GeV\\
     222$C_{\tau}^{em}$         & {\verb TAU_energy_frac } & 0.95.\\
     223$\Delta R^{for~tracks}$ & {\verb TAU_track_scone } & 0.4\\
     224min $p_T^{tracks}$      & {\verb PTAU_track_pt } & 2 GeV\\\hline
    231225\end{tabular}
    232226\label{tab:tauRef}
     
    244238\section{Conclusion and perspectives}
    245239
     240
     241\newpage
     242
     243\appendix
     244
     245\section{User manual}
     246
     247The available code is a tar file which comes with everything you need to run the DELPHES package. Nevertheless in order to visualise the events with the FROG program, you need to install libraries as explained in {\it href="http://projects.hepforge.org/frog/}
     248
     249\subsection{Getting started}
     250
     251In order to run DELPHES on your system, first download is sources and compile it:\\
     252\begin{quote}
     253\begin{verbatim}
     254me@mylaptop:~$ wget http://www.fynu.ucl.ac.be/users/s.ovyn/files/Delphes_V_*.*.tar
     255me@mylaptop:~$ tar -xvf Delphes_V_*.*. tar 
     256me@mylaptop:~$ cd Delphes_V_*.*
     257me@mylaptop:~$ ./genMakefile.tcl >; Makefile
     258me@mylaptop:~$ make
     259\end{verbatim}
     260\end{quote}   
     261
     262
     263\subsection{Running Delphes on your events}
     264
     265\subsubsection{Setting the run configuration}
     266
     267The program is driven by two datacards (default cards are data/DataCardDet.dat and data/trigger.dat) which allow a large spectrum of running conditions.
     268{\b The run card }\\
     269
     270Contains all needed information to run DELPHES
     271\begin{itemize}
     272 
     273\item The following parameters are available: detector parameters, including calorimeter and tracking coverage and resolution, transverse energy thresholds allowed for reconstructed objects, jet algorithm to use as well as jet parameters.
     274 
     275\item Four flags, {\verb FLAG_bfield }, {\verb FLAG_vfd }, {\verb FLAG_trigger } and {\verb FLAG_frog } should be assigned to decide if the magnetic field propagation, the very forward detectors acceptance, the trigger selection and the preparation for FROG display respectively are running by DELPHES.
     276 
     277\item An example (the default detector card) can be found in {\verb files/DataCardDet.dat }
     278\end{itemize}
     279
     280{\b The trigger card }\\
     281Contains the definition of all trigger bits
     282\begin{itemize}
     283 
     284\item Cuts can be applied on the transverse momentum of electrons, muons, jets, tau-jets, photons and transverse missing energy.
     285\item Be careful that the following structured should be used:
     286  \begin{enumerate}
     287  \item One trigger bit per line, the first entry in the line is the name of the trigger bit
     288  \item If the trigger bit uses the presence of multiple identical objects, their transverse momentum thresholds must be defined in decreasing order
     289  \item The different object requirements must be separated by a {\verb && } flag
     290  \item Example of a trigger bit line:\\
     291    \begin{quote}
     292\begin{verbatim}       
     293DoubleElec  >> ELEC1_PT: '20' && ELEC2_PT: '10'   
     294\end{verbatim}
     295    \end{quote}
     296  \end{enumerate}
     297\item An example (the default trigger card) can be found <a href="files/trigger.dat" title="Home">here</a></li>
     298\end{itemize}
     299
     300\subsubsection{Running the code}
     301Create the above cards (data/mydetector.dat and data/mytrigger.dat)
     302Create a text file containing the list of input files that will be used by DELPHES (with extension *.lhe, *.root or *.hep)
     303To run the code, type the following
     304\begin{quote}
     305\begin{verbatim}
     306me@mylaptop:~$ ./Delphes inputlist.list OutputRootFileName.root data/mydetector.dat data/mytrigger.dat
     307\end{verbatim}
     308\end{quote}
     309
     310
     311\subsection{Running an analysis on your Delphes events}
     312
     313Two examples of codes running on the output root file of DELPHES are coming with the package
     314\begin{enumerate}
     315\item The {\verb Examples/Analysis_Ex.cpp } code shows how to access the available reconstructed objects and the trigger information The two following arguments are required: a text file containing the input DELPHES root files to run, and the name of the output root file. To run the code:
     316  \begin{quote}
     317\begin{verbatim}
     318./Analysis_Ex input_file.list output_file.root
     319\end{verbatim}
     320  \end{quote}
     321 
     322\item The {\verb Examples/Trigger_Only.cpp } code permits to run the trigger selection separately from the general detector simulation on output DELPHES root files. An input DELPHES root file is mandatory as argument. The new tree containing the trigger information will be added in these file. The trigger datacard is also necessary. To run the code:
     323  \begin{quote}
     324\begin{verbatim}
     325./Trigger_Only input_file.root data/trigger.dat
     326\end{verbatim}
     327  \end{quote}
     328 
     329\end{enumerate}
     330
     331\subsection{Running the FROG event display}
     332
     333\begin{itemize}
     334\item If the { \verb FLAG_frog } was switched on, two files were created during the run of DELPHES: {\verb DelphesToFrog.vis } and {\verb DelphesToFrog.geom }. They contain all the needed information to run frog.
     335\item To display the events and the geometry, you first need to compile FROG. Go to the {\verb Utilities/FROG } and type {\verb make }.
     336\item Go back into the main directory and type {\verb ./Utilities/FROG/frog }.
     337\end{itemize}
     338
    246339\begin{thebibliography}{99}
     340 
    247341\bibitem{Delphes} \textsc{Delphes}, hepforge:
    248342\end{thebibliography}
    249 \appendix
     343
    250344Attention : in SmearUtil::NumTracks, the function arguments 'Eta' and 'Phi' have been switched. Previously, 'Phi' was before 'Eta', now 'Eta' comes in front. This is for consistency with the other functions in SmearUtil. Check your routines, when using NumTracks !
    251345
  • trunk/src/BFieldProp.cc

    r94 r100  
    2525//------------------------------------------------------------------------------
    2626
    27 TrackPropagation::TrackPropagation() {
     27TrackPropagation::TrackPropagation(string DetDatacard) {
    2828
     29 DET = new RESOLution();
     30 DET->ReadDataCard(DetDatacard);
    2931 MAXITERATION = 10000;
    3032 MINSEGLENGTH = 70;
     
    4345 
    4446  //out of trackibg coverage?
    45   if(sqrt(Xvertex1*Xvertex1+Yvertex1*Yvertex1) > TRACK_radius){return;}
    46   if(fabs(Zvertex1) > TRACK_length){return;}
     47  if(sqrt(Xvertex1*Xvertex1+Yvertex1*Yvertex1) > DET->TRACK_radius){return;}
     48  if(fabs(Zvertex1) > DET->TRACK_length){return;}
    4749 
    4850  float Px = Part->Px;
     
    6264     double vz = pz/M;
    6365
    64      double Bx = TRACK_bfield_x;
    65      double By = TRACK_bfield_y;
    66      double Bz = TRACK_bfield_z;
     66     double Bx = DET->TRACK_bfield_x;
     67     double By = DET->TRACK_bfield_y;
     68     double Bz = DET->TRACK_bfield_z;
    6769
    6870     double ax =  (q/M)*(Bz*vy - By*vz);
     
    8082     int k = 0;
    8183     
     84     double Radius=DET->TRACK_radius;
     85     double Length=DET->TRACK_length;
     86
    8287     while(k < MAXITERATION){
    8388        k++;
     
    99104        z  += vz*dt;
    100105
    101        if( (x*x+y*y) > TRACK_radius*TRACK_radius ){ x /= (x*x+y*y)/(TRACK_radius*TRACK_radius); y /= (x*x+y*y)/(TRACK_radius*TRACK_radius); break;}
    102        if( fabs(z)>TRACK_length)break;
     106       if( (x*x+y*y) > Radius*Radius ){ x /= (x*x+y*y)/(Radius*Radius); y /= (x*x+y*y)/(Radius*Radius); break;}
     107       if( fabs(z)>Length)break;
    103108
    104109       xold = x;
  • trunk/src/FrogUtil.cc

    r97 r100  
    485485 
    486486  double Rayon_Tracker=50;
    487   double Rayon_Calo = Rayon_Tracker*2;
    488   double Lenght_Tracker=120;
    489   double Lenght_Calo=Lenght_Tracker+Lenght_Tracker/2;
    490   double Lenght_FWCalo=Lenght_Tracker+Lenght_Tracker;
    491  
    492   int NumPhi=10;
     487  double Rayon_Calo = Rayon_Tracker*1.5;
     488  double Rayon_Muon = Rayon_Tracker*2;
     489  double Lenght_Tracker=100;
     490  double Lenght_Calo=Lenght_Tracker+Lenght_Tracker/2.5;
     491  double Lenght_Muon=Lenght_Calo+Lenght_Calo/2.5;
     492  double Lenght_FWCalo=Lenght_Tracker+1.5*Lenght_Tracker;
     493 
     494  int plus=1;
     495  int NumPhi=4;
    493496 
    494497  //************************************************Tracker*************************************************
     
    498501  detector->addDaughter(Tracker);
    499502  unsigned int DetIdCountTracker = 1;
    500   for(double ray=0;ray <= Rayon_Tracker;ray +=5){
     503  for(double ray=0;ray <= Rayon_Tracker;ray +=plus){
     504  //  double ray=Rayon_Tracker;
    501505    double length = ray/tan(EtaToTheta(DET->CEN_max_tracker));
    502506    if(length >= Lenght_Tracker)
    503507      {
    504         FROG_Element_Primitive_Cylinder* tracker = new FROG_Element_Primitive_Cylinder(9100000+DetIdCountTracker*10,ray,0,0,0,0,0,Lenght_Tracker,NumPhi,0);
     508        FROG_Element_Primitive_Cylinder* tracker = new FROG_Element_Primitive_Cylinder(9100000+DetIdCountTracker*10,ray,0,0,0,0,0,Lenght_Tracker,NumPhi,1);
     509//      FROG_Element_Primitive_Cone* tracker = new FROG_Element_Primitive_Cone(9100000+DetIdCountTracker*10,ray,0,0,0,0,0,Lenght_Tracker,NumPhi,1);
    505510        Tracker->addDaughter(tracker);   DetIdCountTracker++;
    506511      }
     
    518523  unsigned int DetIdCountCalo = 1;
    519524 
    520   for(double ray=Rayon_Tracker;ray <= Rayon_Calo ;ray +=5){
     525  for(double ray=Rayon_Tracker;ray <= Rayon_Calo ;ray +=plus){
    521526    double length = ray/tan(EtaToTheta(DET->CEN_max_calo_cen));
    522527    double add;
     
    529534      }
    530535  }
    531   for(double ray=0;ray <= Rayon_Tracker;ray +=5){
     536  for(double ray=0;ray <= Rayon_Tracker;ray +=plus){
    532537    double length = ray/tan(EtaToTheta(DET->CEN_max_calo_cen));
    533538    double add;
     
    552557  double eta_Max=DET->CEN_max_calo_fwd,eta_Min=DET->CEN_max_calo_cen;
    553558 
    554   for(double ray=0;ray <= 50;ray +=5){
     559  for(double ray=0;ray <= 50;ray +=plus){
    555560    double length = ray/tan(EtaToTheta(eta_Max));
    556561    double add;
    557     if(length >= Lenght_FWCalo)add=(Lenght_FWCalo-Lenght_Calo)/2;
    558     else add=(length-Lenght_Calo)/2;
     562    if(length >= Lenght_FWCalo)add=(Lenght_FWCalo-Lenght_Muon)/2;
     563    else add=(length-Lenght_Muon)/2;
    559564   
    560565    if(add > 0 && ray < Lenght_FWCalo*tan(EtaToTheta(eta_Min)))
    561566      {
    562         FROG_Element_Primitive_Cylinder* caloFW1 = new FROG_Element_Primitive_Cylinder(9300000+DetIdCountFwCalo*10,ray,0,0,(Lenght_Calo+add)/2,0,0,add,NumPhi,0);
     567        FROG_Element_Primitive_Cylinder* caloFW1 = new FROG_Element_Primitive_Cylinder(9300000+DetIdCountFwCalo*10,ray,0,0,(Lenght_Muon+add)/2,0,0,add,NumPhi,0);
    563568        FWCALO->addDaughter(caloFW1);   DetIdCountFwCalo++;
    564         FROG_Element_Primitive_Cylinder* caloFW2 = new FROG_Element_Primitive_Cylinder(9300000+DetIdCountFwCalo*10,ray,0,0,-(Lenght_Calo+add)/2,0,0,add,NumPhi,0);
     569        FROG_Element_Primitive_Cylinder* caloFW2 = new FROG_Element_Primitive_Cylinder(9300000+DetIdCountFwCalo*10,ray,0,0,-(Lenght_Muon+add)/2,0,0,add,NumPhi,0);
    565570        FWCALO->addDaughter(caloFW2);   DetIdCountFwCalo++;
    566571      }
    567572  }
     573
     574  //***********************************************Muon chambers********************************************
     575  //********************************************************************************************************
     576  //
     577  FROG_Element_Base_With_DetId_And_Name* MUON = new FROG_Element_Base_With_DetId_And_Name(940000000,"MuonDet");
     578  detector->addDaughter(MUON);
     579  unsigned int DetIdCountMuon = 1;
     580
     581  for(double ray=Rayon_Calo;ray <= Rayon_Muon ;ray +=plus){
     582    double length = ray/tan(EtaToTheta(DET->CEN_max_mu));
     583    double add;
     584    if(length >= Lenght_Muon)add=Lenght_Muon;
     585    else add=ray/tan(EtaToTheta(DET->CEN_max_calo_cen));
     586    if(add > 0)
     587      {
     588        FROG_Element_Primitive_Cylinder* muon = new FROG_Element_Primitive_Cylinder(9400000+DetIdCountMuon*10,ray,0,0,0,0,0,add,NumPhi,0);
     589        MUON->addDaughter(muon);   DetIdCountMuon++;
     590      }
     591  }
     592  for(double ray=0;ray <= Rayon_Calo;ray +=plus){
     593    double length = ray/tan(EtaToTheta(DET->CEN_max_calo_cen));
     594    double add;
     595    if(length >= Lenght_Muon)add=(Lenght_Muon-Lenght_Calo)/2;
     596    else add=(length-Lenght_Calo)/2;
     597    if(add > 0)
     598      {
     599        FROG_Element_Primitive_Cylinder* muonP = new FROG_Element_Primitive_Cylinder(9400000+DetIdCountMuon*10,ray,0,0,(Lenght_Calo+add)/2,0,0,add,NumPhi,0);
     600        MUON->addDaughter(muonP);   DetIdCountMuon++;
     601        FROG_Element_Primitive_Cylinder* muonM = new FROG_Element_Primitive_Cylinder(9400000+DetIdCountMuon*10,ray,0,0,-(Lenght_Calo+add)/2,0,0,add,NumPhi,0);
     602        MUON->addDaughter(muonM);   DetIdCountMuon++;
     603      }
     604  }
     605
     606 
    568607   
    569608  FROG_Geometry* CustomGeom = new FROG_Geometry(prim);
  • trunk/src/JetUtils.cc

    r94 r100  
    1515using namespace std;
    1616
    17 JetsUtil::JetsUtil() {
    18  
    19   switch(JET_jetalgo) {
     17JetsUtil::JetsUtil(const string DetDatacard) {
     18 
     19 DET = new RESOLution();
     20 DET->ReadDataCard(DetDatacard);
     21 
     22  switch(DET->JET_jetalgo) {
    2023  default:
    2124  case 1: {
    22    
    2325    // set up a CDF midpoint jet definition
    2426#ifdef ENABLE_PLUGIN_CDFCONES
    25     plugins = new fastjet::CDFJetCluPlugin(JET_seed,JET_coneradius,JET_C_adjacencycut,JET_C_maxiterations,JET_C_iratch,JET_overlap);
     27    plugins = new fastjet::CDFJetCluPlugin(DET->JET_seed,DET->JET_coneradius,DET->JET_C_adjacencycut,DET->JET_C_maxiterations,DET->JET_C_iratch,DET->JET_overlap);
    2628    jet_def = fastjet::JetDefinition(plugins);
    2729#else
     
    3436    // set up a CDF midpoint jet definition
    3537#ifdef ENABLE_PLUGIN_CDFCONES
    36     plugins = new fastjet::CDFMidPointPlugin (JET_seed,JET_coneradius,JET_M_coneareafraction,JET_M_maxpairsize,JET_M_maxiterations,JET_overlap);
     38    plugins = new fastjet::CDFMidPointPlugin (DET->JET_seed,DET->JET_coneradius,DET->JET_M_coneareafraction,DET->JET_M_maxpairsize,DET->JET_M_maxiterations,DET->JET_overlap);
    3739    jet_def = fastjet::JetDefinition(plugins);
    3840#else
     
    4547    // set up a siscone jet definition
    4648#ifdef ENABLE_PLUGIN_SISCONE
    47     plugins = new fastjet::SISConePlugin (JET_coneradius,JET_overlap,JET_S_npass, JET_S_protojet_ptmin);
     49    plugins = new fastjet::SISConePlugin (DET->JET_coneradius,DET->JET_overlap,DET->JET_S_npass, DET->JET_S_protojet_ptmin);
    4850    jet_def = fastjet::JetDefinition(plugins);
    4951#else
     
    5456   
    5557  case 4: {
    56     jet_def = fastjet::JetDefinition(fastjet::kt_algorithm, JET_coneradius);
     58
     59    jet_def = fastjet::JetDefinition(fastjet::kt_algorithm, DET->JET_coneradius);
    5760  }
    5861    break;
    5962   
    6063  case 5: {
    61     jet_def = fastjet::JetDefinition(fastjet::cambridge_algorithm,JET_coneradius);
     64    jet_def = fastjet::JetDefinition(fastjet::cambridge_algorithm,DET->JET_coneradius);
    6265  }
    6366    break;
    6467   
    6568  case 6: {
    66     jet_def = fastjet::JetDefinition(fastjet::antikt_algorithm,JET_coneradius);
     69    jet_def = fastjet::JetDefinition(fastjet::antikt_algorithm,DET->JET_coneradius);
    6770  }
    6871    break;
     
    7174}
    7275
    73 vector<fastjet::PseudoJet> JetsUtil::RunJets(const vector<fastjet::PseudoJet> & input_particles)
     76vector<fastjet::PseudoJet> JetsUtil::RunJets(const vector<fastjet::PseudoJet>& input_particles)
    7477{
    7578  inclusive_jets.clear();
    7679  sorted_jets.clear();
    77  
    7880  // run the jet clustering with the above jet definition
    7981  if(input_particles.size()!=0)
     
    9698  for (unsigned int i = 0; i < sorted_jets.size(); i++) {
    9799    JET.SetPxPyPzE(sorted_jets[i].px(),sorted_jets[i].py(),sorted_jets[i].pz(),sorted_jets[i].E());
    98     if(JET.Pt() > PTCUT_jet)
     100    if(JET.Pt() > DET->PTCUT_jet)
    99101      {
    100102        elementJet = (TRootJet*) branchJet->NewEntry();
     
    102104        // b-jets
    103105        bool btag=false;
    104         if((fabs(JET.Eta()) < CEN_max_tracker && Btaggedjet(JET, NFCentralQ)))btag=true;
     106        if((fabs(JET.Eta()) < DET->CEN_max_tracker && DET->Btaggedjet(JET, NFCentralQ)))btag=true;
    105107        elementJet->Btag = btag;
    106108      }
     
    116118    JET.SetPxPyPzE(sorted_jets[i].px(),sorted_jets[i].py(),sorted_jets[i].pz(),sorted_jets[i].E());
    117119    // Tau jet identification : 1! track and electromagnetic collimation
    118     if(fabs(JET.Eta()) < (CEN_max_tracker - TAU_track_scone)) {
    119       double Energie_tau_central = EnergySmallCone(towers,JET.Eta(),JET.Phi());
     120    if(fabs(JET.Eta()) < (DET->CEN_max_tracker - DET->TAU_track_scone)) {
     121      double Energie_tau_central = DET->EnergySmallCone(towers,JET.Eta(),JET.Phi());
    120122      if(
    121          ( Energie_tau_central/JET.E() > TAU_energy_frac ) &&
    122          ( NumTracks(TrackCentral,TAU_track_pt,JET.Eta(),JET.Phi()) == 1 ) &&
    123          ( JET.Pt() > PTCUT_taujet)
     123         ( Energie_tau_central/JET.E() > DET->TAU_energy_frac ) &&
     124         ( DET->NumTracks(TrackCentral,DET->TAU_track_pt,JET.Eta(),JET.Phi()) == 1 ) &&
     125         ( JET.Pt() > DET->PTCUT_taujet)
    124126         ) {
    125127        elementTauJet = (TRootTauJet*) branchTauJet->NewEntry();
  • trunk/src/VeryForward.cc

    r94 r100  
    2626//------------------------------------------------------------------------------
    2727
    28 VeryForward::VeryForward() {
    29  
     28VeryForward::VeryForward(string DetDatacard) {
     29 
     30 DET = new RESOLution();
     31 DET->ReadDataCard(DetDatacard);
     32 
    3033  //Initialisation of Hector
    3134  relative_energy = true; // should always be true
     
    6265  TLorentzVector genMomentum;
    6366  // Zero degree calorimeter, for forward neutrons and photons
    64   if (particle->Status ==1 && (pid == pN || pid == pGAMMA ) && eta > VFD_min_zdc ) {
     67  if (particle->Status ==1 && (pid == pN || pid == pGAMMA ) && eta > DET->VFD_min_zdc ) {
    6568    genMomentum.SetPxPyPzE(particle->Px, particle->Py, particle->Pz, particle->E);
    6669    // !!!!!!!!! vérifier que particle->Z est bien en micromÚtres!!!
     
    7578    //double theta = (1E-6)*sqrt( pow(tx,2) + pow(ty,2) );
    7679    //double flight_distance = (DET->ZDC_S - particle->Z*(1E-6))/cos(theta) ; // assumes that Z is in micrometers
    77     double flight_distance = (VFD_s_zdc - particle->Z*(1E-6));
     80    double flight_distance = (DET->VFD_s_zdc - particle->Z*(1E-6));
    7881    // assumes also that the emission angle is so small that 1/(cos theta) = 1
    7982    elementZdc->T = 0*particle->T + flight_distance/speed_of_light; // assumes highly relativistic particles
     
    9598  genMomentum.SetPxPyPzE(particle->Px, particle->Py, particle->Pz, particle->E);
    9699  // if forward proton
    97   if( (pid == pP)  && (particle->Status == 1) &&  (fabs(genMomentum.Eta()) > CEN_max_calo_fwd) )
     100  if( (pid == pP)  && (particle->Status == 1) &&  (fabs(genMomentum.Eta()) > DET->CEN_max_calo_fwd) )
    98101    {
    99102      // !!!!!!!! put here particle->CHARGE and particle->MASS
     
    112115      if(p1.stopped(beamline)) {
    113116        if (p1.getStoppingElement()->getName()=="rp220_1" || p1.getStoppingElement()->getName()=="rp220_2") {
    114           p1.propagate(RP_220_s);
     117          p1.propagate(DET->RP_220_s);
    115118          elementRP220 = (TRootRomanPotHits*) branchRP220->NewEntry();
    116119          elementRP220->X  = (1E-6)*p1.getX();  // [m]
     
    125128         
    126129        } else if (p1.getStoppingElement()->getName()=="rp420_1" || p1.getStoppingElement()->getName()=="rp420_2") {
    127           p1.propagate(RP_420_s);
     130          p1.propagate(DET->RP_420_s);
    128131          elementFP420 = (TRootRomanPotHits*) branchFP420->NewEntry();
    129132          elementFP420->X  = (1E-6)*p1.getX();  // [m]
Note: See TracChangeset for help on using the changeset viewer.