• Main Page
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

/Users/jmonk/Physics/ForIA/ForIA/DataConverter.hh

Go to the documentation of this file.
00001 #ifndef FORIA_DATACONVERTER_HH
00002 #define FORIA_DATACONVERTER_HH
00003 
00004 #include "ForIA/Event.hh"
00005 #include "ForIA/Track.hh"
00006 #include "ForIA/TriggerDecision.hh"
00007 #include "ForIA/TruthParticle.hh"
00008 #include "ForIA/Vertex.hh"
00009 #include "ForIA/L1TriggerBit.hh"
00010 #include "ForIA/L2SpacePoints.hh"
00011 
00012 #include "ForIA/Cluster.hh"
00013 #include "ForIA/Jet.hh"
00014 #include "ForIA/JetKey.hh"
00015 #include "ForIA/TruthJet.hh"
00016 #include "ForIA/EtMiss.hh"
00017 
00018 #include "ForIA/DetectorErrors.hh"
00019 
00020 #include <map>
00021 #include <string>
00022 
00023 namespace ForIA{
00024   
00025   using std::map;
00026   using std::string;
00027   
00028   // macro to ease the declaration of functions for setting member variables of different object types
00029 #define setterFunction(obj,varType,var) void set##var(obj &o, varType x){o.var = x;}
00030   
00031   // To set member bar of object foo we would do
00032   //
00033   //   setVar(foo, bar, 1);
00034   //
00035   // is equivalent to foo.bar = 1;
00036 #define setVar(obj,var,val) set##var(obj, val)
00037   
00038   class DataConverter{
00039     
00040   public:
00041     
00042     virtual ~DataConverter(){};
00043     
00044     virtual void initialise() = 0;
00045     virtual bool nextEvent()  = 0;
00046     virtual void storeEvent() = 0;
00047     
00048     virtual const Event &loadEvent()                                          = 0;
00049     virtual const TrackVector &loadTracks(const Event *evt)                   = 0;
00050     virtual const ClusterVector &loadClusters()                               = 0;
00051     virtual const JetVector &loadJets(const JetKey &jetKey, const Event *evt) = 0;
00052     virtual const TruthJetVector &loadTruthJets()                             = 0;
00053     virtual const TriggerConfiguration &loadTriggerConfiguration()            = 0;
00054     virtual       TriggerDecisionPtr loadTriggerDecision()                    = 0;
00055     virtual const TruthParticleVector &loadTruthParticles()                   = 0;
00056     virtual const VertexVector &loadTruthVertices()                           = 0;
00057     virtual const VertexVector &loadVertices(const Event* evt=0)              = 0;
00058     virtual       L1TriggerBitPtr loadL1Trigger()                             = 0;
00059     virtual       L2SpacePointsConstPtr loadL2SpacePoints()                   = 0;
00060     virtual       EtMissPtr loadEtMiss()                                      = 0;
00061     
00062     virtual       DetectorErrorsConstPtr loadDetectorErrors()                 = 0;
00063     
00064   protected:
00065     
00066     setterFunction(Event, unsigned long, m_runNumber);
00067     setterFunction(Event, unsigned long, m_eventNumber);
00068     setterFunction(Event, unsigned int,  m_lumiBlock);
00069     setterFunction(Event, double,        m_weight);
00070     setterFunction(Event, bool,          m_goodRun);
00071     setterFunction(Event, bool,          m_goodLumiBlock);
00072     
00073     setterFunction(Track, float, m_eta);
00074     setterFunction(Track, float, m_theta);
00075     setterFunction(Track, float, m_phi);
00076     setterFunction(Track, float, m_phi_wrt_bs);
00077     setterFunction(Track, float, m_phi_wrt_pvtx);
00078     setterFunction(Track, float, m_phi_wrt_tv);
00079     setterFunction(Track, float, m_theta_wrt_bs);
00080     setterFunction(Track, float, m_theta_wrt_pvtx);
00081     setterFunction(Track, float, m_theta_wrt_tv);
00082     setterFunction(Track, float, m_PT);
00083     setterFunction(Track, float, m_d0);
00084     setterFunction(Track, float, m_z0);
00085     setterFunction(Track, float, m_d0_wrt_bs);
00086     setterFunction(Track, float, m_d0_wrt_pvtx);
00087     setterFunction(Track, float, m_d0_wrt_tv);
00088     setterFunction(Track, float, m_z0_wrt_bs);
00089     setterFunction(Track, float, m_z0_wrt_pvtx);
00090     setterFunction(Track, float, m_z0_wrt_tv);
00091     setterFunction(Track, float, m_chi2);
00092     setterFunction(Track, int,   m_dof);
00093     setterFunction(Track, int,   m_nPix);
00094     setterFunction(Track, int,   m_nSCT);
00095     setterFunction(Track, int,   m_nTRT);
00096     setterFunction(Track, int,   m_nBLayer);
00097     setterFunction(Track, int,   m_id);
00098     setterFunction(Track, bool,  m_expectBLayer);
00099     setterFunction(Track, bool,  m_isMC);
00100     setterFunction(Track, bool,  m_haveThetaOrigins);
00101     setterFunction(Track, bool,  m_haveTV);
00102     setterFunction(Track, Track::TrackAuthor, m_author);
00103     setterFunction(Track, const Event*, m_event);
00104     
00105     setterFunction(TriggerConfiguration, unsigned int, m_smk);
00106     setterFunction(TriggerConfiguration, unsigned int, m_l1PSK);
00107     setterFunction(TriggerConfiguration, unsigned int, m_hltPSK);
00108     setterFunction(TriggerConfiguration, TriggerConfiguration::Status, m_status);
00109     setterFunction(TriggerConfiguration, TriggerConfiguration::NameIDMap, m_l1Names);
00110     setterFunction(TriggerConfiguration, TriggerConfiguration::NameIDMap, m_hltNames);
00111     setterFunction(TriggerConfiguration, TriggerConfiguration::PrescaleMap, m_hltPrescales);
00112     setterFunction(TriggerConfiguration, TriggerConfiguration::PrescaleMap, m_l1Prescales);
00113     setterFunction(TriggerConfiguration, TriggerConfiguration::LowerChainMap, m_lowerChainNames);
00114     
00115     setterFunction(TriggerDecision, const vector<unsigned int>*, m_ctpBits);
00116     setterFunction(TriggerDecision, const vector<short>*, m_efPassedPhysics);
00117     setterFunction(TriggerDecision, const vector<short>*, m_l2PassedPhysics);
00118     
00119     setterFunction(TruthParticle, int,   m_pdg);
00120     setterFunction(TruthParticle, float, m_charge);
00121     setterFunction(TruthParticle, int,   m_barcode);
00122     setterFunction(TruthParticle, int,   m_status);
00123     setterFunction(TruthParticle, int,   m_motherPdg);
00124     setterFunction(TruthParticle, bool,  m_haveMotherPdgId);
00125     setterFunction(TruthParticle, float, m_eta);
00126     setterFunction(TruthParticle, bool,  m_haveEta);
00127     setterFunction(TruthParticle, float, m_theta);
00128     setterFunction(TruthParticle, bool,  m_haveTheta);
00129     setterFunction(TruthParticle, float, m_phi);
00130     setterFunction(TruthParticle, float, m_e);
00131     setterFunction(TruthParticle, bool,  m_haveE);
00132     setterFunction(TruthParticle, float, m_et);
00133     setterFunction(TruthParticle, bool,  m_haveET);
00134     setterFunction(TruthParticle, float, m_pt);
00135     setterFunction(TruthParticle, float, m_mass);
00136     setterFunction(TruthParticle, bool,  m_haveMass);
00137 
00138     setterFunction(EtMiss, float, m_nocalSumEt);    
00139     setterFunction(EtMiss, float, m_nocalMet);
00140     setterFunction(EtMiss, float, m_nocalMetx);
00141     setterFunction(EtMiss, float, m_nocalMety);
00142     setterFunction(EtMiss, float, m_calibSumEt);
00143     setterFunction(EtMiss, float, m_calibMet);
00144     setterFunction(EtMiss, float, m_calibMetx);
00145     setterFunction(EtMiss, float, m_calibMety);
00146     setterFunction(EtMiss, float, m_intTruthSumEt);
00147     setterFunction(EtMiss, float, m_intTruthMet);
00148     setterFunction(EtMiss, float, m_intTruthMetx);
00149     setterFunction(EtMiss, float, m_intTruthMety);
00150     setterFunction(EtMiss, float, m_ninTruthSumEt);
00151     setterFunction(EtMiss, float, m_ninTruthMet);
00152     setterFunction(EtMiss, float, m_ninTruthMetx);
00153     setterFunction(EtMiss, float, m_ninTruthMety);
00154 
00155     setterFunction(Cluster, float, m_E_calib);
00156     setterFunction(Cluster, float, m_E_em);
00157     setterFunction(Cluster, float, m_E_had);
00158     setterFunction(Cluster, float, m_ET);
00159     setterFunction(Cluster, float, m_phi);
00160     setterFunction(Cluster, float, m_eta);
00161     setterFunction(Cluster, float, m_M);
00162 
00163     setterFunction(Cluster, bool,  m_hasCaloLayerEnergies);
00164     setterFunction(Cluster, bool,  m_clusIsMC);
00165     setterFunction(Cluster, float, m_E_EMB1);
00166     setterFunction(Cluster, float, m_E_EMB2);
00167     setterFunction(Cluster, float, m_E_EMB3);
00168     setterFunction(Cluster, float, m_E_EME1);
00169     setterFunction(Cluster, float, m_E_EME2);
00170     setterFunction(Cluster, float, m_E_EME3);
00171     setterFunction(Cluster, float, m_E_HEC0);
00172     setterFunction(Cluster, float, m_E_HEC1);
00173     setterFunction(Cluster, float, m_E_HEC2);
00174     setterFunction(Cluster, float, m_E_HEC3);
00175     setterFunction(Cluster, float, m_E_FCAL0);
00176     setterFunction(Cluster, float, m_E_FCAL1);
00177     setterFunction(Cluster, float, m_E_FCAL2);
00178     setterFunction(Cluster, float, m_E_PreSamplerB);
00179     setterFunction(Cluster, float, m_E_PreSamplerE);
00180     setterFunction(Cluster, float, m_E_TileBar0);
00181     setterFunction(Cluster, float, m_E_TileBar1);
00182     setterFunction(Cluster, float, m_E_TileBar2);
00183     setterFunction(Cluster, float, m_E_TileExt0);
00184     setterFunction(Cluster, float, m_E_TileExt1);
00185     setterFunction(Cluster, float, m_E_TileExt2);
00186     setterFunction(Cluster, float, m_E_TileGap1);
00187     setterFunction(Cluster, float, m_E_TileGap2);
00188     setterFunction(Cluster, float, m_E_TileGap3);
00189 
00190     setterFunction(Cluster, float, m_phi_EMB1);
00191     setterFunction(Cluster, float, m_phi_EMB2);
00192     setterFunction(Cluster, float, m_phi_EMB3);
00193     setterFunction(Cluster, float, m_phi_EME1);
00194     setterFunction(Cluster, float, m_phi_EME2);
00195     setterFunction(Cluster, float, m_phi_EME3);
00196     setterFunction(Cluster, float, m_phi_HEC0);
00197     setterFunction(Cluster, float, m_phi_HEC1);
00198     setterFunction(Cluster, float, m_phi_HEC2);
00199     setterFunction(Cluster, float, m_phi_HEC3);
00200     setterFunction(Cluster, float, m_phi_FCAL0);
00201     setterFunction(Cluster, float, m_phi_FCAL1);
00202     setterFunction(Cluster, float, m_phi_FCAL2);
00203     setterFunction(Cluster, float, m_phi_PreSamplerB);
00204     setterFunction(Cluster, float, m_phi_PreSamplerE);
00205     setterFunction(Cluster, float, m_phi_TileBar0);
00206     setterFunction(Cluster, float, m_phi_TileBar1);
00207     setterFunction(Cluster, float, m_phi_TileBar2);
00208     setterFunction(Cluster, float, m_phi_TileExt0);
00209     setterFunction(Cluster, float, m_phi_TileExt1);
00210     setterFunction(Cluster, float, m_phi_TileExt2);
00211     setterFunction(Cluster, float, m_phi_TileGap1);
00212     setterFunction(Cluster, float, m_phi_TileGap2);
00213     setterFunction(Cluster, float, m_phi_TileGap3);
00214 
00215     setterFunction(Cluster, float, m_eta_EMB1);
00216     setterFunction(Cluster, float, m_eta_EMB2);
00217     setterFunction(Cluster, float, m_eta_EMB3);
00218     setterFunction(Cluster, float, m_eta_EME1);
00219     setterFunction(Cluster, float, m_eta_EME2);
00220     setterFunction(Cluster, float, m_eta_EME3);
00221     setterFunction(Cluster, float, m_eta_HEC0);
00222     setterFunction(Cluster, float, m_eta_HEC1);
00223     setterFunction(Cluster, float, m_eta_HEC2);
00224     setterFunction(Cluster, float, m_eta_HEC3);
00225     setterFunction(Cluster, float, m_eta_FCAL0);
00226     setterFunction(Cluster, float, m_eta_FCAL1);
00227     setterFunction(Cluster, float, m_eta_FCAL2);
00228     setterFunction(Cluster, float, m_eta_PreSamplerB);
00229     setterFunction(Cluster, float, m_eta_PreSamplerE);
00230     setterFunction(Cluster, float, m_eta_TileBar0);
00231     setterFunction(Cluster, float, m_eta_TileBar1);
00232     setterFunction(Cluster, float, m_eta_TileBar2);
00233     setterFunction(Cluster, float, m_eta_TileExt0);
00234     setterFunction(Cluster, float, m_eta_TileExt1);
00235     setterFunction(Cluster, float, m_eta_TileExt2);
00236     setterFunction(Cluster, float, m_eta_TileGap1);
00237     setterFunction(Cluster, float, m_eta_TileGap2);
00238     setterFunction(Cluster, float, m_eta_TileGap3);
00239 
00240     setterFunction(Cluster, bool, m_hasClusterMoments);
00241     setterFunction(Cluster, float, m_cellmaxfrac);
00242     setterFunction(Cluster, float, m_centerlambda);
00243     setterFunction(Cluster, float, m_firstEdens);
00244     setterFunction(Cluster, float, m_lateral);
00245     setterFunction(Cluster, float, m_longitudinal);
00246     setterFunction(Cluster, float, m_secondR);
00247     setterFunction(Cluster, float, m_secondlambda);
00248     setterFunction(Cluster, float, m_time);
00249     setterFunction(Cluster, float, m_deltaPhi);
00250     setterFunction(Cluster, float, m_deltaTheta);
00251 
00252     
00253     setterFunction(Jet, double, m_hecFraction);
00254     setterFunction(Jet, double, m_hecQuality);
00255     setterFunction(Jet, double, m_larQuality);
00256     setterFunction(Jet, double, m_averageLARQualityFraction);
00257     setterFunction(Jet, double, m_negEnergy);
00258     setterFunction(Jet, double, m_trackPTSum); 
00259     setterFunction(Jet, double, m_fracSamplingMax);
00260     setterFunction(Jet, double, m_emScaleEta);
00261     setterFunction(Jet, double, m_emFrac);
00262     setterFunction(Jet, double, m_tileGap3);
00263     setterFunction(Jet, double, m_bchCorrCell);
00264     setterFunction(Jet, bool, m_isBadLoose);
00265     setterFunction(Jet, bool, m_isBadMedium);
00266     setterFunction(Jet, bool, m_isBadTight);
00267     setterFunction(Jet, const Event*, m_event);
00268     
00269     setterFunction(TruthJet, double, m_E);
00270     setterFunction(TruthJet, double, m_PT);
00271     setterFunction(TruthJet, double, m_phi);
00272     setterFunction(TruthJet, double, m_eta);
00273 
00274     setterFunction(Vertex, double, m_x);
00275     setterFunction(Vertex, double, m_y);
00276     setterFunction(Vertex, double, m_z);
00277     setterFunction(Vertex, int, m_nTracks);
00278     setterFunction(Vertex, Vertex::VertexType, m_type);
00279     setterFunction(Vertex, bool, m_haveTrackIDs);
00280     setterFunction(Vertex, vector<int>, m_trackIDs);
00281     setterFunction(Vertex, const Event*, m_event);
00282     
00283     setterFunction(L1TriggerBit, unsigned int, m_lvl1aBC);
00284     setterFunction(L1TriggerBit, const vector<unsigned int>*, m_rdo_TAV);
00285 
00286     setterFunction(L2SpacePoints, size_t, m_sctEndCapA);
00287     setterFunction(L2SpacePoints, size_t, m_sctEndCapC);
00288     setterFunction(L2SpacePoints, size_t, m_sctBarrel);
00289     
00290   private:
00291     
00292   };
00293 }
00294 
00295 #endif

Generated on Mon Jul 30 2012 16:56:35 for ForIA by  doxygen 1.7.2